User Tools

Site Tools


klipper_faq:klipper_0_auf_100:orange_pi_3_zero_7_display_skr_pico

Orange Pi 3 Zero, 7" Display, SKR Pico

Hinweis
Diese Anleitung beschreibt das Einrichten der aufgeführten Komponenten (siehe Equipement). Die Anleitung kann nicht 1:1 für andere Hardware Konstellationen verwendet werden!

YouTube Video #127


Equipment

  • Orange Pi 3 Zero mit 64GB SD-Karte
  • BTT Pi HDMI7 V1.2 (HDMI Anschluss)
  • BTT SKR Pico (RP2040)

SD-Karte vorbereiten

    • → Debian Image
    • The image of the linux6.1 kernel version hinten auf die … anklicken und auf Herunterladen

      Dann wird das Image generiert und man kann irgendwann runterladen. (Was eine beschi**ene Seite …)
  • The image of the linux6.1 kernel version-20250112T175611Z-009.zip entpacken
  • daraus dann Orangepizero3_1.0.4_debian_bookworm_server_linux6.1.31.7z entpacken
  • Orangepizero3_1.0.4_debian_bookworm_server_linux6.1.31.img das ist was wir suchen :-)
  • Das Image mit dem Raspberry Pi Imager auf die SD Karte schreiben
    • ACHTUNG Die Default Settings die man setzen kann hier nicht schreiben lassen! Das ist kein Raspberry Pi Image!
  • danach noch einmal mit Ja bestätigen und warten bis die Karte fertig ist

erster Start

  • SD Karte in den Zero 3
  • den Zero 3 mit Strom versorgen
  • Netzwerk (LAN) anschließen
  • ggf. HDMI Display direkt anschließen
  • Zero 3 starten und per SSH einloggen
    Der erste Start dauert ein paar Minuten (je nach SD Karte). Der Zero 3 muss erst die Partition anpassen und bootet 1-2 durch …
  • SSH Zugang User orangepi Passwort orangepi

Netzwerk

Hinweis:
Es gibt keine einfache Möglichkeit hier das WLAN im Vorfeld einzustellen. Also erstmal per LAN in Betrieb nehmen und dann später das WLAN aktivieren wenn nötig!
  • IP finden
    • Über Router nachsehen
    • Über MobaXTerm Netzwerkscan durchführen (Tools → Network scanner)
  • Default mit LAN (DHCP)
  • WLAN Konfig
    • nmtui

Updates

  • sudo apt update && sudo apt upgrade -y && sudo apt install -y git git-lfs silversearcher-ag wavemon hexedit sudoku tcpdump iptraf mc htop dcfldd nano usbutils ranger tldr ncdu can-utils multitail fd-find lsof x11vnc terminator minicom cutecom joystick i2c-tools speedtest-cli iotop fio ir-keytable && mkdir -p ~/.local/share && tldr -u
  • sudo apt autoremove -y modem* cups* pulse* avahi* triggerhappy*

Klipper & Co installieren

  • ./kiauh/kiauh.sh
    • Neue Version verwenden → Auswahl 3
  • → 1) [Install]
    • → 1) [Klipper]
      • Number of Klipper instances to set up → Enter
      • Create example printer.cfg? → Enter
      • warten … :-)
    • → 2) [Moonraker]
      • Create example moonraker.conf? → Enter
      • warten … :-)
    • → 3) [Mainsail]
      • Download the recommended Mainsail-Config? → Enter
      • Configure Mainsail for port (default=80) → Enter
      • kurz warten … :-)
    • B → Back
  • Q → Quit

