Controller boards with integrated TMC drivers

This is an inventory of all the 32-bit boards I can find in current production (or about to be released) with TMC stepper drivers integrated onto the board, rather than on a “stepstick” or in a completely external pack.

In Production

Board CPU Freq Drivers Firmware Current ~Price (USD) Notes
Duet 2 Maestro SAM4S8C 120Mhz 5xTMC2224 RRF 1.6A $130 open source
Duet 2 Wifi ATSAM4E8E 120Mhz 5xTMC2660 RRF 2.4A $170 open source
Duet 2 Wifi clone 120Mhz TMC2660 RRF 2.4A $110
Duet 2 Ethernet ATSAM4E8E 120Mhz 5xTMC2660 RRF 2.4A $180 open source
Duet 3 6HC ATSAME70Q20B 300 Mhz 6xTMC5160 RRF 4.45A $230 open source
Duet 3 Mini 5+ ATSAME54P20A 120Mhz 5xTMC2209 RRF 1.4A open source
Kinetica G2C ATSAM4S8C 120 Mhz 4x TMC2209 RRF 2.8A? $79 (wifi) bootlocked
Prusa Buddy 4x TMC2209 Custom Marlin 2 (bootlocked) ? $97
Recore A6 Cortex A53 4-core 1GHz Linux, 300Mhz RT 6x TMC2209 Klipper + Linux 2A $149 + $10 connector pack open schematic
BIGTREETECH SKR Pico v1.0 RP2040 (2-core ARM Cortex-M0+) 133Mhz TMC2209 Klipper 0.8A (more with active cooling) $36
BIGTREETECH SKR Mini E3 V2.0 STM32F103RCT6 72Mhz 4x TMC2209 Marlin 2.8A? $45
BIGTREETECH Direct SKR CR6 V1.0 STM32F103RET6 72Mhz 4x TMC2209 Marlin ? $48
BIGTREETECH SKR E3 Turbo LPC1769 120Mhz 5x TMC2209 Marlin 2.5A $56
TH3D EZBoard Lite V1.2 LPC1769 120Mhz? 4x TMC2208 Marlin 1.5A $130
FYSETC Cheetah v1.1b STM32F103 72Mhz 4x TMC2209 Marlin ? $29


Unreleased as of last known update

Board CPU Freq Drivers Firmware Current ~Price (USD) Notes
Smoothieboard v2-prime LPC4330 204Mhz TMC2660 Smoothieware 2.8A open source
Smoothieboard v2-pro LPC4330 204Mhz 3xTMC2160 / 2xTMC2660 Smoothieware 5A / 2.8A open source
Phi ATSAME51N19A + ESP32-S3-WROOM-1-N8 120Mhz + 240Mhz 5x TMC2209 (+2 Duet 3 Expansion Mini 2+) RRF 1.8A $149 open source, unreleased

Out of production

For comparison/archive purposes, out-of-production boards:

Board CPU Freq Drivers Firmware Current ~Price (USD) Notes
Replicape OMAP3530 1GHz TMC2100 Klipper 1.2A (cooled) $100 + $70 BBB
BIGTREETECH SKR Mini E3 V1.2 STM32F103RC 72Mhz 4x TMC2209 Marlin 2.8A? $30

Please add new boards or new information about existing boards!


Bigtreetech skr mini E3 v1.2. has tmc2209 and an lpc1768. I just did a conversation on my Talos3D Spartan (from the gt2560 it was originally running). Works well, and there is a hack to use the full 512 storage on the chip.

1 Like

Updated, thank you!

Not sure this has been released; I don’t see it on ebay or amazon as suggested in the HaD build log, but I added it to the table anyway.

I wanted to look that up…

This is now implemented upstream in the main Marlin repo. In platformio.ini , you’ll have four environment options:

  • STM32F103RC_bigtree … RCT6 with 256K
  • STM32F103RC_bigtree_USB … RCT6 with 256K (USB)
  • STM32F103RC_bigtree_512K … RCT6 with 512K
  • STM32F103RC_bigtree_512K_USB … RCT6 with 512K (USB)

Here “USB” means exporting both a serial console and also exporting the SD card as a mass storage device; the builds that don’t say “USB” still have the normal serial console.

But see also that it is no longer the default:

I’ve used it with the USB version. Works fine. I think some people were experiencing issues, and I can’t recall the reason. But it’s nice if you’re using octoprint for a printer, because then you can do firmware upgrades by pushing the firmware.bin directly to the SD card from the Pi. Then just reboot, and you’re upgraded when the board loads the bin file.

1 Like

I definitely ran into this problem when using the _USB version to pid tune:

It’s not that hard to move the microsd card back and forth, even if it’s not quite as convenient. The mini-USB (really‽ In 2020‽) cable they sent is too short for my use, and I had put away most of my other mini-USB cables somewhere.

Oh, look, someone figured out why. Nifty! So when I’m done tuning I can put it back.

@Eclsnowman do you know the current capacity of the Kinetica G2C? Is that what you mentioned having one of at Replacing Herculien controller board - what is the best choice in 2020 ? Do they have other boards with integrated drivers that you know of?

It uses the TMC 2209 drivers, so I assume current would be limited by those. I’m not using it currently on my Eustathios or HercuLien. It’s currently in my Delta printer. But it’s working really well there. But I am using an Aztec X5 Mini with socketed TMC 2209’s from Panucatt on my BoxR printer and current hasn’t been an issue there, and the XY gantry on that one has a bit of weight. I’m using it entirely in stealth shop with no skip steps.

I’m really liking the G2C board on the Delta, and having the paneldue certainly is nice. Although honestly I find I run it from my web browser way more than from the touch screen, so I think that that cost could be avoided if you didn’t need to run it at the machine. And Roy has an adapter for the G2C board that allows you to run a standard graphical LCD.

1 Like

1 Like

Well, current limit is basically always max(chipsetLimit, implementationThermalMax) so it’s unlikely to be more than 2.8A but I don’t know the thermal analysis that Panucatt has done for their implementation. So I’d rather not put a guess there that Panucatt isn’t standing behind. I tried to only put current limits into the table that I could find documentation of some sort that came from what I understood to be someone responsible for design… :slight_smile:

But overall, integrated was precisely because it’s usually better for overall current capacity at least if done right; the massive heatsinks on the high-current stepsticks feel to me like a hack.

I’ve added a firmware column to the table. Probably a bunch of these can run multiple firmwares and I should update the table.

The G2C has some nice vias and heat sinking pads so I think it should be able to push the current as far as is reasonable with those drivers anyway. I like socketed drivers for the ability to swap them out when the new hotness comes along. But I agree there really isn’t a substitute for the thermals you get with nice integrated stepper drivers on a board with good heat sinking capacity.

That’s one reason I’ve always appreciated Roy’s hardware designs, they’re built like a brick $#!+ house. I’ve overdriven the MOSFET for one of my heated beds at 24 volts with one of his boards for more than 5 years, with zero issues. I keep telling myself as soon as it fails I’m going to switch that particular printer over to an SSR with 120-volt bed. But it just refuses to die even though I’m running the bed at around 130% of its rated capacity.

1 Like

Good enough, “2.8A?” makes sense to me then. It seems unlikely that Roy did less work on thermal management than BTT, given their relative reputations! :wink:

The only difficulty with Roy is that sometimes he can go MIA for a little while from a support standpoint. Less so for me because I know a few more ways of getting a hold of him, and I worked with them on projects and testing a lot of his prototype boards for years. But I think being a small shop and having to do all the work himself (design, documentation, tech support, sales, etc) sometimes taxes his energy. Good thing is there’s a lot of resources out there and for the most part most of my questions end up being software related not hardware anyway.

1 Like

10 posts were merged into an existing topic: Cantilever printer design based on leftovers

BTT is coming out with a new version of SKR MINI, V2. Hardware UART support for the 2209 instead of bit-banging, four layer board with better thermal handling, protection from shorted thermistor, and more. Looks like still mini-usb instead of micro.

Unfortunately they are still mixing port pinout, which makes it hard for grbl-LPC. Only stepper channels X, Y and E0 would probably work.

Works fine for Marlin, though! When I glanced at grbl-LPC source it looked like changing some macros to functions and building them out would be all that would be required to add that functionality, but I didn’t need to do it so I didn’t go down that rabbit hole. :slight_smile:

Sure it would be possible to rewrite grbl-LPC, but it would be a lot of work and move it far away from the upstream branch. On the hardware side it would be rather simple to just use different pins and route them accordingly (if BTT was aware of the problem).

Noting that this is in the 3D Printing: Electronics category — is grbl-LPC normally used for 3D printers?