How to flash your Duet3 6HC & 6XD to klipper!

How to flash your Duet3 6HC & 6XD to klipper!


Thanks to some awesome work by an individual that goes by Monkeh on Discord, ATSAME70 support was officially merged with this commit. That’s pretty exciting, with all of the ATSAME70 boards being quite fast (300mhz processors) and more importantly, allowing both the Duet 3 6HC and 6XD boards to be converted over to klipper!

These boards are absolutely the pinnacle of incredibly durable, well designed boards that should live forever and ever, driving Nema 23 motors easily (6HD) or servo/closed loop steppers (6XD) without even more expensive hardware. I started my Stablebot adventure building off of a 6HC + 3HC, but shortly after started running machines on klipper firmware and honestly never looked back.

I’ve added the config with this pull request.

I’ve been running this stably for the last 6 months or so, so I’ll be sharing this config as well as how to flash it! This post assumes you know how to install klipper, moonraker and mainsail, and have your SBC connected to the duet via USB.

I recommend using the KIAUH tool - to do the above – it makes it very easy to get going!

  • You’ll need the following compiling settings:
    1. ATSAME70Q20B chip selected
    2. And you’re done!
      Screenshot of the correct configuration settings for the Duet 6hc
  • Go ahead and save these, and then use the make command to make the firmware.
  • From here, there are a few ways to flash your duet! – all are listed here:
    1. Use the command make flash FLASH_DEVICE=/dev/ttyACM0Successful Flash of Duet 3 6HC
    2. You can bamboozle your duet by renaming the klipper.bin file to the “correct” name for the 6hc/6xd, listed in the “firmware file naming” section and using the built-in updater to get klipper installed!
    3. Fallback procedure #2 as described on updating firmware link – use this if things aren’t playing nice
      1. Use erase jumper to erase the firmware
      2. Use the command make flash FLASH_DEVICE=/dev/TTYACM0
  • Worst case, you can use a laptop/windows computer with the same instructions detailed on duet’s website to flash the klipper.bin file!
  • With a successful flash, the duet should be showing up in the /dev/serial/ folder! Use the command: ls /dev/serial/by-id or ls /dev/serial/by-path to get an address to use in the [mcu] section.
    what /dev/serial/by-id and /dev/serial/by-path show

From there, with the config folder here, you should be good to go!

I understand that this is very much a barebones config, but you can find the other pins by using this diagram here, ever graciously posted publicly by Duet3d:

Duet 3 6HC v1.01 pinout screenshot

If there are those out there who need some help, you can stop by my discord for some help from my community, or if you’re a business who needs professional support converting your installs over (or anything else for your machines/business), reach out to me at with your specific needs!