SKR Pico

  • Klipper kompilieren
    • cd ~/klipper && make menuconfig
    • [*] Enable extra low-level configuration options
          Micro-controller Architecture (Raspberry Pi RP2040/RP235x)  --->
          Processor model (rp2040)  --->
          Bootloader offset (No bootloader)  --->
          Flash chip (W25Q080 with CLKDIV 2)  --->
          Communication Interface (USBSERIAL)  --->
          USB ids  --->
      ()  GPIO pins to set at micro-controller startup (NEW)
    • Q und Y zum beenden und speichern
    • make -j4 um Klipper zu kompilieren
  • Board in den Flash Modus bringen
    • Jumper in der Board Mitte setzen
    • Reset Button drücken (RST)
    • in der SSH Konsole dmesg eintippen und es muss in etwa folgendes kommen (wichtig ist RP2 Boot)
      orangepi@orangepizero3:~/klipper$ dmesg
      [ 1475.287435] usb 6-1: new full-speed USB device number 3 using ohci-platform
      [ 1475.516439] usb 6-1: New USB device found, idVendor=2e8a, idProduct=0003, bcdDevice= 1.00
      [ 1475.516454] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
      [ 1475.516461] usb 6-1: Product: RP2 Boot
      [ 1475.516466] usb 6-1: Manufacturer: Raspberry Pi
      [ 1475.516472] usb 6-1: SerialNumber: E0C9125B0D9B
      [ 1475.518547] usb-storage 6-1:1.0: USB Mass Storage device detected
      [ 1475.518921] scsi host0: usb-storage 6-1:1.0
      [ 1475.579543] usbcore: registered new interface driver uas
      [ 1476.550477] scsi 0:0:0:0: Direct-Access     RPI      RP2              3    PQ: 0 ANSI: 2
      [ 1476.550901] sd 0:0:0:0: Attached scsi generic sg0 type 0
      [ 1476.560507] sd 0:0:0:0: [sda] 262144 512-byte logical blocks: (134 MB/128 MiB)
      [ 1476.570479] sd 0:0:0:0: [sda] Write Protect is off
      [ 1476.570504] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
      [ 1476.580483] sd 0:0:0:0: [sda] No Caching mode page found
      [ 1476.580501] sd 0:0:0:0: [sda] Assuming drive cache: write through
      [ 1476.627468]  sda: sda1
      [ 1476.631561] sd 0:0:0:0: [sda] Attached SCSI removable disk
  • Flashen
    • make flash FLASH_DEVICE=2e8a:0003
      orangepi@orangepizero3:~/klipper$ make flash FLASH_DEVICE=2e8a:0003
        Building rp2040_flash
      gcc -c -Wall -ggdb -DHAS_LIBUSB -I../pico-sdk/ `pkg-config libusb-1.0 --cflags` main.c -o main.o
      gcc -c -Wall -ggdb -DHAS_LIBUSB -I../pico-sdk/ `pkg-config libusb-1.0 --cflags` picoboot_connection.c -o picoboot_connection.o
      gcc  main.o picoboot_connection.o `pkg-config libusb-1.0 --libs` -o rp2040_flash
        Flashing out/klipper.uf2 to 2e8a:0003
      sudo lib/rp2040_flash/rp2040_flash out/klipper.uf2
      
      Loaded UF2 image with 151 pages
      Found rp2040 device on USB bus 6 address 2
      Flashing...
      Resetting interface
      Locking
      Exiting XIP mode
      Erasing
      Flashing
      Rebooting device
    • Fehler /bin/sh: 1: pkg-config: not found
      Sollte das kommen einfach folgendes installieren und nochmal make flash … versuchen
      sudo apt install pkgconf
  • Den Jumper aus der Boardmitte abziehen !

Port ermitteln

  • dmesg -HW starten
  • Den USB Stecker abziehen und wieder anstecken. (oder Reset drücken)
  • dmesg Ausgabe
    pi@Pi3Test:~/klipper $ dmesg -HW
    [  +3.885051] usb 1-1.4: new full-speed USB device number 7 using dwc_otg
    [  +0.134266] usb 1-1.4: New USB device found, idVendor=1d50, idProduct=614e, bcdDevice= 1.00
    [  +0.000037] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [  +0.000016] usb 1-1.4: Product: rp2040
    [  +0.000012] usb 1-1.4: Manufacturer: Klipper
    [  +0.000012] usb 1-1.4: SerialNumber: 455035712913A168
    [  +0.001607] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
    • Wir brauchen die Information mit tty… also in diesem Fall ttyACM0
    • STRG+C drücken, um die Meldungen zu beenden
  • Den zugehörigen Link ermitteln
    ls -lR /dev/ | grep -v '\->\s../tty' | grep -e 'tty[[:alpha:]]' -e serial
    • Wir brauchen die Info unter /dev/serial/by-id: :
      lrwxrwxrwx 1 root root 13 Dec 13 22:03 usb-Klipper_rp2040_455035712913A168-if00 → ../../ttyACM0
    • Achte darauf das am Ende die gleiche tty Bezeichnung steht wie sie im vorherigen Schritt ermittelt wurde (hier also ttyACM0)
    • Was für für die Konfig brauchen ist dann am Ende:
      /dev/serial/by-id/usb-Klipper_rp2040_455035712913A168-if00

kurzer Test

Ob das Board korrekt mit Klipper läuft, lässt sich mit folgendem Befehl schnell testen:
~/klippy-env/bin/python ~/klipper/klippy/console.py /dev/serial/by-id/usb-Klipper_rp2040_455035712913A168-if00

Der Pfad am Ende muss natürlich mit dem übereinstimmen, was ihr im vorherigen Schritt ermittelt habt!

Wenn ihr ein connected am Anfang des Textes seht, ist das Board richtig geflasht.

Konfig

