Converting to 24VDC on the heated bed
Posted: Tue May 20, 2014 3:45 am
Okay, I have to fess up. I have not converted to 24VDC. I actually dialed a 24V supply down to 20V. Now I know this subject has been covered before, but I believe it was not covered very well. Because I am not using an external SSR to do this. I am using the RAMBo board to make this happen. I am also running at 12 amps...wait...12 amps...how can that be? 20V/1.2 ohms is 16.7 amps...wait...what?
Exactly! We are not using the features of the board to be able to use a 24V supply right from the board. The Repetier firmware has some nice features. First lets look at the RAMBo board features: http://reprap.org/wiki/Rambo. Look in the Features section under Power. It says plain as day the 1.2 version can handle 24VDC and 15 amps. Well, not unless we throttle the 24VDC. So how do we do that? That is where the Repetier firmware comes into play. Note: that I am only changing the voltage for the heated bed in this discussion. When changing voltages for other rails on the RAMBo board you need to be aware of all the devices on that particular rail. See the warning later in this post about the other rails and potential problems.
Now go to page 18 of this manual: http://www.repetier.com/w/wp-content/up ... erface.pdf. Now I have no idea what version of the Repetier firmware this is from, and the section it describes is for the extruder PID. However, it told me what I needed to know. You have the ability to adjust the maximum PWM output for the PID loops. Since it is an 8 bit value you can put in 0 to 255. By default this output max is 255. So any power supply you put on there will be output at max value. That is why you cannot hook a 24VDC supply for any part of the machine unless you adjust some of the max outputs. Now I will explain how this is done for the heated bed.
First we have to understand the math here. If you don't understand this part it could still cause issues. Lets do some calculations for a 12VDC heated bed.
I measured the resistance of my heated bed at 1.2 ohms. I have one of the newer beds with the SeeMeCNC name and logo on it. I suggest you disconnect your heated bed and measure the resistance if you are not sure what it is. I believe most of the heated beds from SeeMeCNC are right around 1.1 to 1.2 ohms. Now since mine is 1.2 I will use that number. It also makes the math easier...
12VDC / 1.2 ohms = 10 amps (see why the math is easier?)
Now what happens when I do this for 24VDC?
24VDC / 1.2 ohms = 20 amps
Okay, now that is way too much for the 15 amp limit on the RAMBo board. Now what would happen if we cut that value in half? But how can you do that? Well lets look at the power of each. Power or wattage is calculated as Voltage x Current. So lets get the wattage for each scenario.
12VDC x 10 amps = 120 watts
24VDC x 20 amps = 480 watts
Wait?! I only doubled the voltage. How can the power be quadrupled? Well, son, that is just the way it is. Now how do we cut that power in half? I know, lets only turn it on half the time! Remember that setting in the Repetier firmware? It controls the duty cycle of the PWM output. This means it can control the max amount of time the output is on. This setting is called "Bed PID Max Value [0-255]". The default value is 255. So lets cut that in half and set to 127. Now the max PWM output from the PID loop is only on half the time. That means the heated bed has a maximum duty cycle of 50%. So only half the active time the 24VDC power supply is conducting 20 amps. This will effectively cut the wattage to 240 watts. The average current draw is 10 amps. See warning later in post about changing the extruder voltages.
Now, doubling the heated bed output is pretty cool. This takes the bed heat-up time down immensely. I was able to go from 20 degrees C to 60 degrees C during a PID loop tuning session in about 4 or 5 minutes. That is the main reason to pursue this for the heated bed.
Now, lets go back to my actual voltage. I am running my 24VDC power supply at 20 VDC. Why would I do that? Well, I want to give the PID loop more fine control of the output. So I chose a lower voltage that I could tweak my power supply to. The numbers ended up like this:
20V / 1.2 ohms = 16.7 amps
My target amperage is 12 amps (Gives the power supply and the RAMBo board wiggle room, always a good idea. My power supply is rated for 15 amps @ 24V)
So 12 amps / 16.7 amps = 0.72 or 72 % (about)
Now I use this find the value of the max output:
0.72 * 255 = 183 (about)
This is the number I put into the EEPROM value for "Bed PID Max Value [0-255]".
This gives me 20V x 12 amps = 240 watts. I still double my wattage, but put less stress on components by only surging to 16.7 amps max. I still get the average lower current that is well withing the tolerance of the hardware.
Now, be careful here. If you ever wipe your firmware you need to change the max output of the PID so you don't melt your connectors or burn up components on your RAMBo board. You may even want to modify the parameters in the code you use for your firmware to make sure you cannot mess this up. If you are really paranoid and know you might reset the firmware settings to default then by all means use a SSR instead.
The place to change this in the Repetier firmware is in the configuration.h file:
I went ahead and changed mine so I don't mess stuff up if I change the firmware.
This should help people wanting to use higher voltage power supplies with the RAMBo board with the Repetier firmware. Other firmwares may support the max output so it should be applicable to those firmwares as well. This should help reduce the cost of using alternate voltages as well. I was somewhat driven by frustration when I bought DC-DC SSR that did not work properly. The output was on regardless of the state of the input. I then returned the SSR realizing it was defective and ordered 3 other models of different brands. I then started wondering why the RAMBo board had the specs it showed. That began my quest for parameters that might change the output duty cycle. I have successfully tuned the PID using these settings and am quite pleased with the lack of time it takes to warm up the bed now. I hope you get similar results and don't have to watch grass grow waiting for the heated bed.
Warning!
If changing the extruder voltage (we only focused on the heated bed here) it changes the fan voltages:
Update:
The results are that I can heat up the bed from 30 deg C to 100 deg C in 15 minutes. Before I could only reliably get to about 80 deg C and that took 30 to 40 minutes. So this is a vast improvement for my machine!
Exactly! We are not using the features of the board to be able to use a 24V supply right from the board. The Repetier firmware has some nice features. First lets look at the RAMBo board features: http://reprap.org/wiki/Rambo. Look in the Features section under Power. It says plain as day the 1.2 version can handle 24VDC and 15 amps. Well, not unless we throttle the 24VDC. So how do we do that? That is where the Repetier firmware comes into play. Note: that I am only changing the voltage for the heated bed in this discussion. When changing voltages for other rails on the RAMBo board you need to be aware of all the devices on that particular rail. See the warning later in this post about the other rails and potential problems.
Now go to page 18 of this manual: http://www.repetier.com/w/wp-content/up ... erface.pdf. Now I have no idea what version of the Repetier firmware this is from, and the section it describes is for the extruder PID. However, it told me what I needed to know. You have the ability to adjust the maximum PWM output for the PID loops. Since it is an 8 bit value you can put in 0 to 255. By default this output max is 255. So any power supply you put on there will be output at max value. That is why you cannot hook a 24VDC supply for any part of the machine unless you adjust some of the max outputs. Now I will explain how this is done for the heated bed.
First we have to understand the math here. If you don't understand this part it could still cause issues. Lets do some calculations for a 12VDC heated bed.
I measured the resistance of my heated bed at 1.2 ohms. I have one of the newer beds with the SeeMeCNC name and logo on it. I suggest you disconnect your heated bed and measure the resistance if you are not sure what it is. I believe most of the heated beds from SeeMeCNC are right around 1.1 to 1.2 ohms. Now since mine is 1.2 I will use that number. It also makes the math easier...
12VDC / 1.2 ohms = 10 amps (see why the math is easier?)
Now what happens when I do this for 24VDC?
24VDC / 1.2 ohms = 20 amps
Okay, now that is way too much for the 15 amp limit on the RAMBo board. Now what would happen if we cut that value in half? But how can you do that? Well lets look at the power of each. Power or wattage is calculated as Voltage x Current. So lets get the wattage for each scenario.
12VDC x 10 amps = 120 watts
24VDC x 20 amps = 480 watts
Wait?! I only doubled the voltage. How can the power be quadrupled? Well, son, that is just the way it is. Now how do we cut that power in half? I know, lets only turn it on half the time! Remember that setting in the Repetier firmware? It controls the duty cycle of the PWM output. This means it can control the max amount of time the output is on. This setting is called "Bed PID Max Value [0-255]". The default value is 255. So lets cut that in half and set to 127. Now the max PWM output from the PID loop is only on half the time. That means the heated bed has a maximum duty cycle of 50%. So only half the active time the 24VDC power supply is conducting 20 amps. This will effectively cut the wattage to 240 watts. The average current draw is 10 amps. See warning later in post about changing the extruder voltages.
Now, doubling the heated bed output is pretty cool. This takes the bed heat-up time down immensely. I was able to go from 20 degrees C to 60 degrees C during a PID loop tuning session in about 4 or 5 minutes. That is the main reason to pursue this for the heated bed.
Now, lets go back to my actual voltage. I am running my 24VDC power supply at 20 VDC. Why would I do that? Well, I want to give the PID loop more fine control of the output. So I chose a lower voltage that I could tweak my power supply to. The numbers ended up like this:
20V / 1.2 ohms = 16.7 amps
My target amperage is 12 amps (Gives the power supply and the RAMBo board wiggle room, always a good idea. My power supply is rated for 15 amps @ 24V)
So 12 amps / 16.7 amps = 0.72 or 72 % (about)
Now I use this find the value of the max output:
0.72 * 255 = 183 (about)
This is the number I put into the EEPROM value for "Bed PID Max Value [0-255]".
This gives me 20V x 12 amps = 240 watts. I still double my wattage, but put less stress on components by only surging to 16.7 amps max. I still get the average lower current that is well withing the tolerance of the hardware.
Now, be careful here. If you ever wipe your firmware you need to change the max output of the PID so you don't melt your connectors or burn up components on your RAMBo board. You may even want to modify the parameters in the code you use for your firmware to make sure you cannot mess this up. If you are really paranoid and know you might reset the firmware settings to default then by all means use a SSR instead.
The place to change this in the Repetier firmware is in the configuration.h file:
Code: Select all
// maximum time the heater can be switched on. Max = 255. Overridden if EEPROM activated.
#define HEATED_BED_PID_MAX 183
This should help people wanting to use higher voltage power supplies with the RAMBo board with the Repetier firmware. Other firmwares may support the max output so it should be applicable to those firmwares as well. This should help reduce the cost of using alternate voltages as well. I was somewhat driven by frustration when I bought DC-DC SSR that did not work properly. The output was on regardless of the state of the input. I then returned the SSR realizing it was defective and ordered 3 other models of different brands. I then started wondering why the RAMBo board had the specs it showed. That began my quest for parameters that might change the output duty cycle. I have successfully tuned the PID using these settings and am quite pleased with the lack of time it takes to warm up the bed now. I hope you get similar results and don't have to watch grass grow waiting for the heated bed.
Warning!
If changing the extruder voltage (we only focused on the heated bed here) it changes the fan voltages:
That means you will have to change your fans if messing with the extruder voltages. If you don't want to do that then use an SSR for the extruder.Power
Three independent power rails for flexible input power configurationsBuilt in SMPS for 5V generation
- Heated Bed, 15A 12-24V (version earlier than 1.1 limted to 14A 16V due to fuse rating, see rambo_development for hacks)
- Extruders and fans, 5A 12-24V (fuse can be exchanged for up to 10A capacity) 10V-26V input voltage
- Motors, 5A 12-24V (fuse can be exchanged for up to 10A capacity) 10V-26V input voltage
Update:
The results are that I can heat up the bed from 30 deg C to 100 deg C in 15 minutes. Before I could only reliably get to about 80 deg C and that took 30 to 40 minutes. So this is a vast improvement for my machine!