Issue with Klipper install on RPI Zero 2 and SKR Pico

Basic Information:

Printer Model: Custom: Modified Simplicity
MCU / Printerboard: RPI Zero 2 / SKR Pico (via UART)
klippy.log

Describe your issue: MCU Unable to connect. Code: -32601 related (I think).

I installed klipper as instructed via the klipper installation documentation and am able to see fluidd. I’ve gone in between getting error messages just saying “unknown” and error messages saying “Klippy not connected” and I’m not sure what the issue is. I’ve previously had this SKR Pico flashed and connected to a BPI M2 zero and had it working however recently bought a RPI and wanted to swap them over. After installing klipper on the pi I flashed the Pico with the settings recommended by BTT to no avail. I’ve formatted and reinstalled klipper on the pi several times, each time reflashing the pico with a new .uf2 file. Also I’m not sure if it’s important but I’ve had the pi and mcu powered via usb whilst attempting to configure them.

also, I get this when using ls -l /dev/serial*
lrwxrwxrwx 1 root root 7 Sep 29 20:17 /dev/serial0 → ttyAMA0
lrwxrwxrwx 1 root root 5 Sep 29 20:17 /dev/serial1 → ttyS0

moonraker.log (250.3 KB)
klippy.log (115.5 KB)

I you connect the SKR Pico via UART (you wrote : MCU / Printerboard: RPI Zero 2 / SKR Pico (via UART)), you should have :

[mcu] ; SKR Pico

serial: /dev/ttyAMA0
restart_method: command

not :

[mcu]
serial = /dev/ttyS0
restart_method = command

AMA0 = UART
ttyS0 = USB

(or I didn’t understand the question, and just ignore the answer)

I’ve tried with both and at some point came across a post (can’t remember where) saying to just put both in and let it decide so I did that to no avail either, seems like the ttys0 was the one uncommented when I pulled the log. It’s good to finally know what each is though, thanks

Putting both doesn’t make any sense.
Serial ports do have a unique name !

Also : verify Rx/Tx are correctly crossed.

Tx and Rx are crossed according to pi and skr pinouts

Changed to ttyAMA0, different results but still no joy
moonraker.log (2).txt (113.6 KB)
klippy.log (1).txt (167.9 KB)

  • Serial0 ttyAMA0 is the UART on the 40pin GPIO
  • Serial1 ttyS0 is a Serial over USB

Klipper has nothing to do with them, it’s a Linux thing. Klipper just communicates over one or the other.

Ok. The SKR Pico does not answer.

Please note that I don’t have a Pi 2. Only Pi’s 3 and 4. And zeros.

In any case, the serial port has to be enabled in raspi-config, and the boot TTY terminal deactivated IIRC. In raspi-config, Interface Options → Serial, anser No to “Would you like a login shell to be accessible over serial ?”, On the Pi 3, it seems to me Bluetooth also has to be deactivated (not using it, I always disable it (config.txt or raspi-config). There are some differences between Pi 2 and Pi 3 in the way they manage the serial port (TTL level “RS232”).

In config.txt, somewhere you should have :

enable_uart=1
dtoverlay=disable-bt

If everything is fine there, but still on the Pi :

  • wiring mistake (wrong pins on the GPIO) ; very common with experimented tinkerers because it is the last thing they will think of…
  • cooked GPIO pin

You could see if something happens on the Pi Tx, using a LED and a resistor. Resistor is mandatory, whatever some folks say… Or a scope if you have one. Then the Rx pin on the SKR side : is wire conducting electricity ? Yes it is laughable, but when crimping wires, we sometime crimp the insulation instead of the strands, after pushing the wire a bit to far. Ask me how I know, and how many hours I lost in my life with this kind of foolish thing !

On the SKR side now, assuming the Pi is fine, hardware, configuration and software.

Wrong options while compiling the firmware (I don’t find the instructions and menus always super clear, while I’ve been coding, compiling and flashing for years and even decades… BTW english is not my native language…).

RP2040 + Communication interface = Serial (on UART0 GPIO1/GPIO0) + No bootloader.

Then flashing ; this is how I do it, because I find it super easy. I copy the binary to the PC, after doing the magic woowoo with the jumpers etc, and plug the SKR Pico (or Pi Zero) into the PC (powered by USB, disconnected from the Pi)… The SKR appears as a USB drive, I copy the binary to this new drive. The new firmware is detected and flashed, then erased as soon as it is flashed. Then I reconnect everything for normal use. I never flashed using the Pi. Tried one time, failed, then took everybody to the PC. Aslo did it this way for the Picobilical (2040 inside).

Not recommanded, but makes many things much easier : one of the first things I do on a Pi is installing Samba, and sharing the root folder. Then enabling SMB 1 in Windows. So the entire Pi SD card can be accessed from the PC. It didn’t make by house catch fire, but who knows, in the future…

I’ve verified that the enable uart and disable-bt are in the pi, the cable I’m using is the one that came with the pico, which has worked for me previously (not to say that things can’t suddenly break). I’ve now ordered a micro usb to usb c cable that should allow me to connect them via usb, which, if it’s gpio related, should let it connect and indicate such. I will mention that I soldered headers onto the pi when it arrived so I wouldn’t be entirely surprised if I somehow cooked a pin doing that (no pins were bridged at the very least). Also I use filezilla to copy files between pc and pi which gets me access to majority of the files, and I’ve also only ever flashed the Pico via my pc as though it were a usb device.

Just a stupid question…
Did you wire the UART as shown in the manual ?
The cable is shown reversed ! With the Dupont on the SKR Pico and the JST on the Pi GPIO !

Pico

[EDIT] with this image :
Shouldn’t change anything, except it is bad for the JST connector (made for smaller pins), and the Dupont on JST doesn’t always give good contacts (Dupont need larger pins)

Another trap with connectors : a “ferule” that slightly moves out. Not always clearly visble on JSTs (lost hours because of this : now I always verify, and even push them down with a tiny screwdriver))

2 Likes

Just as a sanity check I checked it both ways to no avail, and I’ve made sure that the connectors were firmly on in both cases.
And for what it’s worth when it was installed on the banana pi it had the DuPont on the skr and jst on the pi which worked fine, though that was due to a space restriction.

Update: the usb cable didn’t seem to work so I decided to do a fresh install, it seems to work now, the only difference I can think of was that previously I installed klipper via an octopi image as instructed on the install documentation, whereas this time I installed via a raspian lite image and started from scratch.

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