Klipperscreen

  • cd ~ && ./kiauh/kiauh.sh
    • → 1) [Install]
    • → 7) [KlipperScreen]
      • Press enter for default (Yes) → Enter
      • Backend Xserver or Wayland (cage) → Enter (wir nutzen X-Server !)
      • warten … :-)
      • Install NetworkManager for the network panel → Enter
      • Passwort eintippen. Default ist orangepi
  • Der Zero 3 rebootet dann und es sollte Klipperscreen angezeigt werden.
Hinweis:
Jetzt kann auch über Klipperscreen das WLAN eingerichtet werden!

Klipper Update

  • Klipper Dienst stoppen
    sudo systemctl stop klipper.service
  • cd ~/klipper && make menuconfig
    • Die Einstellungen sind genauso wie im Kapitel SKR Pico
  • make flash -j4 FLASH_DEVICE=/dev/ttyACM0
    • Wie man an den Port (hier ttyACM0) kommt, ist Port ermitteln beschrieben
    • Das Ergebniss sollte so aussehen:
      Entering bootloader on /dev/ttyACM0
      Device reconnect on /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4
      sudo lib/rp2040_flash/rp2040_flash out/klipper.uf2 1 8
       
      Loaded UF2 image with 101 pages
      Found rp2040 device on USB bus 1 address 8
      Flashing...
      Resetting interface
      Locking
      Exiting XIP mode
      Erasing
      Flashing
      Rebooting device
  • Klipper Dienst starten
    sudo systemctl start klipper.service

Goodies

Die folgenden Punkte sind für den Betrieb mit Klipper nicht notwendig. Vielleicht ist es aber für den ein oder anderen interessant :-)

X11VNC

  • Manueller Start
    x11vnc -usepw -forever -display :0
  • Automatischer Start
    • sudo x11vnc -storepasswd /etc/x11vnc.pass
    • sudo nano /lib/systemd/system/x11vnc.service
    • [Unit]
      Description=Start X11VNC
      After=multi-user.target
      
      [Service]
      Type=simple
      ExecStart=/usr/bin/x11vnc -display :0 -usepw -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
      Environment=DISPLAY=:0
      
      [Install]
      WantedBy=multi-user.target
    • sudo systemctl enable x11vnc.service

IR Empfänger

  • Alle Protokolle an
    sudo ir-keytable -p rc-5,rc-5-sz,jvc,sony,nec,sanyo,mce_kbd,rc-6,sharp,xmp,cec,imon,rc-mm
  • Testen sudo ir-keytable -t
    orangepi@orangepizero3:~$ sudo ir-keytable -t
    Testing events. Please, press CTRL-C to abort.
    1416.657164: lirc protocol(necx): scancode = 0xef07 repeat
    1416.657198: event type EV_MSC(0x04): scancode = 0xef07
    1416.657198: event type EV_SYN(0x00).
  • sudo apt install python3-evdev
  • Device finden mit evtest
    orangepi@orangepizero3:~$ evtest
    No device specified, trying to scan all of /dev/input/event*
    Not running as root, no devices may be available.
    Available devices:
    /dev/input/event1:      sunxi-ir
  • Python Code
    import evdev
    from evdev import InputDevice, categorize, ecodes
    import argparse
     
    def main(device_path):
        try:
            # Öffne das spezifizierte Eingabegerät
            device = InputDevice(device_path)
            print(f"Listening to events from device: {device.name} ({device_path})")
     
            # Hauptschleife zum Lesen von Ereignissen
            for event in device.read_loop():
                # Überprüfen, ob es sich um ein EV_MSC-Ereignis handelt
                if event.type == ecodes.EV_MSC and event.code == ecodes.MSC_SCAN:
                    scancode = hex(event.value)
                    print(f"Scancode detected: {scancode}")
     
                # Überprüfen, ob es sich um ein Key-Ereignis handelt
                elif event.type == ecodes.EV_KEY:
                    key_event = categorize(event)
                    if key_event.keystate == 1:  # Key pressed
                        print(f"Key pressed with scancode: {key_event.scancode}")
                    elif key_event.keystate == 0:  # Key released
                        print(f"Key released with scancode: {key_event.scancode}")
     
        except FileNotFoundError:
            print(f"Device {device_path} not found. Please check the device path.")
        except PermissionError:
            print(f"Permission denied. Try running the script with sudo.")
     
    if __name__ == "__main__":
        parser = argparse.ArgumentParser(description="Monitor IR key events from a specific input device.")
        parser.add_argument("device", help="Path to the input device (e.g., /dev/input/event0)")
        args = parser.parse_args()
     
        main(args.device)
klipper_faq/klipper_0_auf_100/orange_pi_3_zero_7_display_skr_pico.txt · Last modified: 2025/01/17 17:10 by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki