Re: Einsy-Rambo on mk2?
...
Thanks for the explanation!
But is there some replacement command to M907 to quickly test different current values without uploading a new firmware?
Or can this work with something like M907 X16 X20 Z28 E36
Hm, also holding and running seem to be split up now. Might require 2x gcodes in the starting script.
Also while we're at it, we could pool together a few useful gcodes for the Einsy, a lot of the old MK2 ones aren't relevant here anymore it seems.
Prusa's quite stingy/secretive with the gcodes on this one.
Re: Einsy-Rambo on mk2?
But is there some replacement command to M907 to quickly test different current values without uploading a new firmware?
Hm, also holding and running seem to be split up now. Might require 2x gcodes in the starting script.
Also while we're at it, we could pool together a few useful gcodes for the Einsy, a lot of the old MK2 ones aren't relevant here anymore it seems.
Word.
The Unofficial TMC2130 Gcode Guide
Now with even fewer mistakes!
Last updated April 4th, 2018.
Obsolete gcodes (these no longer work with the TMC2130):
M907 - Sets digital trimpot motor current using axis codes.
M908 - Control digital trimpot directly.
To apply changed settings:
M910 - Reset and initialize the TMC2130 chips.
Most setting changes won't go into effect until this code is sent.
Current settings:
M911 - Holding current
M912 - Running current
Set the above TMC2130 currents. Must be given in current scalar values (0 to 63).
Example: M911 X14 Y20 Z30 E36
M913 - Print the currently set TMC2130 current values
Miscellaneous:
M914 - Set normal (high power) mode.
This engages spreadCycle mode on the TMC2130.
M915 - Set silent (low power) mode.
This engages stealthChop mode on the TMC2130. This will disable stallGuard functionality.
M916 - Set sg_thrs (stallGuard threshold).
Changes sensitivity of stallGuard. Lower numbers increase sensitivity, higher numbers decrease it.
If this value is too low, you'll get false positives. Too high, and missed steps will go undetected.
Example: M916 X3 Y3 Z3 E3
Here be dragons
It's best to avoid playing with these values unless you know what you're doing. I've done my best to explain their function, but consult the TMC2130 datasheet for full documentation:
https://www.trinamic.com/fileadmin/assets/Products/ICs_Documents/TMC2130_datasheet.pdf
M917 - Set pwm_ampl (PWM amplitude).
Note: the steps/s threshold is set to 0 in the Prusa firmware, meaning that stealthChop
and spreadCycle will never change while the motors are active, so pwm_ampl isn't actually
used for anything.
This is the maximum voltage amplitude that stealthChop can be set to when returning to
stealthChop mode from spreadCycle mode. There is a steps/s threshold where the driver
switches from stealthChop to spreadCycle mode even in silent mode, and when this
happens, the last voltage needed to achieve desired motor current (which varies with step
rate due to back EMF canceling out some of the voltage on the motor windings is stored
internally by the TMC2130. When the step/s slows to below the switch-over threshold,
this voltage amplitude is recalled and used as the starting point for stealthChop as it
re-engages. If this value is incorrect, you will suffer speed-dependent motor jerks whenever
the driver switches back to stealthChop from spreadCycle. This will almost certainly ruin
a print in progress.
Example: M917 X230 Y235 Z200 E240
M918 - Set pwm_grad (PWM gradient)
Only used in silent/stealthChop mode. This limits how fast the current can be ramped up
or down in the motors per each half-cycle. Higher numbers mean faster current ramps.
Faster ramps will permit stealthChop to achieve faster acceleration but at the price of
poorer current regulation. Valid values are 0-15.
Examples: M918 X2 Y2 Z4 E4
Re: Einsy-Rambo on mk2?
I want to report your post ... for awesomeness.
Thanks
----------------------------------------------
PRUSA MK2
- Noctua fan 40mm
- MK2/MK3 hybrid extruder
Re: Einsy-Rambo on mk2?
...
Thanks for the awesome writeup again.
I've been spending all day today to get my scratch built MK3s to run, battling with the TMC2130s.
I've run into multiple problems while trying to get the XYZ calibration to work, and about 8 hours in i'm still a bit puzzled how these things work in regards to some things like the endstop detection.
I've been trying various things with M911 and M912, like M912 X10 Y10 Z20 E36 or M912 X5 Y5 Z10 E36, to avoid a random problem i have with endstop detection. (Checking with M913.)
The X, Y and Z motors randomly detect the 'endstop wall' correctly, with a quick brr-swish-brr, and randomly fail to recognize it with a long brrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
The X and Y motors detect it randomly, but i could never get the Z motors to avoid a 5-6 second long brrrrrrrrrrrrrrrrrrrrrr-brrrrrrrrrrr at the top.
Giving them less power does not seem to help with them smashing into the 'endstop walls', giving the Z motors less power does not work either, once i go below Z15 the axes wont move up at all.
The X and Y motors detect the wall a bit better with a bit less power, but even then they sometimes won't detect the endstop wall.
Can't make heads or tails of it now.
Also if i use the G28 W command to auto home a few times in a row, the TMCs will get too hot and display a TMC_DRIVER_OVERTEMP error. does not get better with less power to the motors.
A fan pointed directly at them helps.
(btw, is it possible to check the TMC's temperature with a command?)
This board is quite "unique" compared to the old RAMBo's, perhaps we'll get to the bottom of this. (also it seems that even Prusa has some trouble with the TMCs when i look at github)
Re: Einsy-Rambo on mk2?
Those correspond to the X, Y, Z, and Extruder axes. Each number can be anywhere between 0 to 63. The actual current values can be calculated thusly:
CodeCogsEqn (2).gif
This is determined by the value of the current sense resistor used on the Einsy, which is 0.22Ω. While the TMC2130s in that package can do up to 1.4A RMS per phase, the Einsy board has limited the maximum current (63 in the firmware) to about 0.96A.
The current is limited to .96A because the driver chips should, theoretically, not overheat even if the user sets a maximum current value (63) for a given motor in the firmware. So if your extruder motor needed 800mA, the TMC drivers should work fine.
Hi, I'm helping some guys do a Extruder mod, and I'm trying to help them get not cook their new pancake motor(s). 😉
I can't figure out your equation for the life of me.
I'm getting 1.88 if I use 63. If I use 32 I am getting 0.969375
If I use 31, I am getting 0.53.
I'm not the best at that level of math, so I'm likely doing something completely wrong... but given the... "volatility" of electronics and stuff to "cooking" 😈 , I'm kind of afraid to say any number without understanding this better.
Thanks! 🙂
Hi, I'm Sean. I used to work on CNC machines.
I try to not make mistakes, but the decision is YOURS.
Please feel free to donate to my filament/maintance fund.
Re: Einsy-Rambo on mk2?
The X and Y motors detect it randomly, but i could never get the Z motors to avoid a 5-6 second long brrrrrrrrrrrrrrrrrrrrrr-brrrrrrrrrrr at the top.
That's totally normal on the Z. (At least it is on my mk3)
It actually only goes to the Z top, for initial calibration... It will not go up there normally.
Hi, I'm Sean. I used to work on CNC machines.
I try to not make mistakes, but the decision is YOURS.
Please feel free to donate to my filament/maintance fund.
Re: Einsy-Rambo on mk2?
Those correspond to the X, Y, Z, and Extruder axes. Each number can be anywhere between 0 to 63. The actual current values can be calculated thusly:
CodeCogsEqn (2).gif
This is determined by the value of the current sense resistor used on the Einsy, which is 0.22Ω. While the TMC2130s in that package can do up to 1.4A RMS per phase, the Einsy board has limited the maximum current (63 in the firmware) to about 0.96A.
The current is limited to .96A because the driver chips should, theoretically, not overheat even if the user sets a maximum current value (63) for a given motor in the firmware. So if your extruder motor needed 800mA, the TMC drivers should work fine.
Hi, I'm helping some guys do a Extruder mod, and I'm trying to help them get not cook their new pancake motor(s). 😉
I can't figure out your equation for the life of me.
I'm getting 1.88 if I use 63. If I use 32 I am getting 0.969375
If I use 31, I am getting 0.53.
I'm not the best at that level of math, so I'm likely doing something completely wrong... but given the... "volatility" of electronics and stuff to "cooking" 😈 , I'm kind of afraid to say any number without understanding this better.
Thanks! 🙂
The Stock Prusa Mk2 had a motor current of about 500mAh, 450mAh in silent mode.
The formula metacollin posted is complicated, yes, but it's actually easy to calculate it a bit differently and set the current.
Here's how i currently do it. (may be not entirely accurate, but it's close)
M911 E36
M912 E36
This should result in about 540-550mAh power draw for the stock current on the MK3
Since 0-63 are the hard values for the TMC's, one could calculate that 0-63 are 64 values, or if 0 is current completely off, 63 values.
so the TMC's give out 0.96mAh max for a motor, divide that by 64 and multiply by stock 36 = around 540-550mAh
The stronger Pancake motors will usually take up to 1.2A, and the weaker ones will take around 1A.
So you are well below that number.
For a geared stepper like my E3D Titan or jltx's skelestruder alpha, you need a much higher current.
I drive mine around 800mAh or else i get skipping, so my starting gcode should be M911 E52 & M912 E52
The TMC's should lessen the need for current, but the pancake steppers are prone to stalling compared to full motors even at the same current.
E3D doesn't recommend them anymore, and ships the Titans now with the 40N--cm 'compact but powerful motors' (same dimension as the LDO Prusa motors)
The X and Y motors detect it randomly, but i could never get the Z motors to avoid a 5-6 second long brrrrrrrrrrrrrrrrrrrrrr-brrrrrrrrrrr at the top.
That's totally normal on the Z. (At least it is on my mk3)
It actually only goes to the Z top, for initial calibration... It will not go up there normally.
I find it weird that the MK3 does not do the 'rotate the know until you are up' anymore. Alarms the user quite a bit with the long hard stall, compared to the MK2.
Still, i need to find out why it only intermittently works for the X and Y axis. No amount of current tinkering on these two will help. I think there is some other stall detection setting that i do not know of. Will have to look at the firmware.
...
metacollin, where did you find these new/alternative gcodes for the TMCs?
In stock Marlin wiki these do other stuff.
Re: Einsy-Rambo on mk2?
The Stock Prusa Mk2 had a motor current of about 500mAh, 450mAh in silent mode.
The formula metacollin posted is complicated, yes, but it's actually easy to calculate it a bit differently and set the current.
Here's how i currently do it. (may be not entirely accurate, but it's close)
M911 E36
M912 E36
This should result in about 540-550mAh power draw for the stock current on the MK3
Since 0-63 are the hard values for the TMC's, one could calculate that 0-63 are 64 values, or if 0 is current completely off, 63 values.
so the TMC's give out 0.96mAh max for a motor, divide that by 64 and multiply by stock 36 = around 540-550mAh
The stronger Pancake motors will usually take up to 1.2A, and the weaker ones will take around 1A.
So you are well below that number.
For a geared stepper like my E3D Titan or jltx's skelestruder alpha, you need a much higher current.
I drive mine around 800mAh or else i get skipping, so my starting gcode should be M911 E52 & M912 E52
The TMC's should lessen the need for current, but the pancake steppers are prone to stalling compared to full motors even at the same current.
E3D doesn't recommend them anymore, and ships the Titans now with the 40N--cm 'compact but powerful motors' (same dimension as the LDO Prusa motors)
Wait, you need HIGHER current for a gear vs direct?
Both mine and JLTX's logic was that you would need around 1/3 the amperage... (for the 3.5:1 we are running)
Because I'm trying to find someone to design a 10:1 gear ratio (exactly) so I have the option to put a 0.9 degree motor on it, and get 20:1, if I'm not happy with the results of the 10:1. (I need it because math says 1 microstep on the mk3 = 1.2mm of linear extrusion with the nozzle/layer height I want to get dialed into, even with a 3.5:1, I'm looking at nearly 0.4mm of linear extrusion per microstep) A 10:1 would pass with a 0.1mm of linear extrusion per microstep, which is likely fine in the real world, but I want it accurate to 0.05mm. Even with a 0.4mm nozzle @ 0.05mm layer height, without gear reduction the mk3 is right at 0.4mm of linear travel per microstep!!!
Either way, I understand your math. 🙂 Simple enough.
I also understand why a pancake vs full size motor, why the pancake would need more current... But I don't understand how a gear reduction, would increase the torque at the motor?
Hi, I'm Sean. I used to work on CNC machines.
I try to not make mistakes, but the decision is YOURS.
Please feel free to donate to my filament/maintance fund.
Re: Einsy-Rambo on mk2?
Wait, you need HIGHER current for a gear vs direct?
Of course. Conservation of Energy law.
You don't get something out of nothing, generic leverage does not work with gears.
Archimedes' leverage law uses the underside of the lever on the shorter end as a weight shifter to use less energy on the longer side. You don't have that with direct drive gears.
Gears serve two main purposes: increasing speed/accuracy or increasing force. In order to increase one of these, compromises must me made. For example, to increase the speed/accuracy of a bicycle's wheels (big gear) the force applied to the pedals (connected to the small gear) must be increased. So to increase the force on the wheels the pedals must be turned faster/harder.
There's a formula for gear force calculation around somewhere, but i'm too long out of engineering school to remember it's usage anymore. this should help if you want to know
The result of the Titan is that you gear down, speed goes down, accuracy goes up, but power requirement also goes up.
Lots of people who have the new Titan Aero get skipping or clicking unless they bump the current up enough where the motors run really hot. Like 80-90 degrees, check E3D's forum. (and they get a lot of skipping with the pancake steppers)
The old wades' or the old 3:1 Titans work the same way.
Both mine and JLTX's logic was that you would need around 1/3 the amperage... (for the 3.5:1 we are running)
Because I'm trying to find someone to design a 10:1 gear ratio (exactly) so I have the option to put a 0.9 degree motor on it, and get 20:1, if I'm not happy with the results of the 10:1. (I need it because math says 1 microstep on the mk3 = 1.2mm of linear extrusion with the nozzle/layer height I want to get dialed into, even with a 3.5:1, I'm looking at nearly 0.4mm of linear extrusion per microstep) A 10:1 would pass with a 0.1mm of linear extrusion per microstep, which is likely fine in the real world, but I want it accurate to 0.05mm. Even with a 0.4mm nozzle @ 0.05mm layer height, without gear reduction the mk3 is right at 0.4mm of linear travel per microstep!!!
Going up that high results in other problems, like printing really slow because the processor cannot handle that many steps, or because the big gear takes too long to turn, or lots of omitted steps by the drive chain, or skipped steps for other axes because your 1 core CPU ATMEGA cannot drive such a high resolution. Other commands will lag and fail.
Here i would recommend the Duet WiFi, this board has more than enough processing power with what you want to do, the MK3 board barely manages it all with the SPI interface, the added sensors, and TX/RX buffer usage by OctoPrint.
A simple 0.9 degree stepper and a 3:1 stepdown gear should give you a 6 times resolution increase, while doubling the full steps and reducing issues with microstepping. 3D printers have worked like this for years, and no amount of gear resolution increase will avoid your basic problem with diminishing returns.
This isn't a high end CNC machine where resolution and speed matter, it's a hot glue gun where the flow of plastic is obeying the laws of physics more than your flow and retraction settings, mounted to a couple of simple motors with stepping that was deemed 'good enough'.
A fine tuned stock MK2 has currently one of the best print quality on the market, beaten only by the Formlabs SLA printers in that price range.
Re: Einsy-Rambo on mk2?
*snip*
Ohhhhh... I see what you are saying.
You are correct for JLTX's application/use, of same speed/performance.
1:1, @ 20mm/s of extruder feed = 0.6amps
4:1 @ 20mm/s of extruder feed = 0.8 amps.
I rarely print at max speed.
And when I'm setup for Max quality, I keep my speeds below 20mm/s, Except infill, Which due to acceleration, it don't go much faster. (Parts are generally below 10mmx10mm)
When I think 4:1 i consider all speeds to go down by 4:1... Which is not the case here. Mechanical loss, is lost, and no gains. (Except a lot of torque) (though as I said I so rarely print large things it means nothing to me.)
Thanks! You've solved all my math issues, and informed me of a flaw I totally overlooked. (Luckily which don't effect me much.)
I honestly don't think a 20 to 1 will affect very much for me other than retraction and loading and unloading filaments.
I'm planning on building a large scale 3D printer this year with a super volcano I it to get the "fast" large scale prints out.
Hi, I'm Sean. I used to work on CNC machines.
I try to not make mistakes, but the decision is YOURS.
Please feel free to donate to my filament/maintance fund.
Re: Einsy-Rambo on mk2?
This thread has been super useful, I'm converting my own Mk2.4 at the moment. I'm using two power supplies, 24v for main power and 12v for the mk42 bed. I've also been toying with otcoprint through a pi zero w. Everything is working but there's some strange print behavior that I've never seen before. It's pulsing where it should be giving me straight even lines, almost like it's not getting enough power but this only happens during printing. The travel moves are all smooth. Running the same Gcode on my genuine Mk3 produces great prints, so I know the slicer isn't the problem. I'm running the Mk2.4 firmware and only changed the axis directions and Z axis settings since I'm using different lead screws. Any help would be appreciated, I'm pretty stumped.
Printing videos:
You can hear the pulsing on the middle infill layers where it clearly makes two or three pulses to complete a single line. The printer also slows down dramatically on every layer after the 3rd.
Re: Einsy-Rambo on mk2?
Hey,
i got my MK2.5 assembled and i am ordering the 5015 5V and a decent 24V PSU for Motors... Is there a schematic or a tutorial for the very good idea of metacollin?
do you have some experiences?
ty!
Re: Einsy-Rambo on mk2?
Hi, so I just discovered this thread, I'll be perfectly honest, I haven't read most of it yet, so I apologize if some (or even most) of this post is redundant. I just wanted to let everyone know that I've been running an MK2S with an Einsy board for a couple weeks now, and have everything working including stallguard and the endstop-less homing etc.
(Please forgive my atrocious wiring. I already know it's bad. I just don't care.) Here she is, in all her Einsy glory. Listen, can you hear that? Sweet sweet silence :). Everything works splendidly - homing without endstops, stallguard and counting missed steps, 256 microstep interpolation, all that good stuff. It feels like my MK2S is almost bullet proof now - I actually *can't* get it to screw up a print. Flawless operation is what you can expect! :).
Oh, and let's not forget stallGuard:
I back ported the MK3 firmware to work with the MK2S. There are still a couple of bugs I need to solve but you can check out my (in progress and on going) changes at my github fork of the MK3 v3.1.13 firmware. Be sure to checkout the 'MK24' branch (so, just shy of a MK2.5. Once my MK2.5 upgrade kit comes, I plan to make a 'MK2.8' version of the firmware which will essentially give you a MK3 minus the more rigid frame and faster print speeds that come with it).
I'm also an electrical engineer who specializes in switch mode power supplies, magnetics, motor control, that sort of thing. I have some important information about the steppers and TMC2130 drivers, but I'll get to that in a bit.
So, here is the short list of minor changes you will need to make:
Hardware:
1. You don't need to replace any connectors if you cut off their latchy bits with wire snips. This might sound barbaric, but trust me, replacing the connectors is a substantially larger pain in the butt than you might imagine. That said, you only really need to modify the PINDA connector. You can still connect it by leaving the pin furthest from the USB port on the Einsy board unconnected, the pinout is the same but with an extra pin added to that side for the temperature sensor. Here is a connection diagram that shows individual pin functions instead of just connector labels which I found extremely helpful.
2. The 12V power connectors can be removed just by loosening the screws. Then put the bare wire ends into the Einsy's screw terminals. This is easy and you can always reattach the 12V power connectors later if you want.
3. No way around it, you will need new 5V fans. But they're very inexpensive. You can print out a simple and effective adapter and buy the 40mm 5V Noctua fan, and a 5V blower from many places, as someone in the US, I got both on Amazon. Noctua for $14 and 5V blower for $9. Note, the 5V blower is not a 3 wire one, and is lacking the tachometer functionality. I've had a hard time finding a 3 pin blower that is both 5V and the right size. But knowing the RPM for the print fan (vs the hotend cooling fan) isn't too useful anyway.
4. Where we're going... we don't need end stops. Put the end stop switches down your sink's garbage disposal if you want. You aren't going to need them anymore. Or, less extreme, just don't bother connecting them (you'd have to alter the connectors to do so anyway.
5. Don't worry about the filament runout sensor. My MK3 firmware fork lets you enable or disable all filament runout sensor/autoloading functionality as needed by commenting or uncommenting out a couple #defines in the configuration_prusa file. However, I have no idea if enabling it actually works, as I have no way of testing it (yet).
6. Using 24V as the motor drive voltage is absolutely a requirement. No amount of software changes will permit the TMC2130s to correctly drive the stepper motors at 12V. Oh, and to make this clear: the MK2S and MK3 use the same motors. Or at least nearly identical. Stepper motors don't have true voltage ratings like brushed DC motors, only a max voltage limited by their windings (usually 48V+) and a maximum current. So your MK2's motors are not '12V steppers', nor are the MK3's 24V ones. They're the same. Which is why no changes are required to any of the TMC2130 settings in the MK3 firmware to work any less than flawlessly with the MK2S steppers :D.
I don't expect anyone to take my word for it, but the reasons are complicated and long so I moved them to the Appendix at the end of this post.
Using 24V is actually cheap, simple, and easy, it really is nowhere near as bad is it sounds! There is good news!
7. You can continue to use your 12V power supply for the heavy lifting, like the heated bed. I looked at how they have their power rails setup in the Einsy Schematics (this works for the mini rambo as well), and there is absolutely no problems with using different voltages for your heat bed vs. main power. You can continue to use your 12V power supply for the heavy lifting. You hook 12V up to the bed power input, and 24V up to the main power input. Since the fan voltages are now regulated by a buck converter down to 5V, they still get 5V. Same with the PINDA probe. The only thing that will see the raw 24V is the motors and the hotend heater cartridge.... at least if you connect it as is. Which leads me to...
8. You can continue to power your hotend from the 12V supply as well! Yes, even with 24V connected to the main power. You just have to be a little clever in how you wire it.
The heater is controlled by a N-channel MOSFET. What this means is that one of the two pins on the heater power output connector on the Einsy board is connected to whatever is powering our motors/whatever is connected to the main power input. So if that is 24V, there is 24V on that pin. It is never switched off, it is always connected. What IS switched off is the ground. An N-channel mosfet works by, effectively, 'disconnecting' something from ground when off, and connecting it to ground when on.
And ground is ground. That means that, as long as they share a common ground (which they do - the grounds of both bed and main power are connected by the Einsy's copper pours), we can connect one wire of the heater cartridge to any voltage, and the heater MOSFET switch will still turn it on and off exactly as before. Again, any voltage as long as that voltage shares a common ground with the main power - which, if the 12V supply is connected to the bed power input, is the case for our original 12V supply.
So all you have to do is cut the positive wire of the heater cartridge near its connector, strip the insulation off a bit, then splice it to the second 12V positive wire (since one of the 12V pairs is now sitting unused) by whatever means you like (solder, crimp, twist it really good and pray), and leave the remaining wire in the connector, connected to the Einsy's heater port as normal. Now your 12V supply is powering everything except the motors.
I'll draw a diagram tomorrow, sorry.
9. Your 24V supply can be a $9 wallwart! At 24V, even after bumping up the current by a fair amount (which I needed to do because something sticky got spilled on a leadscrew and 8mm ground rod... don't ask lol), all 5 motors combined never draw more than 700mA RMS at 24V. This drops to less than 600mA RMS at 28V. So something as modest as a 24V 1A power supply isn't just adequate, but will give you 30-40% headroom beyond the required current. This is seriously all you need. ($9)
There is already adequate decoupling on the Einsy board, the power supply does not need any real output capacitance or filtering. I am printing with my MK2S right now piping 28V down about 8 feet of speaker wire connected to the crappiest chinese mystery wallwart I could find, and there are no problems whatsoever.
This might weird people out, having two separate things powering the printer, but it is not a problem, and the boards are designed to be operated like this - that's the entire point of having separate bed and main power connections. They have oring diodes where needed. The schematic labels the bed and main power rails as 12V3 and 12V2 I believe, but these are just names - they are not necessarily intended to only work at 12V. And clearly this is the case, as the MK3 connects them both to 24V rather than 12V. Beyond that, they need not be the same voltage. Plenty of people use them with different voltages. And the entire board will act as if it is 'on' (ATMega booted and operating, LCD on, etc.) as long as any one of the two voltages is turned on. So it doesn't matter if you have only the 24V on, or only the 12V on, or which order you turn them on or off. Though, with 12V off, the heated bed and hotend heater will not work, obviously. But to turn the printer on and off, you just turn both supplies on, or off, with any amount of delay in between, and in any order. It's fool proof, and it just works. And all of this is by design and qualifies as an intendedusage case of both the Einsy and rambo mini.
OK, so I need to go to bed, this turned into a very long post, but in a few days I should have things tested well enough that I might be comfortable sharing a (TOTALLY UNSUPPORTED AND USED AT YOUR OWN RISK AND RESPONSIBILITY) firmware hex people can flash. Until then, more adventurous people are welcome to download my firmware from github - it compiles directly in the arudino IDE and should be flashed from it as well. Only to an Einsy board though, of course.
For those curious about what had to be changed, I had to adjust some of the calibration parameters (the calibration points changed position slightly with the MK3), change the position of the PINDA probe, fully enclose various filament runout sensor, heatbed v2, and power panic-specific code in #ifdef compiler directives to permit the disabling of those features... I am probably forgetting something but its all visible in the diffs on git.
Appendix:
Why won't 12V work as the motor drive voltage when using the TMC2130 drivers?
The TMC2130s are definitely the reason Prusa increased the voltage of the MK3 to 24V - out of necessity. I know this is not the news many of you wanted to hear, but the simple fact is that if you want to use the TMC2130 drivers to drive your motors, you need to use at least 24V (higher is even better - 28V seems to be the sweet spot for me).
The reasons are, unfortunately, neither singular nor simple. There are several compounding factors behind this, but I'll touch on them briefly for those interested.
• The loud whine is due to the motors' coil inductance. What you're hearing is the PWM chopping frequency. It should be around 26kHz, but at 12V, the drivers can't ramp up the current fast enough at a cycle-to-cycle level, so they compensate by reducing the PWM/chopping frequency. And it gets reduced straight into the audible range of human hearing. The whining you hear is the motor coils vibrating, and this is not a quiet sound. It is loud enough to be painful to my ears if I am within 3 feet of the printer.
• Overmodulation when motors are moving. At 12V, as soon as the motors begin turning at even fairly low speeds, the back EMF becomes too high. Back EMF is a voltage opposing the drive voltage... you know how the LCD lights up when you manually move the steppers but the printer is off? That's due to back EMF. It happens whenever the motor is moving, including moving under power. When this gets too close to the maximum drive voltage (12V) minus the resistive loses of the motor coils, this forces the TMC2130 drivers into their overmodulation region. This wasn't an issue for the A3982 because at 1/16th microstepping, these spikes were too fast and were outside the driver's modulation bandwidth.
Uh, this one is hard to explain. I suppose one might think of overmodulation as analogous to the distortion region of an audio amplifier. Or if anyone here is into hamatuer radio, I mean it in exactly the same way you understand overmodulation, but it is modulating coil phase current instead of radio.
You know how a smaller audio device, if you turn the volume up too high, begins to produce very unpleasant, distorted sound? You can kind of think of it as a similar effect in the motors. I looked at the phase current waveforms on my oscilloscope, and it became quite dirty as the motors began moving, heavily distorted with nasty harmonics. As a bonus, this also generates additional (and even more irritating) audible noise. It makes the driver chips have to dissipate a lot more heat than they would normally, and generally degrades all-around stepper performance, current regulation, and microstepping behavior. You can expect to see jerky, and intermittent movement (with the pauses marking periods of hundreds of skipped microsteps, all unnoticed by the firmware) at low to medium speeds (and faster) as a result of this.
• For the same reasons as overmodulation, stallGuard2 (required for calibration and all sorts of other minutia in the MK3 firmware) will never work with these motors at 12V. stallGuard2 requires the drive voltage to be greater than the resistive voltage losses plus the back emf voltage to correctly measure/detect a stall or missed step, and unfortunately, for all but the lowest speeds, 12V is not high enough to meet this requirement.
• The driver chips dissipate more power at 12V due to the above, and I would question their ability to not overheat in these conditions.
I really want to drive this home to hopefully save someone from wasting their time trying to use 12V. The only possible 'solution' would involve turning off 256 microstep interpolation and running the chips at 1/16th microstep mode, which would also disable stealth chop, stallGuard2, and every reason for even bothering to upgrade to the Einsy with it.
@metacollin are you still supporting a branch that works on this or could you specify what exactly you had to change in the firmware to have a EINSY RAMBo working with a 2.5 upgrade?
I really wish they would just let me buy the 2.5 upgrade with 24v parts but sadly they will not! 🙁
RE: Einsy-Rambo on mk2?
@metacolin, I'm curious to know if you (or anyone else here) is still running a MK2.5 with the Einsy Rambo? I'm considering making the switch, but my biggest hesitation is the custom firmware required. I've already upgraded to a "2.5S+" but I may need to replace the mainboard due to heatbed connector melting issues, so it's more about just replacing the board.. upgraded features would just be a bonus. Thanks.
RE: Einsy-Rambo on mk2?
the mainboard heatbed connectors melting issue can be resolved by replacing the connectors with higher amp connectors. I did that in mine and it's been rock solid ever since.
make sure the heatbed end is nice and tight as well as the wire guard used for the power for the heatbed. The wire gauge that comes with the heatbed and the printer is too small, upgrade that to some good 16G silicone wire and you'll be good to go as that will lessen the resistance in the wire and lessen the heat and will stop the melting 🙂