External TMC 2208 UART

  • Hi Guys,

    I have slowly been building up parts to build a custom printer. Which will have 1 Diamond nozzle with 3 colour mixing tool and a second e3d V6 single colour for those times you don't need prettiness. I would love a DUEX expansion board, but just can't afford it at the moment, but will get there.

    I want to keep the diamond tool separate. So have purchased 3 x external driver boards as per the wiki. I'll be running TMC2208 drivers which have the capability of being controlled and their setting configured via a UART interface on each driver. I have spent a few hours browsing through the forums and wiki's (and A lot of googling) and don't find any information on whether or not it's possible to have the duet 2 wifi v1.04 manage these settings, or if it's even possible to connect up the UART interfaces.

    Is it possible? If so, is there a wiring guide somewhere or an example of how to go about this?

    If not, I'll swop them out with the A4988's on my FrankenPrint.

    Any and all help is appreciated 🙂



  • i think dc mentioned that the configuration g codes like M350 are ignored for the external drivers.
    also you normally need uart or hardware interrupt capable pins.
    My guess would beth that it could be done with a lot of modification in the firmware, but you would probably have to do a lot of the work yourself.

  • @veti thanks for the reply.

    Have been looking around a bit more and came across this thread where DC42 said that the paneldue connector is essentially UART0.


    But, looks like it would need firmware changes to accomplish and I am no where near skilled enough to do that.

    I'll play around though and see if there is anything I can accomplish with limited skills one day 🙂

  • @shauncro Are both the Diamond and the V6 both going to be fitted at the same time, or are you planning on swapping between them? If it's the latter, then you only need 2 extra drivers. Then you have 2 config.g files that you swap between.

  • that give some more hints.
    the mastro has an expansion port for 2 additional tmc2224 drivers. the fact that there are 2 uart ports indicates the need for uart.
    however the tmc2208 need one uart per driver.
    the new tmc2209 can use up to 4 driver per uart because they implement hardware addressing.

    marlin has an implementation for the LPC1768 chip that implements software serial, which allows to use non uart pins for the serial communication. but porting something like that would be far beyond any cost benefit.

    i could think of an ugly workaround. you use an external source for the configuration.
    see https://learn.watterott.com/silentstepstick/configurator/
    and configure the stepper with a pc, but you would need to do the reconfiguration every time the duet starts.

  • @deckingman yes, both will fitted, it's more about being lazy and not wanting to disconnect everything every time I do a tool change ðŸĪĶ So was hoping to do a quick release system for the hotends to change between the diamond and the V6, but still have the extruders and cables connected.

    I have been been toying with the idea of using the V6 on a secondary independent X carriage for doing supports with cheaper filament. But this will take me a while to figure out.

  • @veti I thought of that, but if a power failure were to occur, the drivers would lose their config and print resume would be an issue.

    I came across this last night while trying to find info on ways to accomplish this.


    But, it would probably cost more than buying 3 TMC2130 drivers.

  • Maybe this is of interest, guy using an external MCU to configure his TMC2208 at power on, leaving the original controller to do the step/dir stuff. I guess you could go one step further and craft a specially formatted M117 message that the external MCU could pick up and configure accordingly to make it a litt less of a pain to change the config.


  • Thanks @bearer , will definitely check it out.

  • Come to think of it, I did upload a thing that parses the json message for the M300 beeps, should be relatively simple to adapt to parse the json sent by M117 and pick out the stuff you want and send it on with software serial from the esp8266 as well.


    also has another link to a similar effort.

  • You may want to look at the SMuFF which uses the paneldue port and an esp to control the filament changer from another printer board.

  • @oliof Ironically, one of my printers is an i3 mini 😉

  • administrators

    The standard firmware supports only one type of smart stepper driver per board. For the Duet WiFi/Ethernet this is the TMC2660. For the Duet Maestro it is the TMC2208/2224 which are the same chip in different packages. So on the Meastro you can add two UART-controlled TMC2224 or TMC2208 drivers. On the WiFi/Ethernet you can add TMC2660 drivers. You can also add "dumb" step/dir/enable drivers. This could include TMC2208 drivers but they wouldn't be UART-controlled.

  • @dc42 thank you very much for the reply DC.

    Looking at the pin header of the Duet 2, I only see 2 x 3.3v power supplies. (On the 50 pin connector) Can I wire more than one board to the pin, or is it advisable to rather maker use of the two available on the 50 pin interface and wire the 3rd to the LCD-CON?

  • administrators

    Yes you can use a single 3.3V pin to power multiple devices.

  • @dc42 Thanks DC, will post updates in case anyone is ever interested in doing the same.

Log in to reply