Basic Information:
Printer Model: Neptune 4 Pro with Opennept4une
MCU / Printerboard:
klippy.log (3.0 MB)
Host / SBC
klippy.log
Hi All. I’m stuck, and admit I’m not the best at this. I’m getting the following error and for the life of me I can’t update the MCU.
”Klipper warnings found.
- MCU ‘mcu’ has deprecated code (it is missing feature ‘STEPPER_STEP_BOTH_EDGE’). Recompiling and flashing is recommended (MCU version ‘v0.12.0-192-gb7f7b8a3’, host version ‘v0.13.0-562-g7a4472649-dirty’).”
I’ve recompiled in putty with the following settings:
-
Micro-controller Architecture: STMicroelectronics STM32
-
Processor model: STM32F401
-
Bootloader offset: 64KiB bootloader
-
Clock Reference: 8 MHz crystal
-
Communication interface**: USB on PA11/PA12**
-
I can’t get the printer to read a USB drive to update. It won’t auto update with the USB drive in on boot, and it won’t read the USB if I go to Settings>About Machine. I also noticed that I can’t get the
ls /dev/serial/by-id/*command to work, but lsusb does show the USB drive. -
I’m trying to follow this process, but can’t get past step 5, even if I just try to skip it and download the Firmware.bin using WinSCP
-
Update Klipper: Log into your host via SSH (using a program like Putty or an in-browser terminal in Mainsail/Fluidd) and navigate to the Klipper directory:
bash
cd ~/klipper/ git pullThis ensures your local Klipper repository is up-to-date.
-
Configure Firmware: Run the menu configuration tool to select the correct settings for your specific MCU board (microcontroller, crystal frequency, bootloader offset, communication interface, etc.). You may need to consult the board manufacturer’s documentation or the Klipper documentation for the exact settings:
bash
make menuconfig -
Compile Firmware: Exit the menu (save the configuration when prompted) and compile the firmware file (
klipper.bin):bash
makeThis creates the firmware file in the
~/klipper/out/directory. -
Stop Klipper Service: Stop the Klipper host software to prevent communication issues during flashing:
bash
sudo service klipper stop -
Flash the MCU: The method varies by board.
-
Using
make flash(for boards with a compatible bootloader): Identify your device’s serial port name usingls /dev/serial/by-id/*and use themake flashcommand:bash
make flash FLASH_DEVICE=/dev/serial/by-id/YOUR_DEVICE_ID(Replace
YOUR_DEVICE_IDwith the actual ID from thelscommand output). -
Manual SD Card flash (common for many 32-bit boards): Copy the generated
klipper.binfile from the~/klipper/out/folder to a formatted SD card (sometimes it needs to be renamed, e.g., tofirmware.binorRobin_nano.bin, check your board’s documentation). Insert the SD card into the powered-off printer and turn it on. The board should flash automatically. -
Using a helper script: For some boards, you can use the
flash-sdcard.shscript to automate the process via SSH without physically removing the SD card.bash
./scripts/flash-sdcard.sh /dev/ttyACM0 YOUR_BOARD_NAME
-
-
Start Klipper Service: Once the flashing is complete, restart the Klipper service:
bash
sudo service klipper start -
Verify: Check the status in your web interface (Mainsail/Fluidd) to confirm that the MCU and host software versions match and are connected. The terminal should show a successful connection and a status report.
