Hello everyone, feeling a little bit stupid and frustrated, I built my MPCNC a few years ago and have been using it successfully since. Of late I have been trying to push the limits of my machine in terms of speed and cut depth and have realised I have overlooked a few things during my build. I was so keen to get this up and running that I never changed my stepper motor currents… I’m running 17HS19-2004S1 stepper motors that have a current rating of 2A. I’m running a RAMBO 1.4 board and that means I have to digitally set my stepper current. Building this CNC was my first ever time flashing software and for me was the most frustrating part. I have read the instructions and see there is a line of code I need to change/upload. Definitely outside of my comfort zone doing this code change but wondering if this worth doing or do i just go buy the “if it ain’t broke don’t fix it” motto…
thanks
You should be able to set the current through g-code and avoid the compile and flash of the firmware. The Rambo board uses DIGIPOT to set the current, so you want to take a look at the M907 g-code. After running the M907, you will want to execute an M500 to save the setting. If you don’t, the setting will revert to the default when the board is turned off.
The line in the V1 maintained firmware that sets the current is:
#define DIGIPOT_MOTOR_CURRENT { 125, 125, 125, 125, 125 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
So this like should give you some guidance about the value you should use, with 125 being the V1 default.
The issue with higher current for the steppers is heat softening the PLA plastic. Consider stepping up the current slowly, and if you have one, checking the heat of the stepper with an IR thermometer. If you are really trying to push things, it occurs to me that an insulating gasket (like a cork gasket) between the stepper and the PLA might help prevent heat damage to the PLA.
If you want to go the route of recompiling the firmware to set the current, I can outline the steps.
Thank you for the reply Robert, I’m definitely keen on trying the “G-code” option. I will do some searching and see what I uncover…
so a simple M907 will display the current value which should by default be 125 for all 5 stepper motors…
If I type M907 X160 it should up my current to around the 0.85A mark for stepper X, this would then be repeated for Y,Z,A and B… is that correct.
Thanks
I just ran a quick test, and I’m not 100% certain about the process. Using M907 without parameters will display the current for X, Y, and Z. For some reason it does not display the current for E0 and E1. Looking at the g-code documentation, I believe you want the E and B parameter for steppers E0 and E1. You can put all the parameters in the same command, so you can do…
M907 X135 Y135 Z135 E135 B135
…to set the current to 0.75A for all five stepper motors.
Reiterating from my previous post, you need an M500 to save the results. Once you’ve saved the results, you will not be able to make changes directly in the firmware unless you do a factory reset (M502). This is by design. It allows people to upgrade their firmware without losing their custom settings.