Mightyboard stepper driver adapter

1,048 views
Skip to first unread message

Ryan Carlyle

unread,
Sep 16, 2015, 12:52:56 PM9/16/15
to 3DP Ideas
Mightyboards have their stepper drivers "upside down" relative to Pololus and other typical RepRap stepper drivers. (Note: The Mightyboard way has much better thermal performance and works great with digipots -- Pololus only face the way they do so you can access a trim pot without putting components on both sides of the PCB.) This difference makes it non-trivial to use anything but Botsteps in a Mightyboard. That limits your drive current to about 0.8A. To go higher or use a different driver chip, you have to solder the pins on a Pololu the wrong way and then do a solder blob jumper to get the microstep select jumpers right. Not hard, but more tinkering than most people are willing to do.

However, it seems like a little adapter board would be dead-simple to make. Plug the adapter into the Mightyboard socket, plug the Pololu style driver into the adapter, and done. Should be doable with a very simple two-layer PCB and some headers/pins.

I wouldn't see this as real valuable on its own, because the stock stepper driver works extremely well for the stock motors, and most people who use bigger motors are happy to do a little light soldering. Where it gets interesting is enhancing the daughter board. A small amount of extra functionality would allow things like an additional motor header, or O-scope test points, or running the Mightyboard Digipot signal to a RAPS128 driver, or an easier way to select microstep level, or breaking out Vmot for a different PSU voltage. Lots of interesting options there.

whosawhatsis

unread,
Sep 16, 2015, 2:00:02 PM9/16/15
to Ryan Carlyle, 3DP Ideas
The Pololu and StepStick designs (including the various clones) put all components on top as you said. This caused no end of trouble back when I was trying to build my own controller on a breadboard back in the early days (when gene was the only option, and was hard to get your hands on) because it meant that all of the pin labels were on the bottom. Now that we're working with board designed to accept them, this is less of an issue, though they're still probably plugged in backwards more often than they would be if the pin labels were visible.

The Azteeg stepper drivers put all of the components on the bottom except for the potentiometer, and SilentStepStick from Watterott puts all components on the bottom, but uses a thermistor that is designed to be accessed through a hole in the PCB, so that it is mounted on the bottom but accessed from the top.

The real problem is that the botstep drivers have (almost) the same footprint as pololu-style stepper drivers, but they reversed it to get the components on the bottom side of the board rather than modifying the board design as Roy and the Watterott guys did.
--
You received this message because you are subscribed to the Google Groups "3DP Ideas" group.
To unsubscribe from this group and stop receiving emails from it, send an email to 3dp-ideas+...@googlegroups.com.
To post to this group, send email to 3dp-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ryan Carlyle

unread,
Sep 16, 2015, 3:58:54 PM9/16/15
to 3DP Ideas
I hadn't noticed the thru-board pot hole on the SilentStepStick, that's a clever approach. (I have a few, just haven't ever installed them.) Any idea if those upside-down potentiometers are cheap/common?



I can see why Makerbot did what they did -- they've been making these things at a scale that blows away Watterott, Panucatt, etc. (Assuming they expected growth and market share at the time of the design -- I don't know.) The cost differential of having all the SMD components on one side adds up when you're making hundreds of thousands of drivers. 

That said, Mightyboards only output about 0.8A, so while having the thermal via pad face-up is the "correct" approach, they would have performed absolutely fine with a heatsink mounted on top of the chip and components face-up. So I don't know how much thought really went into it. 

In any case, something resembling a quarter to third of all consumer 3d printers use upside-down drivers now. Letting those users swap in "standard" drivers and higher-current motors without soldering would be nice. The adapter board concept seems simple enough to OSHPark some prototypes, and then maybe Geeetech decides to start selling it for a few bucks. 
To unsubscribe from this group and stop receiving emails from it, send an email to 3dp-ideas+unsubscribe@googlegroups.com.

whosawhatsis

unread,
Sep 16, 2015, 9:13:14 PM9/16/15
to Ryan Carlyle, 3DP Ideas
You can get them, but they don't appear to be particularly common or cheap. Looks like most of them cost about $1-2 (quantity of 1). https://www.digikey.com/product-search/en?pv24=12&FV=fff40004%2Cfff80338&k=potentiometer&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25

