But before we start let me say this. Most of the problems are mechanical problems.
Make sure you're frame is perpendicular and all axes can move freely without any issues.
Also test if you only have problems in stealth mode or also in normal mode.
Tweaking the motor current setting can do damage to the Einsy board as well as create issues with prints like high TMC temp failures!
Be aware that the Einsy board is only capable of 980mA per stepper motor, while the TMC driver could peak up to 2A.
If you choose to tweak the settings, you do this on your own risk!
If you still having issues with the motors you can adjust the motor current. Some user reported that they had success by increasing the motor currents in the firmware. So I will show you now how to do it.
Before we start changing values in the firmware, we should figure out what the right values would be.
The easiest way to do this is to use the g-code command M907 which is supported in Prusa Firmware since Version 3.5.0.
Let me explain first how the command works, you can also find more details here.
You can set the motor current for all axis to 500mA with
M907 S500
or for each axis individual, which I strongly recommend.
M906 [E<mA>] [X<mA>] [Y<mA>] [Z<mA>]
The format in M907 command is is E,X,Y,Z !
But what would be good values to start with? Well lets have a look into the Prusa Firmware:
In the Configuration_prusa.h file the motor currents are defined in trinamic registers, not in mA!
The format in the Prusa firmware is X,Y,Z,E !
#define TMC2130_CURRENTS_H {16, 20, 35, 30} // default holding currents for all axes
#define TMC2130_CURRENTS_R {16, 20, 35, 30} // default running currents for all axes
#define TMC2130_UNLOAD_CURRENT_R 12 // lowe current for M600 to protect filament sensor
So we need a table to compare the trinamic registers with mA settings.
mA | trinamic register | note |
---|---|---|
0 | 0 | doesn't mean current off, lowest current is 1/32 current with vsense low range |
30 | 1 | |
40 | 2 | |
60 | 3 | |
90 | 4 | |
100 | 5 | |
120 | 6 | |
130 | 7 | |
150 | 8 | |
180 | 9 | |
190 | 10 | |
210 | 11 | |
230 | 12 | |
240 | 13 | |
250 | 13 | |
260 | 14 | |
280 | 15 | |
300 | 16 | |
320 | 17 | |
340 | 18 | |
350 | 19 | |
370 | 20 | |
390 | 21 | |
410 | 22 | |
430 | 23 | |
450 | 24 | |
460 | 25 | |
480 | 26 | |
500 | 27 | |
520 | 28 | |
535 | 29 | |
N/D | 30 | extruder default |
540 | 33 | |
560 | 34 | |
580 | 35 | |
590 | 36 | farm mode extruder default |
610 | 37 | |
630 | 38 | |
640 | 39 | |
660 | 40 | |
670 | 41 | |
690 | 42 | |
710 | 43 | |
720 | 44 | |
730 | 45 | |
760 | 46 | |
770 | 47 | |
790 | 48 | |
810 | 49 | |
820 | 50 | |
840 | 51 | |
850 | 52 | |
870 | 53 | |
890 | 54 | |
900 | 55 | |
920 | 56 | |
940 | 57 | |
950 | 58 | |
970 | 59 | |
980 | 60 | |
1000 | 61 | |
1020 | 62 | |
1029 | 63 |
So the default for the extruder is 535mA. For the z-Axis it is 580mA, for the x-Axis 300mA and for the y-Axis 370mA.
A G-code command for setting the motor current with default values it would look like this:
M907 E535 X300 Y370 Z580
So now you have a baseline to work you way up, until you don't have any issues anymore.
If you just have a problem with one or two axis you can simply remove the other axis.
For example if you have only issues with the Y and the Z axis your command would look like this:
M907 Y390 Z610
Now add this line to the top of your g-code file that you want to use for testing. Print and check if you still have any issues. You can slowly increase the values until your problem is solved.
Once you have verified the values for your printer, use the table again to calculate the register settings.
So in our example the g-code:
M907 Y390 Z610
would translate into:
#define TMC2130_CURRENTS_R {16, 21, 37, 30} // default running currents for all axes
Now we change the Configuration_prusa.h file and compile our firmware and upload it to the printer. Look at my previous posts how to do that. We just change the running currents, the holding currents should not be a problem.
Then test again if everything is ok. If you still have issues try to figure our the proper values with the M907 command first, before you make changes to the firmware settings.
With the higher motor current you might run into some issues. Maybe you get the TCM diver temp failure for long prints or your stepper motors get really hot. This is why it is important to increase the current setting just to what you really need!