Monday, May 31, 2010


selective laser sintering part 5: the laser

Hi folks,

Just a quick post, since it's been a little bit since I made one. My thesis has been keeping me busy these days, which is good since there's been a lot of waiting for things to come in the mail. I ended up settling on a 1000mw 808nm laser diode for the first tests, and ordered some wide-spectrum glasses (600-1100nm, OD4) just incase I need to try a few different diodes.

I built a current-limited variable voltage supply using a reference design in the LM317 datasheet this past weekend, and added some large capacitors to try and filter out any large bumps. The laser diode didn't come with a datasheet, but the ebay seller listed it as running at approximately 2.2V at 1.2 amps. The supply is limited to 1.2 amps, but so far very slowly adjusting the voltage up (with a 10-turn pot), I'm only at ~1 amp at 2.5 volts, and that is about as far as I dare turn it up just yet.

There hasn't been much tinker time with the laser yet, but I did take it to some failed prints made with black ABS. The laser has no trouble melting the black ABS plastic from makerbot, or even cutting it and boring holes in it, depending on the distance. Using a print that's only a single layer thick, the laser seemed to be able to cut through fairly quickly, but also if the focus was such that a small area about 0.5 - 1mm wide was illuminated (instead of a point), it melted the layer rather quickly -- I think this is going to work just fine.

Now, to find some ABS plastic in powder form. The laser didn't heat or cut white polystyrene, so I think colour is still definitely going to be an issue here -- particularly in finding a black thermoplastic powder. I'll have to try some tests with the powder coatings that I have from earlier as well, although our tests with a 20W CO2 laser weren't encouraging, and the end result was partially fused but very, very brittle. This kind of makes sense, since powder coatings are meant to be very thin coatings, and are also meant to cure over 6-12 minutes at relatively high temperatures. I'm eager to try Vik's suggestion of a dark coloured sugar, just out of curiosity, to see what that might be like.

I have also decided to replace the SLS powder test rig that I described in previous posts with a much more full sized model, and I've been working on building this in my spare time over the past few weeks. More on this soon, hopefully. :)

thanks for reading,

Wednesday, May 12, 2010


Hydra-MMM v1.4 Finally Released!

I have gone ahead and released v1.4 of the Hydra-MMM software and firmware (, and let me start off by saying that this release is HUGE! There is a ton of new features and changes from the previous release. I probably should have made 2 or 3 intermediate releases over the past few months, but the end of my undergraduate degree required a lot more time than I anticipated. So onto the major additions in the new firmware

If you want more details, the full list of changes from the readme file in the sourceforge release is below

- Added slave temperature control so that the master Arduino can allocate all its resources to handling the machine movement and not dealing with PID temperature control, see the new Hydra_Slave_Temp_Control sketch for the slave firmware and be sure to edit the master firmware to use slave control as well
- Added M301 and M302 commands so you can easily check to make sure your slave Arduino is communicating to the master correctly
- Internal PID control (if you chose to not use slave control) is now updated so that up to 3 temperatures can each be PID controlled by the master (extruder 1, extruder 2, and heated table)
- EEPROM position logging so that absolute positions can be retained even after being powered off, exiting the GUI triggers this to happen (M900 command)
- Added G80 and G81 drill cycle commands for intended use with PCB milling (advanced drill cycle operations not currently supported), this is untested though so use at your own risk!
- Added support for Ncodes at the beginning of each line with the program line as the parameter (ie "N51 G1 X1.00 Y0.00 Z0.00 F30") as programs like MasterCAM like to add this in the gcode file
- Added M120 and M121 codes to run the stepper extruder forward and backward, can use these to pull filament backwards at the end of a move to prevent excess nozzle oozing or to start filament flow at the beginning of a layer
- Added a G5 jog gcode for simple movements without needing to know your current position
- Added ability to jog individual Z-axes using the T18 command without triggering the switch_tool routine
- Added a M6 tool change Gcode, the continue_pin button must be pressed once this is done to continue
- added M500 Gcode command that waits for user confirmation (by pushing the continue_pin button) before proceeding
- Limit switch current position handling updated to give more accurate end positioning
- Extruder federate calculations updated to provide better results with our current setup (0.5mm nozzle)
- sticky federates are now supported
- minor bug fixes to multi-headed tool operations (Tcodes) now that I actually have a machine to test them on
- several updates to the startup and exit routines
- updated steps_to_take variables to be longs instead of integers because users with high microstepping rates were able to overrun the integer data types on long moves (thanks martin!)
- stepper motor driver enable logic can now be swapped for different motor drivers so that HIGH or LOW can be used to enable the driver

As always, the release files can be downloaded from the Hydra-MMM Sourceforge page at Give it a try and let me know what you think!

Now, onto the second reason for this post; finding some beta testers to help me improve this firmware! The firmware has a lot of different functions, and for that reason there is a lot that needs to be tested. While most users don't have a 4-headed machine, rapid prototypers and homemade CNC machines are both relatively common. If anyone out there is interested in helping out with testing or developing the Hydra-MMM software or firmware, please email me at or shout out in the comments!

Labels: , , , , , , , ,

Thursday, May 06, 2010


Hydra-MMM Prototype Finished!

The end of the semester is here and after many many hours of hard work the Hydra-MMM prototype has been completed. The design was rigorously tested and accomplished many of the initial goals that we set out to achieve. The machine proved it had the ability to perform many different tasks including CNC milling, rapid prototyping, and even making some basic single-sided SMD circuit boards! With movements speeds of 200 inch/min and a positional accuracy of 0.001 inch, the machine not only attempted these tasks, but performed exceptionally for such a low-budget machine. The software and firmware developed for the project also proved to be a success and was extremely versatile allowing for all of these functions without modification. The firmware has enough G, M, and T codes packed in that it was able to take gcode programs from several different software packages with almost no modification and successfully run them on the machine. The results were simply amazing for a machine at this price level and I look forward to how the Hydra project evolves over the coming years. To wrap things up, here are a few pictures of the final prototype

The final cartesian robot with the accompanying electronics enclosure. Most of the connecting wires were removed from this picture for a little cleaner look, but they are pretty easy to snap back on with the rear panel on the enclosure.

A backside shot of the machine with all the cables attached and my Mac running the show

A close-up of the electronics enclosure showing the estop switch and an optional input button for tool changes and things of that nature. There is one fan missing from the above pictures as it was somehow lost during the last week of the project and we couldn't find 2 other matching fans in town. The box houses the new a4983 stepper drivers and a beefy 30V power supply. It also has a custom breakout board for the Arduino Mega that allows all of the connections to the microcontroller to plugged in with ease.

A rear view of the enclosure showing all of the connections and inputs to the internal electronics. We have 7 stepper motor outputs for a single X motor, 2 Y motors, 2 Z motors, and 2 possible extruder motors. It also has a solid state relay for controlling an attached spindle and a nice panel mount USB connector for interfacing with the Arduino.

The project has been a lot of fun, and I would love to get some input from the community about some future ideas for this technology. There is a host of additional videos and pictures from the last few weeks that I may post sometime in the future, but for now I am out to celebrate the end of the semester and a successful end to my undergraduate career! Cheers!

Labels: , , , , ,

This page is powered by Blogger. Isn't yours?

Subscribe to
Posts [Atom]