I still think it was a dumb idea for MBI to orient everything like a pololu driver, but then flip the pins so that everything would be reversed. It would have been better to design the board to match the pinout when the components were on the bottom, the way Panucatt and Watterott did. If the original boards didn't have a potentiometer that needed to be adjusted, it would have been fine, but because everything else _has_ to be designed for the other orientation to make the potentiometers available, you can't just say that all pololu-style drivers _should_ have their headers soldered the other way (which, if not for the potentiometer, I would have agreed was the case). At the time, they all came with the headers unsoldered so that you could mount the other way, but nobody did, because of that damn potentiometer, and there was a standard with which they broke compatibility for no good reason. They would have been better off making something that didn't even match the board size (that way they could have added the reference voltage without removing MS3), maybe even something keyed so you can't plug it in backwards.
To unsubscribe from this group and stop receiving emails from it, send an email to 3dp-ideas+...@googlegroups.com.

To post to this group, send email to 3dp-...@googlegroups.com.

Ryan Carlyle

unread,
Sep 16, 2015, 10:04:46 PM9/16/15
to 3DP Ideas
To be fair, the 4982 doesn't need MS3, and having the external digipot Vref is a very nice feature to replace a microstep select line that most people never use. And Pololus weren't quite as dominant when the Botstep was designed. But I generally agree.

All that said... Wouldn't it be nice if we could overcome those design decisions, easily plug "standard" drivers into Mightyboards? :-)

whosawhatsis

unread,
Sep 16, 2015, 10:43:43 PM9/16/15
to Ryan Carlyle, 3DP Ideas
I've never actually used a mightyboard, but yes, if I was using one, it would be nice to be able to swap-in standard drivers. You should include a place to attach a jumper wire to connect to the VREF pin on drivers like the Panucatt and Watterott versions that allow you to add an extra pin for that. It's too bad those two didn't put it in the same place (opposite corners, actually).

On Wednesday, September 16, 2015 at 19:04, Ryan Carlyle wrote:

To be fair, the 4982 doesn't need MS3, and having the external digipot Vref is a very nice feature to replace a microstep select line that most people never use. And Pololus weren't quite as dominant when the Botstep was designed. But I generally agree.

All that said... Wouldn't it be nice if we could overcome those design decisions, easily plug "standard" drivers into Mightyboards? :-)

--
You received this message because you are subscribed to the Google Groups "3DP Ideas" group.
To unsubscribe from this group and stop receiving emails from it, send an email to 3dp-ideas+...@googlegroups.com.
To post to this group, send email to 3dp-...@googlegroups.com.

adam paul

unread,
Sep 17, 2015, 12:19:52 AM9/17/15
to 3DP Ideas
What was the botstep breakout board for? I thought I had read about that in one of your builds Ryan.

Ryan Carlyle

unread,
Sep 17, 2015, 9:31:47 AM9/17/15
to 3DP Ideas
I have some special stepper drivers and little adapter widgets soldered up for o-scope probing the coil waveforms, is that what you're thinking of?

adam paul

unread,
Sep 17, 2015, 9:58:59 AM9/17/15
to 3DP Ideas

adam paul

unread,
Sep 17, 2015, 10:00:08 AM9/17/15
to 3DP Ideas
I really dislike the way Google groups handles photos.

Ryan Carlyle

unread,
Sep 17, 2015, 10:59:13 AM9/17/15
to 3DP Ideas
I don't remember seeing that pic before. Something Gary posted? 

With the "hardware" implementation of CoreXYZ kinematics, you take the X, Y, and Z DIR/STEP signals off the mainboard and wire them to four stepper drivers through a special "multiplexing" board. Basically there's a truth table that relates cartesian steps to combinations of CoreXYZ motor steps. You could do the same kinematics in software quite easily, but none of the typical firmwares can control four motion axes without significant code changes. The motion planners and such all assume three XYZ motors and one independent extruder motor at a time. (I do think MachineKit could do it via HAL pretty easily, but I'm too lazy to deal with that learning curve.)

Gary Crowell

unread,
Sep 17, 2015, 9:20:02 PM9/17/15
to 3DP Ideas
It has not been a good year.  After two outpatient surgeries,  two in-patient surgeries (one included a trip to ICU, the other, six weeks in a cast), several other minor procedures; here I sit again, in the hospital for the past week.  And because I'm here, I missed another outpatient surgery that will be rescheduled.  The kicker is that none of that was related; all different issues, and no accidents.  Just out of warranty I guess.  The wife has kept a close second.  

Ryan, I'm pretty sure I've got the XYZ board, parts, and those BOBs all together in a box I can find.  I meant to send it long ago.  When I get home, maybe another couple days, I'll dig it up and try to get it off. 

--
You received this message because you are subscribed to the Google Groups "3DP Ideas" group.
To unsubscribe from this group and stop receiving emails from it, send an email to 3dp-ideas+...@googlegroups.com.
To post to this group, send email to 3dp-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
----------------------------------------------
Gary A. Crowell Sr., P.E., CID+

Ryan Carlyle

unread,
Sep 17, 2015, 9:57:32 PM9/17/15
to 3DP Ideas
Gary, I'm a firm believer that you gotta take care of yourself and your family before doing favors for people on the Internet :-) so take all the time you need!

Ryan Carlyle

unread,
Jan 22, 2016, 1:21:59 AM1/22/16
to 3DP Ideas
Felt like taking a stab at this tonight. My goal here is putting a Panucatt SD6128 driver in a Mightyboard. It's a great driver, basically the same as RAPS128 but without the goofy design decisions. But unlike Pololus, the SD6128 isn't really "flippable" because the driver chip is 1) huge and 2) needs a big top-mounted heatsink. So a little adapter PCB seems like the ticket. 

I'm no EE, anyone want to take a look at the attached files and make sure nothing looks too stupid? I'll get some made and try it out. Shouldn't require anything more than the PCB and some 0.1" pitch header pins and sockets. 
  • The adapter will offset the driver from the socket by 0.1" and thus is 0.1" wider than a normal driver. This will easily fit in RevG/H Mightyboards and should barely fit in RevE Mightyboards and clones. I have no idea what kind of margin I need between pins and the PCB edge, nor what kind of tolerance the PCB dimensions will have. Some advice here would be appreciated.
  • The adapter is longer than the socket, which is fine, none of the Mightyboards have any meaningful space constraints on the side that is extended.
  • Motor coil lines are on one side of the adapter, STEP/DIR/EN on the other. I only put the ground plane on the coil side. Seemed like a vaguely good idea. Did I mention the fact that I'm not an EE?
  • There are some shenanigans with microstepping to make routing easier. For example, MS3 is lined up to the Mightyboard SLEEP pull-up as a +5v source. I'm hardwiring it to 1/16 stepping because that's what 99.9% of Mightyboard bots use, and because I feel like it. Solder blob pads or pins for jumpers or something probably wouldn't be hard, but I'm lazy and it's getting late. Easy enough to add them in rev 2.
  • I routed Mightyboard Vref through the adapter to the optional Vref input pin location on the SD6128. Some minor and easy driver board mods are required to use this feature. I haven't done the math very carefully yet, but current output on a "per published schematic" Mightyboard RevE looks like it will be [digipot/40=amps], and a FlashForge clone will be [digipot/33=amps]. Pleasantly simple, that!
  • Does the THB6128 require more bulk capacitance on VMOT since it's a higher-current driver? No idea. Might be worth adding to rev 2, but I don't want to add anything to the parts list right now. 
See BRD and SCH attached. 
Adapter r1.sch
Adapter r1.brd

Ryan Carlyle

unread,
Jan 22, 2016, 10:27:14 AM1/22/16
to 3DP Ideas
Made some tweaks. MS3 on the SD6128 now ties to MS1 on the Mightyboard, since all the MS pins on the SD6128 have 4k7 pull-downs. I also did some silkscreen work. 

Adapter r1.sch
Adapter r1.brd

Ryan Carlyle

