CanBoot: Flash BTT SKR 1.3 / 1.4 / 1.4 Turbo

The CanBoot bootloader developed by @Arksine offers a convenient way to flash the board with Klipper. It offers following features:

  • No SD Card needed to flash
  • Supports Klipper’s make flash command
  • Support going into “flashing mode”, aka bootloader mode, by double pressing the reset button or optionally defining any GPIO pin to enter bootloader mode

Following is a short how-to flash this bootloader to a BTT SKR 1.3 / 1.4 / 1.4 Turbo board

Things needed:

Procedure

Build CanBoot

  1. Execute following commands on your SBC

    git clone https://github.com/Arksine/CanBoot
    cd CanBoot
    make menuconfig
    
  2. Choose following build options. Mind the Processor Model: lpc1768 for SKR 1.3 / 1.4, lpc1769 for SKR 1.4 Turbo

  3. Execute the make command

  4. Get the resulting bin file ./out/canboot.bin and copy it to a Windows machine

Flashing procedure for SKR 1.4

  1. Power the board via USB or 12V / 24V

  2. Connect the USB TTL adapter to a Windows PC (potentially you need to install the FTDI VCP Drivers)

  3. Contact the USB TTL adapter as shown in the picture (cyan arrows)

  4. Contact the SMD resistor (R28) to GND of the board (dark blue arrows), e.g. to the middle pin of an endstop (here the female to male jumper cable comes in handy). This will contact the ISP mode pin P2.10

  5. Reset the board while holding the contact (Nr. 4)

  6. Shortly after releasing the Reset button also remove the ISP connection (Nr. 4)

  7. Start Flashmagic

    • Chose the canboot.bin file
    • Set the correct COM port for your USB to TTL adapter (look it up in the windows device manager)
    • Set the correct chip type
    • Set Erase to Entire device
    • Press start
  8. Wait until finished, then reset the board

Flashing procedure for SKR 1.3

For SKR 1.3 simply connect AUX-1 in Step 2 and use (read short) the BOOT Jumper pins to achieve the same as in Step 3 to 5 of the SKR 1.4 procedure:

Verify Board is in Bootloader mode

  1. Execute sudo dmesg
  2. Note down the tty device

Flashing Klipper

  1. Build Klipper regularly as indicated for your board
  2. Flash Klipper with make FLASH FLASH_DEVICE=/dev/<device> (replace the <device> as noted down above)
3 Likes

Nice writeup! The only thing I would add is that you should use make FLASH FLASH_DEVICE=/dev/<device> rather than call flash_can.py directly when attempting to flash over USB. The flash_usb.py utility can request that Klipper enter the bootloader and it will detect CanBoot.

1 Like

Just installed this on a TT SKR 1.5 Turbo (1.4 clone)… the resistor position is the same.
Working fine, can also use kiauh to perform the build and flash this way.