Upgrade Voron2.4 Octopi voor Python3 met RPI/4b/4Gb en 2x SKR1.4 T

Een upgrade naar Python 3 is noodzakelijk omdat Octoprint bij het opstarten blijft vermelden dat toekomstige updates na 1.72 niet langer worden ondersteund wanneer een Python2-omgeving wordt uitgevoerd.

Aangezien ik mijn Voron2.4 printer in 2018 heb gemaakt, is deze nog steeds gebaseerd op Python2.

Ik heb eerst het advies op de website van Octoprint opgevolgd: Maak een volledige backup van de RPI met de backup/restore plugin van Octoprint, sla deze op op je lokale HDD.

Maak vervolgens een nieuwe image van de Raspberry PI imager, door de meest recente Octopi image te selecteren in het menu van de RPI imager.  Brand het dan op een micro SD kaart, haal de SD eruit en er weer in, verander de wifi instellingen naar wat je thuis hebt.  En, stop het in je Raspberry PI. Zet de stroom aan en wacht enkele minuten. Zoek naar je RPI met bonjour of gebruik gewoon de kwade IP Scanner en zoek het lokale IP adres.  Start PuTTY en log in op de RPI met ‘pi’ gebruikersnaam en ‘raspberry’ wachtwoord.  Type ‘ ‘ en Enter. In het menu: Verander het login wachtwoord van de RPI in het wachtwoord dat je eerder gebruikte en sla het op. Log uit bij PuTTY.

Log nu in op octoprint met je browser op het geïdentificeerde lokale IP-adres en zet de lokaal opgeslagen backup terug.  Dit zou een lange tijd moeten duren om te installeren. Hierna reboot je en het zou allemaal weer moeten werken.

MAAR- het werkte helemaal niet.  Op de een of andere manier zijn niet alle bestanden gebackupped en hersteld of mis ik enkele configuratie-instellingen.  Octoprint kon geen verbinding maken met de SKR4 printen, dus het LCD display werkte niet en zonder communicatie met de printen, kon er niets worden gedaan.  Ik heb geprobeerd het probleem te verhelpen, maar na een uur of zo heb ik besloten om een nieuwe installatie te doen.

Ik heb het configuratiebestand eerder opgeslagen, dus met dit en een nieuwe installatie zou het goed moeten gaan.

De rest van dit bericht beschrijft mijn zoektocht- en vondst- en is een HOW TO om je te helpen het goed te doen zonder enig zoeken. Het meeste is verzameld van al deze goede sites waar delen van de oplossing voor deze specifieke configuratie te vinden zijn en ik heb ze gewoon aan elkaar geknoopt voor de Voron2.4 met een Raspbery PI 4B en 4GB geheugen, met 2 x BTT SKR1.4T en een standaard RGB LCD display aangesloten met 2 blok bekabelde draad connectoren , de LCD heeft ook een verlichte draaiknop (zie de foto’s aan het eind van deze post):

Installatie¶

Deze instructies gaan ervan uit dat de software zal draaien op een Raspberry Pi computer in combinatie met OctoPrint. Het is aanbevolen dat een Raspberry Pi 2, 3, of 4 computer wordt gebruikt als de host machine (zie de FAQ voor andere machines).

Klipper ondersteunt momenteel een aantal Atmel ATmega gebaseerde micro-controllers, ARM gebaseerde micro-controllers, en Beaglebone PRU gebaseerde printers.

Voorbereiden van een OS image¶

Begin met het installeren van OctoPi op de Raspberry Pi computer. Gebruik OctoPi v0.17.0 of later – zie de OctoPi releases voor release informatie. Men dient te verifiëren dat OctoPi opstart en dat de OctoPrint webserver werkt. Na verbinding te hebben gemaakt met de OctoPrint web pagina, volg de prompt om OctoPrint te upgraden naar v1.4.2 of hoger.

Na het installeren van OctoPi en het upgraden van OctoPrint, is het nodig om te ssh-en op de doelmachine om een handvol systeemcommando’s uit te voeren. Als u een Linux of MacOS desktop gebruikt, dan zou de “ssh” software al op de desktop geïnstalleerd moeten zijn. Er zijn gratis ssh clients beschikbaar voor andere desktops (bv. PuTTY). Gebruik het ssh-hulpprogramma om verbinding te maken met de Raspberry Pi (ssh pi@octopi — wachtwoord is “raspberry”) en voer de volgende commando’s uit:

git clone https://github.com/Klipper3d/klipper

./klipper/scripts/install-octopi.sh

E: Repository ‘http://archive.raspberrypi.org/debian buster InRelease’ veranderde zijn ‘Suite’ waarde van ‘testing’ naar ‘oldstable’

N: Dit moet expliciet geaccepteerd worden voordat updates voor deze repository kunnen worden toegepast. Zie apt-secure(8) manpagina voor details.

Omdat de repository veranderd is van “testing” naar “stable” moet je eenmalig toestemming geven om deze verandering in de repository te accepteren. Dit doe je met het volgende commando,

sudo apt-get update –allow-releaseinfo-change

Hierna kan je gewoon weer updaten met,

sudo apt-get update

git clone https://github.com/Klipper3d/klipper

./klipper/scripts/install-octopi.sh

 

Het bovenstaande zal Klipper downloaden, enkele systeem afhankelijkheden installeren, Klipper instellen om te draaien bij het opstarten van het systeem, en de Klipper host software starten. Hiervoor is een internetverbinding nodig en het kan een paar minuten duren voordat het voltooid is.

Bouwen en flashen van de microcontroller¶

Om de microcontroller code te compileren, start met het uitvoeren van deze commando’s op de Raspberry Pi:

cd ~/klipper/

make menuconfig

Selecteer de juiste microcontroller en bekijk alle andere opties die voorzien zijn. Eenmaal geconfigureerd, voer uit:

make

Het is noodzakelijk om de seriële poort te bepalen die op de microcontroller is aangesloten. Voor micro-controllers die via USB worden aangesloten, voert u het volgende uit:

ls /dev/serial/by-id/*

Het zou iets moeten rapporteren dat lijkt op het volgende:

/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

Het is gebruikelijk dat elke printer zijn eigen unieke seriële poortnaam heeft. Deze unieke naam zal worden gebruikt bij het flashen van de microcontroller. Het is

Deze unieke naam zal gebruikt worden bij het flashen van de microcontroller. Het is mogelijk dat er meerdere lijnen in de bovenstaande uitvoer staan – als dat zo is, kies dan de lijn die overeenkomt met de microcontroller (zie de FAQ voor meer informatie).

Voor gewone microcontrollers kan de code geflashed worden met iets als:

sudo service klipper stop

maak flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

sudo service klipper start

Zorg ervoor dat u FLASH_DEVICE aanpast met de unieke seriële poortnaam van de printer.

Wanneer voor de eerste keer wordt geflitst, zorg er dan voor dat OctoPrint niet direct met de printer is verbonden (op de OctoPrint webpagina, onder de “Verbinding” sectie, klik op “Verbinding verbreken”).

OctoPrint configureren om Klipper¶ te gebruiken

De OctoPrint web server moet worden geconfigureerd om te communiceren met de Klipper host software. Log met behulp van een webbrowser in op de OctoPrint webpagina en configureer vervolgens de volgende items:

Navigeer naar de Instellingen tab (het moersleutel icoon bovenaan de pagina). Onder “Seriële Verbinding” in “Extra seriële poorten” voeg “/tmp/printer” toe. Klik dan op “Opslaan”.

Ga opnieuw naar het tabblad Instellingen en wijzig onder “Seriële verbinding” de instelling “Seriële poort” in “/tmp/printer”.

Ga op het tabblad “Instellingen” naar het subtabblad “Gedrag” en selecteer de optie “Annuleer alle lopende afdrukken maar blijf verbonden met de printer”. Klik op “Opslaan”.

Controleer op de hoofdpagina in het gedeelte “Verbinding” (links bovenaan de pagina) of de “Seriële poort” is ingesteld op “/tmp/printer” en klik op “Verbinden”. (Als “/tmp/printer” niet beschikbaar is, probeer dan de pagina opnieuw te laden).

Eenmaal verbonden, navigeer naar het tabblad “Terminal” en typ “status” (zonder de aanhalingstekens) in het opdrachtinvoerveld en klik op “Send”. Het terminal venster zal waarschijnlijk melden dat er een fout is bij het openen van het configuratiebestand – dat betekent dat OctoPrint succesvol communiceert met Klipper. Ga verder naar de volgende sectie.

Klipper configureren¶

De Klipper configuratie is opgeslagen in een tekstbestand op de Raspberry Pi. Kijk eens naar de voorbeeld config bestanden in de config directory. De Config Reference bevat documentatie over config parameters.

De gemakkelijkste manier om het Klipper configuratiebestand te updaten is om een desktop editor te gebruiken die het bewerken van bestanden over de “scp” en/of “sftp” protocols ondersteunt. Er zijn vrij verkrijgbare gereedschappen die dit ondersteunen (bijv. Notepad++, WinSCP, en Cyberduck). Gebruik een van de voorbeeldconfiguraties als uitgangspunt en sla het op als een bestand met de naam “printer.cfg” in de homedirectory van de pi gebruiker (bijvoorbeeld /home/pi/printer.cfg).

Als alternatief kan men het bestand ook direct op de Raspberry Pi kopiëren en bewerken via ssh – bijvoorbeeld

cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg

nano ~/printer.cfg

Zorg ervoor dat elke instelling die geschikt is voor de hardware wordt gecontroleerd en bijgewerkt.

Het is gebruikelijk dat elke printer zijn eigen unieke naam heeft voor de microcontroller. De naam kan veranderen na het flashen van Klipper, dus voer het ls /dev/serial/by-id/* commando opnieuw uit en update dan het configuratiebestand met de unieke naam. Bijvoorbeeld, update de [mcu] sectie zodat het er ongeveer zo uitziet

[mcu]

serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

Na het maken en bewerken van het bestand zal het nodig zijn om een “herstart” commando te geven in de OctoPrint web terminal om de configuratie te laden. Een “status” commando zal melden dat de printer klaar is als het Klipper config bestand succesvol is gelezen en de microcontroller succesvol is gevonden en geconfigureerd. Het is niet ongebruikelijk om configuratiefouten te hebben tijdens de eerste installatie – update het configuratiebestand van de printer en geef “restart” totdat “status” meldt dat de printer gereed is.

Klipper meldt foutmeldingen via het OctoPrint terminal tabblad. Het “status” commando kan worden gebruikt om foutmeldingen opnieuw te melden. Het standaard Klipper opstartscript plaatst ook een log in /tmp/klippy.log dat meer gedetailleerde informatie geeft.

Naast de gebruikelijke g-code commando’s, ondersteunt Klipper een paar uitgebreide commando’s – “status” en “restart” zijn voorbeelden van deze commando’s. Gebruik het “help”-commando om een lijst van andere uitgebreide commando’s te krijgen.

Nadat Klipper heeft gemeld dat de printer klaar is, gaat u naar het config check document om enkele basiscontroles uit te voeren op de pindefinities in het config bestand.

Maar als alles werkt ben je nu gewoon klaar!