unread,
Jan 25, 2016, 12:07:33 AM1/25/16
to 3DP Ideas
I'm breaking one of my own design rules and building a two-Z-motor bot soon (because I'm too lazy to implement proper belt-sync for this specific build). So just for grins I whipped up this little "run two motors wired in series" board for Mightyboard RevE. Assuming I got the parts dimensions close enough, this PCB will plug directly to the Mightyboard stepper header as a daughter board. 


Pretty straightforward. Main thing is that I wanted my Z motors wired in series, not parallel like all the typical RAMPS style boards do. 

Advantages of wiring the motors in series:
  • The two motors see exactly the same current, even if their coil specs vary (eg typical motor coil spec tolerance is +/-20%, which can unbalance the currents when wired parallel)
  • Does not require cutting the driver's rated current in half for each motor (which is a pretty big deal if you want to use BotSteps that max at 0.84A, for example)
  • If you back-drive one motor when the power is off, that will produce current in the other motor that will tend to try to keep them synchronized (whereas wiring in parallel does the opposite to a smaller degree)
  • Drivers that have low-speed microstepping ripple problems like the 8825 and to a lesser degree 4988s will perform better at low speeds
Disadvantages of running in series (ie why everybody wires in parallel)
  • You have to have both steppers plugged in, it won't run with just one (which is why two-motor series headers cannot be built into the main controller board)
  • The effective inductance and resistance is doubled, which is fine for a Z stage in a 24v system, but could be dodgy in 12v systems, and you have to be careful to select really low-inductance motors

Jetguy

unread,
Jan 29, 2016, 7:32:44 AM1/29/16
to 3DP Ideas
Series, the system sees the correct current, but unmatched motors still mismatch current.

The only way to ensure exact current though a motor is a dedicated current hoping driver. Otherwise, Ohm's law applies.

Ryan Carlyle

unread,
Jan 29, 2016, 11:58:26 PM1/29/16
to 3DP Ideas
Both motors will see the same current. Are you just saying that two different motors can't be set to the correct current for each motor? If they're significantly different, you shouldn't run them in tandem at all, series or parallel :-)

Give you an example of where this comes up... I bought a particular stepper+screw from Kysan about a year ago, and recently decided to pair it with another stepper+screw to make a two-screw Z stage. So I re-ordered the same part, but it was out of stock and months lead time. Kysan recommended a replacement that was +/-10% or so different on all the specs. That's fine from a performance standpoint, but if I ran them parallel, one would get considerably more current. With them in series, they'll both get exactly the current I set.

Yes, naturally, using two separate drivers is optimal. But for this build, I'm already going to have a SD6128 stacked on top of a Pololu-to-Botstep adapter, and soldering a second driver on top of that stack just gets ridiculous. 

Jetguy

unread,
Jan 30, 2016, 7:34:04 AM1/30/16
to 3DP Ideas
Let's just mimic a common problem in LED strips. Each LED has a slightly different forward voltage and that results in a complex impedance that is unique to a given LED.
When they are placed in series in string of LEDs, the LEDS can be and are noticeably different brightness.

Putting in series does not magically match the 2 motors.
The only way to ensure the motor current is correct to the rated spec for a given coil is active sensed current control (AKA dedicated driver)
If you have 2 motors of reasonable identical spec, parallel or series could work, but again, relies on the assumption the motors truly are identical and thus share the current limited/controlled by the driver equally.

whosawhatsis

unread,
Jan 30, 2016, 4:48:00 PM1/30/16
to Jetguy, 3DP Ideas
LED strips (I'm assuming you're talking about the 12V ones that are all one color, not the ones with individually-addressable LEDs that usually run on 5V) are not entirely series circuits, they're series-parallel, typically with three LEDs in series with one resistor in each segment, and all of these segments are wired in parallel with one another. In each segment (assuming they are white LEDs), you get a nominal forward voltage drop of 3.3V x3, leaving 2.1V across the current-limiting resistor. Say the resistor is 39 ohm (as is the case for the one I checked, your strip may vary), that leaves you with about 54mA through each segment. The strip would be pretty dim if you were dividing this by three, but since that current goes through all three LEDs, they're pretty bright.

