- This motherboard comes with bootloader which allows firmware update through SD card. We recommend using SD card to update firmware instead of DFU. If you have ever used DFU to upload firmware, you can use the instructions here to restore the bootloader of this motherboard. And pay attention to distinguish whether your motherboard MCU is
STM32F446
orSTM32F429
.
Ocotpus V1.0/V1.1 pinout(Thanks Thomas White for the pinout of Octopus)
-
STM32F446
Precompiled firmware(The source code version used is Commits on Jun 28, 2021)- firmware-F446-USB.bin Use USB to communicate with raspberry pi. Connect the type-A USB of raspberry pi with the type-C of motherboard directly to communicate normally.
- firmware-F446-USART2.bin Use USART2 to communicate with raspberry pi. Connect the UART-TX of raspberry pi with the USART-RX2 of motherboard and connect the UART-RX of raspberry pi with the USART-TX2 of motherboard directly to communicate normally.
-
STM32F429
Precompiled firmware(The source code version used is Commits on Oct 17, 2021)- firmware-F429-USB.bin Use USB to communicate with raspberry pi. Connect the type-A USB of raspberry pi with the type-C of motherboard directly to communicate normally.
- firmware-F429-USART2.bin Use USART2 to communicate with raspberry pi. Connect the UART-TX of raspberry pi with the USART-RX2 of motherboard and connect the UART-RX of raspberry pi with the USART-TX2 of motherboard directly to communicate normally.
-
Build your own firmware
NOTE: Pay attention to distinguish the type of MCU on your motherboard,STM32F446 + 12 MHz crystal + 32KiB bootloader
,STM32F429 + 8 MHz crystal + 32KiB bootloader
,STM32F407 + 8 MHz crystal + 32KiB bootloader
orSTM32FH723 + 25 MHz crystal + 128KiB bootloader
-
Refer to klipper's official installation to download klipper source code to raspberry pi
-
Building the micro-controller
with the configuration shown below.- [*] Enable extra low-level configuration options
- Micro-controller Architecture =
STMicroelectronics STM32
- Processor model =
STM32F446
,STM32F429
,STM32F407
orSTM32H723
(Depends on the MCU of your motherboard) - Bootloader offset =
32KiB bootloader
(forSTM32F446
,STM32F429
&STM32F407
) or128KiB bootloader
(forSTM32H723
) - Clock Reference =
12 MHz crystal
(forSTM32F446
),8 MHz crystal
(forSTM32F429
&STM32F407
) or25 MHz crystal
(forSTM32H723
) - IF USE USB
- Communication interface =
USB (on PA11/PA12)
- Communication interface =
- ElSE IF USE USART2
- Communication interface =
Serial (on USART2 PD6/PD5)
- Communication interface =
- ELSE
- Communication interface =
The port you want
- Communication interface =
-
Once the configuration is selected, press
q
to exit, and "Yes" when asked to save the configuration. -
Run the command
make
-
The
klipper.bin
file will be generated in the folderhome/pi/kliiper/out
when themake
command completed. And you can use the windows computer under the same LAN as raspberry pi to copyklipper.bin
from raspberry pi to the computer withpscp
command in the CMD terminal. such aspscp -C pi@192.168.0.101:/home/pi/klipper/out/klipper.bin c:\klipper.bin
(The terminal may prompt thatThe server's host key is not cached
and askStore key in cache?((y/n)
, Please typey
to store. And then it will ask for a password, please type the default passwordraspberry
for raspberry pi)
-
- Requires a USB connection
- Requires the installation of an extra jumper on the Octopus
- Power off Octopus
- Install a jumper between BOOT0 and 3.3V
- Connect Octopus & Pi via USB-C
- Power on Octopus
- from your ssh session, run
lsusb
. and find the ID of the dfu device. - run
make flash FLASH_DEVICE=1234:5678
replace 1234:5678 with the ID from the previous step - power off the Octopus
- remove the jumper from BOOT0 and 3.3V
- Power on the Octopus
- You can confirm that the flash was successful, by running
ls /dev/serial/by-id
. if the flash was successful, this should now show a klipper device, similar to:
(note: this test is not appicable if the firmware was compiled for UART, rather than USB)
- Works regardless of USB vs UART
- Requires a microSD card
-
You can use the method in Build Firmware Image 3.5 or use a tool such as
cyberduck
orwinscp
to copy theklipper.bin
file from your pi to your computer. -
Renamed the
firmware-F4xx-USB.bin
,firmware-F4xx-USART2.bin
or theklipper.bin
(in folderhome/pi/kliiper/out
build by yourself) tofirmware.bin
Important: If the file is not renamed, the bootloader will not be updated properly. -
Copy the
firmware.bin
to the root directory of SD card (make sure SD card is in FAT32 format) -
power off the Octopus
-
insert the microSD card
-
power on the Octopus
-
after a few seconds, the Octopus should be flashed
-
you can confirm that the flash was successful, by running
ls /dev/serial/by-id
. if the flash was successful, this should now show a klipper device, similar to:
(note: this test is not appicable if the firmware was compiled for UART, rather than USB)
- Refer to klipper's official installation to
Configuring OctoPrint to use Klipper
- Refer to klipper's official installation to
Configuring Klipper
. And use the configuration file Octopus klipper.cfg as the underlyingprinter.cfg
, which includes all the correct pinout for Octopus - Refer to klipper's official Config_Reference to configure the features you want.
- If you use USB to communicate with raspberry pi, run the
ls /dev/serial/by-id/*
command in raspberry pi to get the correct ID number of the motherboard, and set the correct ID number inprinter.cfg
. And wiring reference here[mcu] serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_0E002B00135053424E363620-if00
- If you use USART2 to communicate with raspberry pi, you need to modify the following files by inserting the SD card into the computer or by SSH command. And wiring reference Octopus V1.0/V1.1 here or Octopus Pro here
LCD12864 (RepRapDiscount 128x64 Full Graphic Smart Controller): Set the display
in printer.cfg
to the following parameters
[display]
lcd_type: st7920
cs_pin: EXP1_4
sclk_pin: EXP1_5
sid_pin: EXP1_3
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
kill_pin: ^!EXP2_8
[output_pin beeper]
pin: EXP1_1
LCD2004 (RepRapDiscount 2004 Smart Controller): Set the display
in printer.cfg
to the following parameters
[display]
lcd_type: hd44780
rs_pin: EXP1_4
e_pin: EXP1_3
d4_pin: EXP1_5
d5_pin: EXP1_6
d6_pin: EXP1_7
d7_pin: EXP1_8
encoder_pins: ^EXP2_3, ^EXP2_5
click_pin: ^!EXP1_2
kill_pin: ^!EXP2_8
[output_pin beeper]
pin: EXP1_1
Mini12864 (Mini 12864Panel with neopixel backlight leds): Set the display
in printer.cfg
to the following parameters
[display]
lcd_type: uc1701
cs_pin: EXP1_3
a0_pin: EXP1_4
rst_pin: EXP1_5
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
## Some micro-controller boards may require an spi bus to be specified:
#spi_bus: spi
## Alternatively, some micro-controller boards may work with software spi:
contrast: 63
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
spi_software_sclk_pin: PA5
[output_pin beeper]
pin: EXP1_1
[neopixel btt_mini12864]
pin: EXP1_6
chain_count: 3
color_order: RGB
initial_RED: 0.4
initial_GREEN: 0.4
initial_BLUE: 0.4
BigTreeTech TFT TouchScreen emulated 12864 mode: Set the display
in printer.cfg
to the following parameters
[display]
lcd_type: emulated_st7920
spi_software_miso_pin: PA6
spi_software_mosi_pin: EXP1_3
spi_software_sclk_pin: EXP1_5
en_pin: EXP1_4
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
[output_pin beeper]
pin: EXP1_1