Thank you for the suggestion, unfortunately this didn’t work for me.
I tried flashing firmware using all USB and USART ports, with and without the Disable SWD at startup (for GigaDevice stm32f103 clones)
selected, plus a few more variations.
After each flash, the name of the file on the card was correctly changed to .CUR, so it should have been correctly read and applied by the board, but Klipper was still unable to connect.
I did fully power off the printer and powered it back on after waiting a bit, just to be sure.
I also checked if the /dev/serial/by-id/
changed.
My printer board uses GD32F303 by GigaDevice, and I found some discussions regarding Ender 3 boards with the same MCU, where disabling SWD was necessary, so I tried all ports with this setting, but without any luck.
Here’s an example of the firmware creation process, just in case I’m missing something or doing something dumb…:
pi@speeder-pad:~$ cd ~/klipper
pi@speeder-pad:~/klipper$ make menuconfig
Loaded configuration '/home/pi/klipper/.config'
No changes to save (for '/home/pi/klipper/.config')
pi@speeder-pad:~/klipper$ make clean
pi@speeder-pad:~/klipper$ make
Creating symbolic link out/board
Building out/autoconf.h
Compiling out/src/sched.o
Compiling out/src/command.o
Compiling out/src/basecmd.o
Compiling out/src/debugcmds.o
Compiling out/src/initial_pins.o
Compiling out/src/gpiocmds.o
Compiling out/src/stepper.o
Compiling out/src/endstop.o
Compiling out/src/trsync.o
Compiling out/src/adccmds.o
Compiling out/src/spicmds.o
Compiling out/src/i2ccmds.o
Compiling out/src/pwmcmds.o
Compiling out/src/buttons.o
Compiling out/src/tmcuart.o
Compiling out/src/neopixel.o
Compiling out/src/pulse_counter.o
Compiling out/src/lcd_st7920.o
Compiling out/src/lcd_hd44780.o
Compiling out/src/spi_software.o
Compiling out/src/i2c_software.o
Compiling out/src/thermocouple.o
Compiling out/src/sensor_adxl345.o
Compiling out/src/sensor_lis2dw.o
Compiling out/src/sensor_mpu9250.o
Compiling out/src/sensor_icm20948.o
Compiling out/src/sensor_hx71x.o
Compiling out/src/sensor_ads1220.o
Compiling out/src/sensor_ldc1612.o
Compiling out/src/sensor_angle.o
Compiling out/src/sensor_bulk.o
Compiling out/src/stm32/watchdog.o
Compiling out/src/stm32/gpio.o
Compiling out/src/stm32/clockline.o
Compiling out/src/stm32/dfu_reboot.o
Compiling out/src/generic/crc16_ccitt.o
Compiling out/src/generic/armcm_boot.o
Compiling out/src/generic/armcm_irq.o
Compiling out/src/generic/armcm_reset.o
Compiling out/src/../lib/stm32f1/system_stm32f1xx.o
Compiling out/src/stm32/adc.o
Compiling out/src/stm32/stm32f1.o
Compiling out/src/generic/armcm_timer.o
Compiling out/src/stm32/i2c.o
Compiling out/src/stm32/spi.o
Compiling out/src/stm32/serial.o
Compiling out/src/generic/serial_irq.o
Compiling out/src/stm32/hard_pwm.o
Building out/compile_time_request.o
Version: v0.12.0-467-g68dbbc8d4
Preprocessing out/src/generic/armcm_link.ld
Linking out/klipper.elf
Creating hex file out/klipper.bin
pi@speeder-pad:~/klipper$ ./scripts/update_mks_robin.py out/klipper.bin out/Robin_nano35.bin
Once this is done, I copy the Robin_nano35.bin to microSD card, insert the card into the printer board, press reset button on the board, do restart / firmware restart on the Klipper host while staring at the LEDs, turn the printer off and back on.
I made one more observation - there are LEDs besides the USB/serial port, one I’m guessing is RX, the other should be TX.
Whenever I restart Klipper on Speeder Pad, I can see one of the LEDs blinking.
The other one never lights up.
If I remember correctly, both LEDs were blinking initially, before I attempted to flash the printer board.
Now, no matter which port I try to specify during firmware creation, the second LED never seems to light up.
I don’t have another printer board with LEDs by the serial port, but I’d assume that the board would try to transmit something on startup to announce itself, and maybe periodically.
Or does it only transmit when being queried?
Just in case, I have tried with different Klipper host device, but only with printer firmware set to use USART3 PB11/P10. This also didn’t work.
My current theory is that either the serial port failed since it never seems to be transmitting anything, or that maybe I have some unique board with different definitions of the serial ports.
Any other suggestions?