All of these values have tolerances due to manufacturing issues, as does the brightness of each LED for a given current. If there is one LED in a segment that is brighter or dimmer than the other two, it doesn't mean that one is getting more current, only that (due to some manufacturing issue) its response to current is a little different, and it's forward voltage drop is probably different too (you can test this, unless you have one of the strips that's encased in silicone for weatherproofing). Note that if one LED has a difference in it's FVD, that will change the voltage at the current-limiting resistor, so the two others in the strip are likely to shift a bit in the other direction, making the difference more obvious.

If a whole segment is brighter or dimmer than the other segments, it could be that all three LEDs have a variation in FVD from nominal in the same direction, but a more likely explanation is that the current-limiting resistor is a little out of spec. You should also expect long strands to be slightly dimmer at the far end from the power source, as the resistance of the copper powering all of the segments in parallel will be non-zero over several meters, and even 2 ohms is a 5% increase over the nominal 39 ohms from the current-limiting resistor.

No, as with LEDs, wiring them in series does not guarantee the same output (brightness for LEDs, torque for stepper motors), but that's because of variations in their response to having the same current running through them, not because the current running through them is different. If you have two steppers rated for the same current and the same torque, even if all of the other factors are different, they should perform the same with the same current running through them (until you get to edge cases like high speeds, but when that happens, if means that the driver is failing to maintain the current through the phases anyway due to inductance issues).

Actually, Ryan, it would be interesting to see a version of your stepper driver simulator that shows the effects of motors with unequal inductance wired in series and parallel. I bet the voltage as measured between the series motors would do some interesting things...
--
You received this message because you are subscribed to the Google Groups "3DP Ideas" group.
To unsubscribe from this group and stop receiving emails from it, send an email to 3dp-ideas+...@googlegroups.com.
To post to this group, send email to 3dp-...@googlegroups.com.

Ryan Carlyle

unread,
Jan 30, 2016, 5:21:02 PM1/30/16
to 3DP Ideas, vernon...@gmail.com
That WOULD be really interesting to simulate, but it would require a pretty major overhaul. I mean, you can KIND OF do it now, by taking the RL circuits and solving for a combined series/parallel inductance, which will tell you the current the driver is seeing, but that doesn't tell you what the current in each coil is for parallel or voltage across each coil is for series. That'd be a lot of extra calculation steps to sort out. 
To unsubscribe from this group and stop receiving emails from it, send an email to 3dp-ideas+unsubscribe@googlegroups.com.

Ryan Carlyle

unread,
Feb 7, 2016, 12:30:03 AM2/7/16
to 3DP Ideas
For some reason, my Pololu-to-Mightyboard adapter PCBs are lost in the mail, but the double-motor serial adapter came. The PCB receptacles aren't a perfect fit as far as daughter board edge spacing, but bending the pins makes them work. I'm just glad I found a way to securely stick a daughterboard into the existing Molex sockets.



I need to get my Tesseract Delta back together from a drivetrain upgrade before I take apart my CoreXY, but the dual-Z-screw mod is coming up soon on the to-do list if I can find time. It's looking like it will be a disgustingly easy Z-stage build because almost every part is off-the-shelf with some (hopefully) clever hacks. 

Ryan Carlyle

unread,
Feb 10, 2016, 2:57:49 AM2/10/16
to 3DP Ideas
Well, my Mightyboard CoreXY is now successfully printing with SD6128s, using the onboard digipot Vref for gcode current control. 


I realized halfway through that the SD6128s could be soldered directly to the adapter PCBs rather than socketing into headers. So I made two permanent style and two swappable style. 

If I get around to it, I may make a new PCB that lets you pick microstep level etc with jumpers, but my main goal was putting a SD6128 in a Mightyboard with 1/16 stepping, and that is working 100%. 


Ryan Carlyle

unread,
Feb 10, 2016, 3:02:31 AM2/10/16
to 3DP Ideas
I should note that the noise and performance is seemingly unchanged (at first sight) from the Pololu 4988s I was running, but: 
  • The SD6128 can handle a wider range of motors and voltages with good current control than the 4988 or 8825
  • Having digipots that can go up to perhaps 2A is really nice for non-standard Mightyboard-based printer builds... the standard BotStep only goes to 0.84A which really limits machine size
  • The adapter lets you use drivers that already have header pins installed, with a moderate amount of easy soldering to set up the adapters, unlike the "flip it upside down" trick to get Pololus into Mightyboards

Steve Johnstone

unread,
Feb 10, 2016, 2:42:21 PM2/10/16
to 3DP Ideas
Nice job Ryan.

Ryan Carlyle

unread,
Feb 10, 2016, 4:05:21 PM2/10/16
to 3DP Ideas

Dan Newman

unread,
Feb 10, 2016, 4:12:06 PM2/10/16
to 3DP Ideas
On 10/02/2016 1:05 PM, Ryan Carlyle wrote:
> https://oshpark.com/shared_projects/0jqJEimG
> If anybody wants to make some

21 ordered with 2oz copper ($22.05 total)

Oh, for the days when it was still batchpcb.com and small items you would get LOTS of
regardless of how many you ordered. They would fill the panel entirely and use small
tiny boards to help pack it. I'd often order -- and just need -- a couple of something
small and I'd receive well over a dozen.

Dan

Ryan Carlyle

unread,
Feb 10, 2016, 5:11:43 PM2/10/16
to 3DP Ideas
Have you tried the 2oz OSHPark option before? I was curious about it, but didn't want to experiment with the thinner FR4 that comes with it. I did check the trace widths for 1oz. 

BOM for socketed version:
  • WM50016-17-ND -- 17 position male header (1 per board, cut to 8,8,1)
  • S7041-ND -- 8 position female header (2 per board)
  • 929974E-01-01-ND -- 1 position female header (optional, 1 per board IF you want to use digipot vref instead of trim pot)
For the permanent install version, skip the female headers. You just need male header pins.

To use the digipot with the SD6128, you'll need to solder an extra header pin on the SD6128 and DE-solder a blob jumper. Plan accordingly.  

I now have about 6 hours of printing on the SD6128s with no thermal shutdowns or lost step. I am using these digipot setting on a FlashForge Mightyboard RevE:
G130 X43 Y43 Z33 A28 B28 ; Set Vrefs for SD6128s
Make sure you also change the defaults in RepG so you don't hit thermal shutdowns while jogging, etc. 

For FlashForge Mightyboards, the overall current equation will be [AMPS = DIGIPOT / 33.4]
  • Kysan 1124090: digipot 43 ~= 1.3A
  • Kysan 1040094: digipot 33 ~= 1A (Z screw motor is on a PLA bracket at the moment)
  • Moon's standard Makerbot stepper: digipot 28 ~= 0.84A
They're all running right around where I like my steppers (and women): hot but touchable. Actually, I think I could probably crank up the extruder stepper a bit. 

I validated the Vrefs with a meter. I assume the SD6128 is per Panucatt's supplied equation of AMPS=2*VOLTS. 

Note that FlashForge's digipot circuit is not per the published schematic. I can't confirm what the equation will be on genuine Makerbot RevE/H/G Mightyboards. 

Dan Newman

unread,
Feb 10, 2016, 5:28:36 PM2/10/16
to 3DP Ideas
On 10/02/2016 2:11 PM, Ryan Carlyle wrote:
> Have you tried the 2oz OSHPark option before? I was curious about it, but
> didn't want to experiment with the thinner FR4 that comes with it. I did
> check the trace widths for 1oz.

I pretty much always order 2oz copper on boards. It costs so little extra
and I have good soldering irons so the extra heatsinking isn't a problem
for me. The only time in recent memory when I didn't order 2oz Cu was
when I made some heater PCBs and spec'd the serpentine trace to be some
resistance +/- 10%. Then I had the fab start with a base board with 0.5 Oz Cu
and use a deposition process to build up the copper to the necessary
thickness (which they calculated beforehand -- they didn't desposit copper,
measure, deposit more, measure, etc.).

Dan
Reply all
Reply to author
Forward
0 new messages