# Duet3 mini 5+ build

**URL:** <https://klipper.discourse.group/t/duet3-mini-5-build/25730>\
**Category:** General Discussion\
**Created:** [March 11, 2026, 11:10pm UTC](https://klipper.discourse.group/t/duet3-mini-5-build/25730 "2026-03-11T23:10:19Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mr.What](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/mr.what/32/21985_2.png) [@Mr.What](https://klipper.discourse.group/u/Mr.What)\
**Post date:** [March 11, 2026, 11:10pm UTC](https://klipper.discourse.group/t/duet3-mini-5-build/25730/1 "2026-03-11T23:10:19Z")

</div>

### Basic Information:

Printer Model:  
 MCU / Printerboard:  
 Host / SBC  
 klippy.log

_Fill out above information and_ _ **in all cases attach your** _ **`klippy.log` _file_** (use zip to compress it, if too big). _Pasting your_ `printer.cfg` _is **not** needed_  
_ **Be sure to check our “Knowledge Base” Category first. Most relevant items, e.g. error messages, are covered there** _

### Describe your issue:

Unable to build klipper.bin for Duet3 mini 5+. I wonder if menuconfig does not cover this case. I’d be interested in suggestions for manual edits t0 .config. I’m using:

Micro-controller Architecture (SAMC21/SAMD21/SAMD51/SAME5x) —\>  
Processor model (SAME54P20) —\>  
Bootloader offset (16KiB bootloader) —\>Linking out/klipper.elf  
arm-none-eabi-gcc out/src/sched.o out/src/command.o out/src/basecmd.o out/src/debugcmds.o out/src/initial\_pins.o out/src/gpiocmds.o out/src/stepper.o out/src/endstop.o out/src/trsync.o out/src/adccmds.o out/src/spicmds.o out/src/i2ccmds.o out/src/buttons.o out/src/tmcuart.o out/src/neopixel.o out/src/pulse\_counter.o out/src/lcd\_st7920.o out/src/lcd\_hd44780.o out/src/spi\_software.o out/src/i2c\_software.o out/src/thermocouple.o out/src/sensor\_adxl345.o out/src/sensor\_lis2dw.o out/src/sensor\_bmi160.o out/src/sensor\_mpu9250.o out/src/sensor\_icm20948.o out/src/sensor\_hx71x.o out/src/sensor\_ads1220.o out/src/sensor\_ldc1612.o out/src/sensor\_angle.o out/src/sensor\_bulk.o out/src/sos\_filter.o out/src/trigger\_analog.o out/src/atsamd/main.o out/src/atsamd/gpio.o out/src/generic/crc16\_ccitt.o out/src/generic/armcm\_boot.o out/src/generic/armcm\_irq.o out/src/generic/armcm\_reset.o out/src/atsamd/usbserial.o out/src/atsamd/chipid.o out/src/generic/usb\_cdc.o out/src/atsamd/adc.o out/src/atsamd/spi.o out/src/atsamd/i2c.o out/src/atsamd/sercom.o out/src/atsamd/samd51\_watchdog.o out/src/atsamd/samd51\_clock.o out/src/generic/armcm\_timer.o out/compile\_time\_request.o -iquote out/ -iquote src -iquote out/board-generic/ -std=gnu11 -O2 -MD -Wall -Wold-style-definition -Wtype-limits -ffunction-sections -fdata-sections -fno-delete-null-pointer-checks -flto=auto -fwhole-program -fno-use-linker-plugin -ggdb3 -mcpu=cortex-m4 -Ilib/same54/include -D\_\_SAME54P20A\_\_ -mthumb -Ilib/cmsis-core -Ilib/fast-hash -Wl,–gc-sections -nostdlib -lgcc -lc\_nano -T out/src/generic/armcm\_link.ld -o out/klipper.elf

Is cortex-m4 correct? is  
Clock Reference (25Mhz crystal) —\>  
Processor speed (120 MHz (standard)) —\>  
Communication interface (USB) —\>

I get a small, 37K klipper.bin that I can’t seem to communicate with. My arm-none-eabi-gcc uses -mcpu=cortex-m4 -Ilib/same54/include, are these the correct libraries : -lc\_nano -T out/src/generic/armcm\_link.ld

For completeness, .config is:

CONFIG\_LOW\_LEVEL\_OPTIONS=y  
CONFIG\_MACH\_ATSAMD=y  
CONFIG\_BOARD\_DIRECTORY=“atsamd”  
CONFIG\_MCU=“same54p20a”  
CONFIG\_CLOCK\_FREQ=120000000  
CONFIG\_USBSERIAL=y  
CONFIG\_FLASH\_SIZE=0x100000  
CONFIG\_FLASH\_BOOT\_ADDRESS=0x0  
CONFIG\_RAM\_START=0x20000000  
CONFIG\_RAM\_SIZE=0x40000  
CONFIG\_STACK\_SIZE=512  
CONFIG\_FLASH\_APPLICATION\_ADDRESS=0x4000  
CONFIG\_ATSAMD\_SELECT=y  
CONFIG\_HAVE\_SERCOM=y  
CONFIG\_MACH\_SAME54P20=y  
CONFIG\_MACH\_SAMX5=y  
CONFIG\_MACH\_SAME54=y  
CONFIG\_HAVE\_SAMD\_CANBUS=y  
CONFIG\_HAVE\_SAMD\_USB=y  
CONFIG\_SAMD\_FLASH\_START\_4000=y  
CONFIG\_CLOCK\_REF\_X25M=y  
CONFIG\_SAMD51\_FREQ\_120=y  
CONFIG\_ATSAMD\_USB=y  
CONFIG\_USB=y  
CONFIG\_USB\_VENDOR\_ID=0x1d50  
CONFIG\_USB\_DEVICE\_ID=0x614e  
CONFIG\_USB\_SERIAL\_NUMBER\_CHIPID=y  
CONFIG\_USB\_SERIAL\_NUMBER=“12345”

CONFIG\_WANT\_ADC=y  
CONFIG\_WANT\_SPI=y  
CONFIG\_WANT\_SOFTWARE\_SPI=y  
CONFIG\_WANT\_I2C=y  
CONFIG\_WANT\_SOFTWARE\_I2C=y  
CONFIG\_WANT\_BUTTONS=y  
CONFIG\_WANT\_TMCUART=y  
CONFIG\_WANT\_NEOPIXEL=y  
CONFIG\_WANT\_PULSE\_COUNTER=y  
CONFIG\_WANT\_ST7920=y  
CONFIG\_WANT\_HD44780=y  
CONFIG\_WANT\_ADXL345=y  
CONFIG\_WANT\_LIS2DW=y  
CONFIG\_WANT\_BMI160=y  
CONFIG\_WANT\_MPU9250=y  
CONFIG\_WANT\_ICM20948=y  
CONFIG\_WANT\_THERMOCOUPLE=y  
CONFIG\_WANT\_HX71X=y  
CONFIG\_WANT\_ADS1220=y  
CONFIG\_WANT\_LDC1612=y  
CONFIG\_WANT\_SENSOR\_ANGLE=y  
CONFIG\_NEED\_SENSOR\_BULK=y  
CONFIG\_WANT\_TRIGGER\_ANALOG=y  
CONFIG\_NEED\_SOS\_FILTER=y  
CONFIG\_CANBUS\_FREQUENCY=1000000  
CONFIG\_INLINE\_STEPPER\_HACK=y  
CONFIG\_HAVE\_STEPPER\_OPTIMIZED\_BOTH\_EDGE=y  
CONFIG\_WANT\_STEPPER\_OPTIMIZED\_BOTH\_EDGE=y  
CONFIG\_INITIAL\_PINS=“”  
CONFIG\_HAVE\_GPIO=y  
CONFIG\_HAVE\_GPIO\_ADC=y  
CONFIG\_HAVE\_GPIO\_SPI=y  
CONFIG\_HAVE\_GPIO\_I2C=y  
CONFIG\_HAVE\_STRICT\_TIMING=y  
CONFIG\_HAVE\_CHIPID=y  
CONFIG\_HAVE\_BOOTLOADER\_REQUEST=y

Sorry for the long post. Any suggestions are much appreciated. I have a BTT SKR Mini E3 V2.0 in the mail. I can try this if the Duet3mini is too bleeding edge. If I find a solution, I’ll try to help get it merged in.

Thanks,

---

<div class="post-metadata">

**Author:** ![ReXT3D](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/rext3d/32/200_2.png) [@ReXT3D](https://klipper.discourse.group/u/ReXT3D)\
**Post date:** [March 12, 2026, 1:27pm UTC](https://klipper.discourse.group/t/duet3-mini-5-build/25730/2 "2026-03-12T13:27:54Z")

</div>

Welcome.

Please include your `klippy.log` as requested by Discourse at the top of your post. I suspect that your issue is unrelated to the firmware image, but without the log it’s impossible to tell. You are way too deep “into the weeds” looking at manual editing of the generated config files and inspecting compiler flags.

I am one of the first people who have been using Duet3 Mini 5+ since before it was implemented into mainline Klipper. It is a great MCU board and despite a few configuration quirks stemming from its architecture it far surpasses most other MCU boards in terms of hardware quality. I have two printers using these that have been rock solid, one using a vanilla Mini and the second one, a Voron 2.4, that uses a fully loaded Mini with 7 stepper drivers and RTD daughter card. Kevin did a superb job maintaining the implementation over the years. Even the USB to CAN bridge mode works if you are interested in using it.

Firmware configuration is very straight forward and exactly as described in the sample config file. You appear to have your options set correctly, although your pasted text seems to intersperse several sources. This is what your menuconfig should look like:

 ![image](https://global.discourse-cdn.com/free1/uploads/klipper/original/3X/8/1/8144e09680a490f850f8b0b9c25bde04ae6598a7.png)

Note that there is no need to enable the extra low configuration option unless you need something specific, like changing the default clock speed, etc. Leave it unselected.

Have you manually edited the .config file at all or is it untouched? It is hard to ascertain since you inserted it into your message text without a block code, but some parts of it seem suspicious.

The final `klipper.bin` firmware image compiled on Trixie is 37848 bytes in size. I am attaching it here if you wanted to try it for troubleshooting. It’s exactly what’s running on the Mini in my Voron.

[klipper.zip](https://klipper.discourse.group/uploads/short-url/kUbg2TSGVXgJXPyOFjeZBjyGs0S.zip) (26.2 KB)

---

<div class="post-metadata">

**Author:** ![Mr.What](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/mr.what/32/21985_2.png) [@Mr.What](https://klipper.discourse.group/u/Mr.What)\
**Post date:** [March 12, 2026, 4:24pm UTC](https://klipper.discourse.group/t/duet3-mini-5-build/25730/3 "2026-03-12T16:24:50Z")

</div>

I didn’t think I could run klippy yet, since I do not yet have an MCU board.

I got a little 37K klipper.bin. Does that sound about correct?

I am developing a Delta variant, and have never used klipper. It seemed like the best choice to develop new kinematics and new auto-calibration procedures.

I tried the help of AI, but it is halucinating a lot.

I re-built with your menu settings, and got a klipper.bin exactly the same size as yours. It does differ, but the same size.

I guess my next step is to flash kipper.bin. How do I do this? I held down the button next to the USB-C port, plugged in, waited. I don’t see anything on lsusb. I hate to bother with these generalities, so, is there a place you recomment to find basic Duet3 documents, like, how to flash the board? I can’t seem to find it in the sources perplexity notes. Something about a double press before/after unplugging (no power). I have yet to see an LED on this board. Perplexity claims a yellow one should flash when in mount as storage mode.

---

<div class="post-metadata">

**Author:** ![ReXT3D](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/rext3d/32/200_2.png) [@ReXT3D](https://klipper.discourse.group/u/ReXT3D)\
**Post date:** [March 12, 2026, 5:02pm UTC](https://klipper.discourse.group/t/duet3-mini-5-build/25730/4 "2026-03-12T17:02:19Z")

</div>

Try to avoid potentially suspect sources of information. At least you are here at the right place to ask the questions, which is a big bonus. Information for Duet hardware is extensive, but it mostly revolves around RRF.

When you flash the Mini with Klipper for the first time, you need to put the board into bootloader mode by double-tapping the reset button. I do not recall exactly what the on-board LEDs will do in bootloader mode, but one of them will start slow flashing in red. BTW - there are multiple LEDs and you should see them illuminate when the board is powered-up. I would also recommend that you power it up with “proper” external power and not just via USB, even though for flashing the firmware the USB should be sufficient.

So, in sequence:

1. On the host system (RPI), compile the firmware with `make menuconfig` followed by `make`
2. Make sure that the host (RPI) is connected to the Duet with USB
3. On the Duet double press the reset button, confirm one of the LEDs starts slow flashing red
4. On the host system (RPI), initiate the flash command with `make flash FLASH_DEVICE=/dev/ttyACM0`

If you have not done this before, the make will build the flasher tools and then execute the flash, ultimately resulting is output similar to this:

```plaintext
Write 37848 bytes to flash (74 pages)
[==============================] 100% (74/74 pages)
Done in 0.524 seconds
Verify 37848 bytes of flash
[==============================] 100% (74/74 pages)
Verify successful
Done in 0.398 seconds
Set boot flash true

```

Once Klipper is on the Duet, it will have the ability to put the board into bootloader mode automatically for flashing without the need to double-press the reset button.

I am assuming you already studied the official installation and commissioning instructions, but if not then I urge you to read them here: [Klipper Installation](https://www.klipper3d.org/Installation.html)

---

<div class="post-metadata">

**Author:** ![Mr.What](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/mr.what/32/21985_2.png) [@Mr.What](https://klipper.discourse.group/u/Mr.What)\
**Post date:** [March 12, 2026, 6:50pm UTC](https://klipper.discourse.group/t/duet3-mini-5-build/25730/5 "2026-03-12T18:50:49Z")

</div>

No LEDs on my Duet3. Two cables tried on two computers, and some chargers. I have current monitors on the chargers, and they both read 0A. One of them goes blank when not in use, and it went blank when the Duet3 was plugged in. It is a FYSTEK clone. Any other recommended tests before I declare it dead? Can I write something to an SD card which should get it to do something?

Thanks again, for all the help!

---

<div class="post-metadata">

**Author:** ![ReXT3D](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/rext3d/32/200_2.png) [@ReXT3D](https://klipper.discourse.group/u/ReXT3D)\
**Post date:** [March 12, 2026, 8:19pm UTC](https://klipper.discourse.group/t/duet3-mini-5-build/25730/6 "2026-03-12T20:19:08Z")

</div>

To the best of my knowledge the Fysetc clone would still have the LEDs, just like the v0.5 revision of the original. This is a photo of the Fysetc clone:

 ![image](https://global.discourse-cdn.com/free1/uploads/klipper/original/3X/3/8/38a3d526ab42e244d50377d9bb91bd466d16626a.jpeg)

The biggest difference and the cost delta from original is the use of inferior quality PCB and components.

---

<div class="post-metadata">

**Author:** ![Mr.What](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/mr.what/32/21985_2.png) [@Mr.What](https://klipper.discourse.group/u/Mr.What)\
**Post date:** [March 20, 2026, 6:45pm UTC](https://klipper.discourse.group/t/duet3-mini-5-build/25730/7 "2026-03-20T18:45:01Z")

</div>

It may have been that the Duet3 mini needed the external stepper/heater power. It couldn’t communicate from power over the USB cable alone? Unfortunately, I gave up and started working on a SKR mini E3 v2.0 board.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/klipper/original/1X/64419bf2aac6639e6ef5cef200dcd456b0a01ac3.png) [@system](https://klipper.discourse.group/u/system)\
**Post date:** [May 19, 2026, 6:45pm UTC](https://klipper.discourse.group/t/duet3-mini-5-build/25730/8 "2026-05-19T18:45:18Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
