This is an old revision of the document!
Table of Contents
Mellow µ-lite2.1, 3.5" TFT, Micro4
Hinweis
Diese Anleitung beschreibt das Einrichten der aufgeführten Komponenten (siehe Equipment). Die Anleitung kann nicht 1:1 für andere Hardware Konstellationen verwendet werden!
YouTube Video #150
Equipment
- Mellow Fly µ-lite2.1
- Mellow TFT Display 3,5“
- Mellow Micro4 Board
OS Versionen
FlyOS-Fast
- Anfängerfreundliche Version in der alle vorkonfiguriert ist
- basierend auf BuildRoot
- keine direkten Updates möglich für Klipper & Co
- alle Pakete vorinstalliert
- keine direkten Systemupdates möglich
- für eine neue Version muss das Image neu geflasht werden
- keine FLY TOOLS
- Wichtiger Hinweis aus der Mellow Doku : This system is a lightweight customized system. The built-in components and services such as klipper are not the official version, and users are not allowed to modify or upgrade them.
FlyOS-Armbian
- offene Version für Fortgeschrittene
- basierend auf Armbian
- System Updates verfügbar
- Klipper & Co updatebar
- Debian / Armbian Pakete können nachinstalliert werden
- FLY TOOLS verfügbar über
<IP>:9999
(Bsp: 192.168.30.20:9999) - Image ist ein Bullseye - also eher etwas veraltet …
- Kein neues Image für dieses MiniPad geplant
Image flashen
In der Anleitung von Mellow wird geschrieben, dass man zum Flashen die Software “Rufus” nutzen sollte. Das kann man sicherlich machen, allerdings könnte die Anwendung auch etwas verwirrend und technisch sein. Ich habe gute Erfahrungen damit gemacht, einfach den Raspberry Pi Imager zu verwenden:
https://www.raspberrypi.com/software/
Mellow hat gesagt das es mitunter zu OS Problemen führen kann. Wenn dem der Fall ist könnt ihr die Anleitung von Mellow versuchen mit Rufus:
FlyOS-Fast
FlyOS-Armbian
- Download von Google Drive:
https://drive.google.com/drive/folders/1NzHTAfhxqVukeKuTs5agEyMwU9NLHl21 - Aktuell ist das FlyOS_h3_3.3.4_fix_20241107.img.xz
FlyOS_h3_3.3.4_fix_20241107.img.xz
wird dann einfach in Raspberry Pi Imager geladen (Eigenes Image)- SD Karte in den Leser und schreiben lassen.
- WICHTIG Die Einstellungen in Raspberry Pi Imager können hier nicht angewendet werden!
- Nach dem Fertigstellen der SD Karte sollte man gleich die Konfig Datei anpassen (Hinweis: Wenn das Laufwerk
BOOT
nicht erscheint - die SD Karte einmal aus dem Leser und wieder rein …)- Die Datei
FlyOS-Env.txt
öffnen board=fly-minipad
screen=fly-minipad-c
rotate=270
- Speichern und schließen
- Für Wifi die Datei
flyos_net.txt.template
öffnen FR_net_wifi_ssid='MySSID
' → anpassenFR_net_wifi_key='MyWiFiKEY
' → anpassenFR_net_wifi_countrycode='DE
'- Speichern und schließen
- SD Karte in das Mini Pad und starten
Logins
- User :
root
- Passwort :
mellow
- Login als root ist ausgeschaltet. Siehe
sudo cat /etc/ssh/sshd_config | grep PermitRootLogin
Der Standard User fly
ist nur bei dem Armbian Image verfügbar !
- Standard User :
fly
- Passwort :
mellow
Updates & Konfig
FlyOS-Armbian
sudo nano /etc/apt/sources.list
Mirror auskommentieren :
#deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
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 minicom joystick i2c-tools speedtest-cli iotop fio ir-keytable curl inxi && mkdir -p ~/.local/share && tldr -u
- Wifi Konfig über
nmtui
- Fly Tools aufrufen über
http://u-LITE-IP:9999/
(Hier muss die IP vom Mini Pad eingetragen werden!)
HINWEIS BULLSEYE Das Image ist mit Bullseye als Debian Grundversion ziemlich veraltet. Bullseye ist auch aus dem Support und wird nicht mehr aktiv unterstützt.
FlyOS-Armbian Bookworm
WARNUNG
Das resultierende Image bitte gut testen. Ich habe es nicht in allen Einzelheiten durchgetestet!
Der Updateprozess dauert auch sicherlich so ~1-2 Stunden!
- Armbian PGP-Key installieren/aktualisieren
sudo wget https://apt.armbian.com/armbian.key -O key
sudo gpg --dearmor < key | sudo tee /usr/share/keyrings/armbian.gpg > /dev/null
sudo chmod go+r /usr/share/keyrings/armbian.gpg
sudo rm key
- APT-Sources anpassen
sudo nano /etc/apt/sources.list
deb http://deb.debian.org/debian bookworm main contrib non-free deb-src http://deb.debian.org/debian bookworm main contrib non-free deb http://deb.debian.org/debian bookworm-updates main contrib non-free deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free deb http://deb.debian.org/debian bookworm-backports main contrib non-free deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free deb http://security.debian.org/debian-security/ bookworm-security main contrib non-free deb-src http://security.debian.org/debian-security/ bookworm-security main contrib non-free
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
(ist mit der sources.list vom letzten Punkt im Grunde über …)sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/*
sudo apt update
sudo apt upgrade --without-new-pkgs -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' -y
Configuration file
Änderungen mit N beantworten!sudo apt --purge autoremove -y && sudo apt full-upgrade -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' -y
- iperf3 Autostart → No
- Restart services during package upgrades without asking? → Yes
- sshd → keep the local version currently installed
sudo apt --purge autoremove -y
- Reboot
sudo reboot
cat /etc/os_version
sollte jetzt Bookworm liefern …
- Fix Pip …
nano ~/.pip/pip.conf
[global] timeout = 6000 index-url = https://pypi.org/simple extra-index-url = https://www.piwheels.org/simple
cd ~
- Kiauh starten und alles deinstallieren
./kiauh/kiauh.sh
kiauh beenden - Reste von Klipper löschen
sudo rm -rf klipp*
- Kiauh starten und alles neu installieren
./kiauh/kiauh.sh
- Klipper
- Moonraker
- MainSail
- Klipperscreen
Am EndeInstall NetworkManager for the network panel
→ Y
sudo apt --purge autoremove -y
Mellow Micro4 (Bridge Modus)
Boot Modus
- Das Board in den Boot Modus bringen
- Im Terminal auf Meldungen warten
dmesg -Hw
- Jetzt die Boot Taste gedrückt halten und das Board per USB anschließen.
- Das Board meldet sich mit
Product: DFU in FS Mode
fly@fly-lite2:~/katapult$ dmesg -Hw [ +9.021435] usb 5-1: new full-speed USB device number 13 using ohci-platform [ +0.229046] usb 5-1: New USB device found, idVendor=2e8a, idProduct=0003, bcdDevice= 1.00 [ +0.000015] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ +0.000009] usb 5-1: Product: RP2 Boot [ +0.000007] usb 5-1: Manufacturer: Raspberry Pi [ +0.000007] usb 5-1: SerialNumber: E0C9125B0D9B [ +0.002181] usb-storage 5-1:1.0: USB Mass Storage device detected [ +0.000624] scsi host0: usb-storage 5-1:1.0 [ +1.039317] scsi 0:0:0:0: Direct-Access RPI RP2 3 PQ: 0 ANSI: 2 [ +0.001563] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ +0.016474] sd 0:0:0:0: [sda] 262144 512-byte logical blocks: (134 MB/128 MiB) [ +0.009910] sd 0:0:0:0: [sda] Write Protect is off [ +0.000027] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00 [ +0.011112] sd 0:0:0:0: [sda] No Caching mode page found [ +0.000029] sd 0:0:0:0: [sda] Assuming drive cache: write through [ +0.084717] sda: sda1 [ +0.051268] sd 0:0:0:0: [sda] Attached SCSI removable disk
STRG+C
drücken, um die Meldungen zu beenden
Katapult flashen
Hinweis:
Katapult wird über USB (Boot-Mode) eingerichtet!
- Katapult laden wenn noch nicht vorhanden, sonst in den Katapult Ordner wechseln
[ ! -d "$HOME/katapult/" ] && cd ~ && git clone https://github.com/Arksine/katapult && cd katapult || cd ~/katapult
Wegen zu altem Image muss hier eine etwas ältere Katapult Version verwendet werden!
git checkout 3e23332
arm-none-eabi-gcc –version
→ arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703make menuconfig
Micro-controller Architecture (Raspberry Pi RP2040/RP235x) ---> Processor model (rp2040) ---> Flash chip (W25Q080 with CLKDIV 2) ---> Build Katapult deployment application (Do not build) ---> Communication Interface (USBSERIAL) ---> USB ids ---> () GPIO pins to set on bootloader entry [*] Support bootloader entry on rapid double click of reset button [ ] Enable bootloader entry on button (or gpio) state [*] Enable Status LED (gpio8) Status LED GPIO Pin
- Wichtig: Hier wird als Communication interface USB ausgewählt, nicht CAN!
- Sonst ist später kein Update möglich!
- Katapult kompilieren
make -j4
- Katapult flashen (das Board muss im Boot Mode sein !)
make flash FLASH_DEVICE=2e8a:0003
- Wichtig ist am Ende
File downloaded successfully
bei der Ausgabe im Terminal - Das Board einmal stromlos machen
- Die Status LED sollte jetzt blinken
Port ermitteln
- Board stromlos machen
dmesg -Hw
starten und wieder Strom auf das Board geben
biqu@BTT-CB1:~/katapult$ dmesg -Hw [ 4557.123616] usb 5-1: new full-speed USB device number 17 using ohci-platform [ 4557.358454] usb 5-1: New USB device found, idVendor=1d50, idProduct=6177, bcdDevice= 1.00 [ 4557.358472] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 4557.358481] usb 5-1: Product: rp2040 [ 4557.358487] usb 5-1: Manufacturer: katapult [ 4557.358495] usb 5-1: SerialNumber: E66430A64B6B8C24 [ 4557.360821] cdc_acm 5-1: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
Klipper flashen
cd ~/klipper
make menuconfig
[*] Enable extra low-level configuration options Micro-controller Architecture (Raspberry Pi RP2040/RP235x) ---> Processor model (rp2040) ---> Bootloader offset (16KiB bootloader) ---> Communication Interface (USB to CAN bus bridge) ---> (4) CAN RX gpio number (5) CAN TX gpio number USB ids ---> (1000000) CAN bus speed [*] Optimize stepper code for 'step on both edges' (gpio8) GPIO pins to set at micro-controller startup
- Es kann im folgenden Schritt zu einem Fehler kommen (vor allem mit dem CB1 Board):
Python´s pyserial module is required to update. Install with the following command: /usr/bin/python3 -m pip install pyserial make: *** [src/stm32/Makefile:111: flash] Error 255
In dem Fall einfach folgendes ausführen
sudo apt install python3-serial
- Klipper kompilieren und flashen (über USB / seriell!)
make -j4 flash FLASH_DEVICE=/dev/ttyACM0
biqu@BTT-CB1:~/klipper $ make -j4 flash FLASH_DEVICE=/dev/ttyACM0 Creating symbolic link out/board Building out/autoconf.h Compiling out/src/sched.o ... Compiling out/src/stm32/hard_pwm.o Preprocessing out/src/generic/armcm_link.ld Building out/compile_time_request.o Version: v0.12.0-102-g9f41f53c Linking out/klipper.elf Creating hex file out/klipper.bin Flashing out/klipper.bin to /dev/ttyACM0 Entering bootloader on /dev/ttyACM0 Device reconnect on /sys/devices/platform/soc/5200000.usb/usb2/2-1/2-1.4/2-1.4:1.0 /usr/bin/python3 lib/canboot/flash_can.py -d /dev/serial/by-path/platform-5200000.usb-usb-0:1.4:1.0 -f out/klipper.bin Attempting to connect to bootloader CanBoot Connected Protocol Version: 1.0.0 Block Size: 64 bytes Application Start: 0x8020000 MCU type: stm32h723xx Flashing '/home/biqu/klipper/out/klipper.bin'... [##################################################] Write complete: 1 pages Verifying (block count = 477)... [##################################################] Verification Complete: SHA = 381BC7BAE3D7B8717F7169CEDB8EA08E4D59A4CA CAN Flash Success
- Die LED sollte jetzt nicht mehr blinken!
SBC
- Da wir von Bullseye kommen ist ifupdown immer noch aktiv und kann genutzt werden.
Ansonsten siehe hier: https://www.drklipper.de/doku.php?id=klipper_faq:can:neue_can_konfiguration - Interface einrichten
Achtung : die Bitrate von 1000000 muss auch in der Board Firmware eingestellt werden!
sudo nano /etc/network/interfaces.d/can0
folgendes eintragen, speichern und mitSTRG + x
, dannY
, dannEnter
beenden
allow-hotplug can0 iface can0 can static bitrate 1000000 up ifconfig $IFACE txqueuelen 1024
Test
- Testen mit
ip a
can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP group default qlen 1024
- Sollte das Interface auf
DOWN
stehen hilft meist ein
sudo systemctl restart networking.service
oder ein
sudo ip link set can0 up type can bitrate 1000000
Can Query
Hinweis
Die folgenden Schritte setzen natürlich voraus, das der CAN Bus korrekt im Vorfeld eingerichtet wurde!
Wenn das Board über CAN verbunden ist, dann kann man mit den folgenden Schritten prüfen, ob Katapult geflasht wurde:
- Klipper Dienst stoppen
sudo systemctl stop klipper.service
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
Wenn ein Board gefunden wird, dann sollte folgende Ausgabe erscheinen:
biqu@BTT-CB1:~/klipper$ ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 Found canbus_uuid=668b50171aea, Application: Klipper Total 1 uuids found
- Die UUID (canbus_uuid=668b50171aea) notieren !
- Wird bei diesem Schritt kein Board gefunden, hilft oft ein Reset am Board (entweder über den Reset Taster oder 1x Strom weg und wieder dran)
Konfiguration Micro4
cd ~/printer_data/config
- Beispiel Konfiguration
https://mellow.klipper.cn/en/docs/ProductDoc/MainBoard/fly-micro/fly-micro4/cfg- Achtung: Gcode falsch eingerückt!
nano ~/printer_data/config/printer.cfg
[mcu] canbus_uuid: 668b50171aea
- Unterhalb
[mcu]
die Zeile mitserial
löschen oder auskommentieren - Unterhalb
[mcu]
die Zeilecanbus_uuid
entsprechend mit der ermittelten UUID von oben einfügen
- Klipper starten
sudo systemctl start klipper.service
Sonstiges
Verkabelung
CAN Bus Terminierung
- Wer will, kann im ausgeschalteten Zustand den Buswiderstand mit einem Ohmmeter messen. Es müsste zwischen CAN H und CAN L ca. 60 Ω ergeben.
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 -c can0 44d860c9632b
Die UUID am Ende muss natürlich mit dem übereinstimmen, was ihr im vorherigen Schritt ermittelt habt!
Klipper Dienst wieder starten
sudo systemctl start klipper.service
Klipper Update
Hinweis:
Das Klipper Update wird über USB eingespielt! Über den CAN-Bus ist ein Update nicht möglich wenn das Board als USB/Can Bridge arbeitet.
- Klipper Dienst stoppen
sudo systemctl stop klipper.service
- Alle CAN UUID's ermitteln
grep canbus_uuid ~/printer_data/config/* -n
biqu@BTT-CB1:~$ grep canbus_uuid ~/printer_data/config/* -n /home/biqu/printer_data/config/BTT_EBB.cfg:10:canbus_uuid: 44d860c9632b /home/biqu/printer_data/config/printer.cfg:162:canbus_uuid: fa5ad324b369
- Das Manta Board per flshtool.py resetten. Welche UUID das Manta Board hat kann man bei mehreren Busteilnehmern leider nicht ohne weitere erkennen.
~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -i can0 -u <MANTA UUID> -r
biqu@BTT-CB1:~$ ~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -i can0 -u fa5ad324b369 -r Sending bootloader jump command... Bootloader request command sent Flash Success
- Die Status LED sollte jetzt anfangen zu blinken
- Den Port ermitteln
dmesg |tail -n 10
biqu@BTT-CB1:~$ dmesg |tail -n 10 [ 296.579125] gs_usb 2-1.4:1.0 can0: Couldn`t shutdown device (err=-19) [ 296.959524] usb 2-1.4: new full-speed USB device number 5 using ehci-platform [ 297.190002] usb 2-1.4: New USB device found, idVendor=1d50, idProduct=6177, bcdDevice= 1.00 [ 297.190028] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 297.190034] usb 2-1.4: Product: stm32h723xx [ 297.190040] usb 2-1.4: Manufacturer: katapult [ 297.190045] usb 2-1.4: SerialNumber: 1E0043001051313236343430 [ 297.208551] cdc_acm 2-1.4:1.0: ttyACM0: USB ACM device [ 297.208666] usbcore: registered new interface driver cdc_acm [ 297.208673] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Wie immer brauchen wir die tty… Angabe. In diesem Fall ist is ttyACM0 wie man in der drittletzten Zeile sehen kann.
cd ~/klipper
- Klipper flashen
make -j4 flash FLASH_DEVICE=/dev/ttyACM0
Den ermittelten Port halt am Ende ggf. anpassen. - Klipper starten
sudo systemctl start klipper.service
Mini Config (Test)
HINWEIS
Diese Konfiguration ist nur für einen einfachen Test! Bitte entpsrechend anpassen!
[include mainsail.cfg] [virtual_sdcard] path: /home/fly/printer_data/gcodes on_error_gcode: CANCEL_PRINT [mcu] serial : /dev/serial/by-id/usb-Klipper_stm32f446xx_3D002A000350563046353420-if00 [mcu host] serial : /tmp/klipper_host_mcu [printer] kinematics: none max_velocity: 1000 max_accel: 1000
Klipperscreen
- In dem CB1 Full Image ist Klipperscreen schon entahlten und kann über MainSail auf den neusten Stand gebracht werden.
- Wenn man ein anderes Image verwendet muss Klipperscreen über kiauh nachinstalliert werden.