It has finally arrived, the beta of our new firmware with proper laser pulsing control and LCD controls. This firmware has been a long time in the making and is something we’ve wanted for you all since the very beginning. We’ve now gotten almost all the problems worked out and now it’s time to release it so you all can give us some much needed feedback. We’ll be posting some images of new prints in the next few days now that we finally have the time to use our printers for something other than firmware development :)
Because of the way the new firmware works there will be come changes you will need to make to your electronics setup in order to take advantage. The main difference is the addition of a single signal wire that must be soldered to your laser driver circuit MODE connection and run to the RAMPS servo 6 pin, the power supply to the laser is still provided through D9. If you follow the instructions below you should be able to get things changed within an hour or so.
In the new firmware the laser is controlled by turning on power to the laser and then telling the laser to fire by sending signal over the D6-to-MODE connection. This is the proper way to pulse the laser, it is safer for the laser diode and the circuit electronics as a whole. With this method of control we can manage the laser intensity, the laser pulse on-time, and the number of pulses we try to place inside of each millimeter. The print quality improvement with this finite control over the laser is substantial! So lets get to it.
-First, install the new control wire:
If you wish to help the laser power circuit consistency then it is also advisable to install a 470uF capacitor with the laser power input wires at the D9 connection. This will help prevent power shortage from the high speed pulsing. Something like this will work just fine: 470uF 35V Electrolytic Capacitor
-Next install the new firmware
Install Arduino if you don’t already have it. Versions over 1.0 are best.
Prerequisite: u8glib libraries need to be downloaded and added to your Arduino Installation so the firmware will compile. They can be found here
Unzip the firmware onto your PC
Open Arduino and select File -> Open, then browse to the unzipped firmware folder and select Marlin.pde from inside the Marlin folder.
Select Tools -> Board -> Arduino Mega 2560
Select Tools -> Serial Port and select the serial port of your Arduino
Press the Upload button and wait for it to complete!
-Finally, Grab our new Slic3r profile
When using the 150mW laser you will want to lower the laser power down to about 35-40% when printing from the second layer and on, adjust as needed. Below is a screenshot of laser power settings being entered into the GCode file in the line above the switch to the second layer. To make your own changes simply open the GCode file in a text editor and add the line manually. Then save the file and load it back into Repetier Host before printing. ***There is a typo in the screenshot below, it should read M649 S40.0 L300 P10***
-New Codes and How to Manipulate the New Firmware Setttings
Using our Slic3r profile above should get you running but you will probably want to adjust settings to get the optimal print quality. Here is a list of the new codes and how to manipulate the machine settings and functions.
M6 – Turn the laser on to full-power for 30 seconds
M7 – Turn the laser off
M649 – S(Laser Power) L(Pulse Time In Milliseconds) P(Pulses Per mm)
The S value of M649 needs to be between 0 and 100, this will directly impact the PWM value and therefore the laser power via the D9 output
The L value is laser pulse on time in milliseconds. Values of 100-400 should be a good place to start. Long pulse times will blend into the next pulse, so be cautious you don’t remove pulsing inadvertently by using too long of a pulse time
The P value is the number of pulses the firmware should put into each millimeter. If you are running at .1mm laser point size then 10 is the proper value to use. If you have a .2mm laser size then drop to 5 pulses per mm.
M650 – S(Speed) D(Distance) P(Pause)
The S value is the speed in millimeters per second of how quickly to perform the peel move
The D value is the distance in millimeters on how far to move each size of the Z axis vertically during the peel
The P value is the time in milliseconds for how long to pause when at the top of the peel. This is mostly used for thick resins that need a moment to flow back into the area the part was just peeled fromM65
M651 – Run Peel Move
All told, there are a lot of new configuration options in the configuration.h file of the firmware, change them at your own risk. We are working on this firmware so that it can be the one solution for everyone using lasers with RAMPS, not just the mUVe 1. So there are different pulsing types, pulsing frequencies, and probably about 10-15 other options that will enable peripherals. We are working to document each option in that file so that it well explains its purpose. For now it is probably best that most folks leave the file alone and upload it to their machine as it sits. For those that are daring, then please enjoy everything we’ve added. There are some very useful options that are surely going to be a hit to the open-maker community.