Welcome! Log In Create A New Profile

Advanced

New alternative firmware developed for Hydra-MMM Project

Posted by cpwebste 
New alternative firmware developed for Hydra-MMM Project
February 24, 2010 09:24PM
I posted this over on the experimental host software forum, but I thought it should be placed here as well.

I am currently working on a new project called Hydra-MMM for multi-headed manufacturing machine. The machine is a cartesian positioning system with multiple, independent toolheads for performing simultaneous operations on the same workpiece (ie FDM prototyping and milling). Because the machine needed to have support for multiple heads and be able to do many things that a standard reprap machine cannot, the software and firmware needed to be heavily modified.

I ended up creating my own Arduino firmware as well as my own host interface for sending files and commands to the machine. I think the two packages create a very nice, simple alternative to the current reprap firmware and host software while still adding some new features. The host interface has a gcode file previewer as well as a realtime preview window to see what commands are currently being sent to the machine. I think it is somewhat similar to what skeinforge has for viewing builds, but it runs in parallel with the actual build. It has the ability to pause builds and send individual commands to the machine mid-build. I also did a lot of work adding new features to my firmware including the ability to do any stepping mode you want from full step all the way to 64x microstepping. These stepping modes can be changed at any time, including in the middle of a build (assuming you have paused file sending). Lots of additional gcode support was also added to make it more in-line with traditional machining packages (as we would like to do some milling on the machine). It also utilizes PID temperature control thanks to a library from the Arduino playground.

More info about the firmware: The firmware has a custom stepper motor library that allows for simple control of as many motors as you want (although as you add more your max stepping frequency will decrease). All G1 (linear interpolation) and G0 (rapid interpolation) moves are processed and move in a straight line so that all axes arrive at the desired position simultaneously. This includes 3D movements as the machine is eventually intended for some light milling. There was a LOT of G and M codes added to the firmware as milling requires a lot of additional codes. Please see the .pde file for a list of all available codes. The firmware is currently being tested on an Arduino Mega, but there is nothing that prohibits it from being used on smaller Arduinos as long as you have enough pins for your application. The whole firmware is commented pretty well so it should be pretty easy for other developers to adapt to their needs.

All of this software and firmware was developed in about 2 weeks so I am sure it still needs some work and I would love to hear feedback from you guys!

The sourceforge page is located here: https://sourceforge.net/projects/hydra-mmm/

Feel free to try it out (the host software is compiled for Windows, Mac OS, and Linux) and let me know if you have any advice on how it can be improved!
Re: New alternative firmware developed for Hydra-MMM Project
February 25, 2010 10:07AM
Here is a picture of the GUI. It shows the new file previewer I added which makes it really easy to skim through the timeline of a gcode file and see what the build will look like and look for any incorrect gcodes. Thick lines are used for extruded movements while thin lines are used for movements without extrusion. The color of the line also corresponds to the z height of the line to help with 3D visualization.



Edited 1 time(s). Last edit at 02/25/2010 10:08AM by cpwebste.
Re: New alternative firmware developed for Hydra-MMM Project
February 26, 2010 02:53PM
Just wanted to let everyone here know that I have updated the Hydra-MMM software and firmware to v1.1 with added support for machines using external motor drivers (step and dir pins). Origninally, I was using 4 pins to drive individual MOSFETs attached to each coil of a unipolar stepper motor, but I got a lot of feedback from people who already had Gen3 or similar electronics with external motor drivers. I also did some work on the extruder calculations and routines. Here's the complete list of major changes:

v1.1
- Extruder support added that automatically determines correct extruder speed based on XYZ specified federate
- Support for external motor drivers added, the option is now at the top of the firmware to choose to use dir/step method (for external driver) or defining each coil and using MOSFET transistors or something of that nature (see below)
- Wiring diagram added by request to show how to hook up a stepper motor without an external motor driver
- Made GUI preview window larger and added ability to change the size easily in the Processing sketch (variables pw_width and pw_height)
- Sample gcode file added by request


Head over to the sourceforge page to get the newest release and let me know what you think! https://sourceforge.net/projects/hydra-mmm/
Re: New alternative firmware developed for Hydra-MMM Project
April 14, 2010 05:39PM
Great work with this firmware!!

Have you thought about adding support for a 4th axis similar to the E axis on the current RepRap FiveD firmware used for the Extruder which is also similar to the A axis on CNC machines using emc?
Re: New alternative firmware developed for Hydra-MMM Project
April 20, 2010 08:39AM
I think this would be pretty easy to add, so I may try to include it for the v1.5 release, but at the moment the extruder calculations are based on the XYZ movement distances and it seems to work very well. However, I know lots of users are using the 5D firmware so I'll see what I can do. Thanks for the tip!
Sorry, only registered users may post in this forum.

Click here to login