Raspberry Pi Pico och MicroPython på Windows

Raspberry Pi Pico och MicroPython på Windows Titelbild

Den här artikeln svarar på frågan: Hur använder jag Raspberry Pi Pico med MicroPython på Windows? Vi visar också hur man installerar rätt drivrutin för "Board CDC" (som Pico kommer att visas som när MicroPython är installerat) på Windows 8.1. (Vi kommer också att diskutera skillnaderna mellan MicroPython och CircuitPython där det är tillämpligt - där kortet kommer att kallas "CircuitPython CDC Control").

Slutligen visar vi hur man ansluter till Pico med PuTTY, och ett bekvämare alternativ är att använda Thonny (som är en Python IDE, integrerad med Pico!)

Introduktion: Vad är Pico och vad är MicroPython?

The Raspberry Pi Pico är ett nytt mikrokontrollerkort från Raspberry Pi, med det egenutvecklade RP2040-mikrokontrollchipet.

Raspberry Pi har designat massor av coola funktioner i RP2040 (min favorit är PIO - programmerbar IO, där du kan emulera massor av hårdvarugränssnitt som kräver exakt timing osv. - Jag kommer att gå in på det i en annan artikel i framtiden), och Pico är en riktigt trevlig referensplattform som RP2040 är implementerad på.

Hur skiljer sig en Raspberry Pi Pico från en Raspberry Pi Zero W?

Skillnaden mellan en mikrokontroller (som t.ex. Pico) och en enkortsdator (låt oss säga Pi Zero W) är ungefär så här: du programmerar Pico direkt (t.ex. i C), utan operativsystem, medan Pi Zero W körs vanligtvis Linux.

Detta har fördelar, som realtid, men också nackdelar - du måste veta mer om den hårdvara du använder och måste implementera en hel del funktionalitet som du skulle ta för givet i ett modernt operativsystem (t.ex. filåtkomst).

Pico har färre resurser jämfört med Pi Zero W (t.ex. betydligt mindre RAM, ingen VideoCore GPU, etc.) - men den drar mindre ström och har ytterligare funktioner, som den tidigare nämnda PIO och analoga ingångar (ADC).

Pico är ett bra val för projekt som inte nödvändigtvis kräver nätverksanslutning, HDMI-utgång, kameraingång och bearbetning. Med andra ord, om du vill ha gränssnitt mot hårdvara, lång batteritid etc - då är Pico något för dig.

Vilken programvara finns redan för Pico?

Pico kan flashas med hjälp av olika programvaror som medföljer i UF2-filer (se Pico Kom igång-guide). Raspberry Pi tillhandahåller flera UF2-filer för att du ska komma igång:

Det finns mycket mer av exempel som finns här (C-kod).

Observera: Jag länkar till de senaste UF2-filerna från och med 30.01.2021 - särskilt MicroPython kan ha uppdaterats, så se till att kontrollera Raspberry Pi Pico sida för att komma igång.

MicroPython

Om du tycker att det verkar lite skrämmande att gå hela vägen och programmera i C kan du komma igång med MicroPython. I det här fallet är viss programvara förinstallerad på Raspberry Pi Pico (MicroPython UF2-filen), som kommer att köra en liten Python-tolk.

Det kallas MicroPython eftersom det inte stöder hela standardbiblioteket Python 3. MicroPython är avsett för begränsade miljöer, som Pico. Pico har totalt 2 MB RAM - det räcker inte till allt som Python 3 för med sig. Kontrollera denna Github-sida för skillnader mellan CPython och MicroPython. Här är också den officiella MicroPython hemsida, och officiell MicroPython-dokumentation.

CircuitPython

Obs: de flesta av instruktionerna gäller också CircuitPython RP2040-baserade kort på Windows, t.ex. Adafruit Feather RP2040, men du måste följa lite olika steg - jag kommer att påpeka skillnaderna i den här artikeln.

CircuitPython är i grunden en variant av MicroPython som utvecklas av Adafruit.

Själva kortet kommer att kallas annorlunda i din enhetshanterare efter flashning (CircuitPython CDC Control) - och du behöver naturligtvis annan programvara. Här är vad du behöver, för att börja:

I den här artikeln visar vi dig också hur du installerar CircuitPython-bibliotek på RP2040-baserade enheter på Windows och hur du kör och stoppar program med Thonny.

Vad får du med MicroPython UF2?

När MicroPython är installerat på Pico kan du ansluta till Pico med hjälp av den seriella konsolen (vi visar hur i den här artikeln) och börja skriva Python-kod på Pico.

Installera MicroPython på Pico

  • Koppla bort strömmen från Pico
  • Tryck på BOOTSEL-knappen och håll den intryckt
  • anslut Pico till din dator med en microUSB- till USB-kabel
  • nu kan du släppa BOOTSEL-knappen
Tryck på BOOTSEL-knappen och håll den intryckt innan du kopplar in microUSB-kabeln

Pico ska nu vara synlig i ditt filsystem som RPI-RP2:

Pico visas som RPI-RP2

(Sidenote: Jag undrar vad RPI-RP1 var?)

Pico emulerar ett FAT32-minne som innehåller två filer: INDEX.HTM och INFO_UF2.TXT.

Windows Drive Manager

Faktum är att Windows Drive Manager visar att Pico är ett 128 MB FAT-flashminne.

Gör inte misstaget att försöka lagra några filer på Pico på det här sättet: de kommer att tyst släppas. Även om det ser ut som om de skrivs, är det bara Windows som cachelagrar operationerna - dina filer kommer att vara borta! Nämnde jag redan att Pico faktiskt bara har 2 MB Flash? Den ljuger skamlöst om 128 MB här (RP2040 är förresten tänkt att stödja upp till 16 MB flash, AFAIK).

Sidenote: Detta påminner mig lite om min resa till Indien, där jag köpte USB-minnen med 128 GB kapacitet - som skulle skriva dina data till Nirvana. När jag försökte returnera enheten och få tillbaka mina pengar var säljaren borta ... äventyren som skulle ha 🙂

Men om du kopierar rätt typ av fil - UF2-filen - till den här enheten kommer den att kännas igen och skrivas.

Kopiera Micropython UF2-filen till Pico

Du kan dra och släppa den från din webbläsare efter att du har laddat ner den, eller kopiera och klistra in den. När kopieringen är klar kommer Pico att starta om automatiskt och du kommer inte att se något USB-minne längre.

Obs: Om du vill använda CircuitPython använder du naturligtvis CircuitPython UF2-filen istället i det här steget.

Efter omstart är Pico borta från Windows enhetshanterare

Pico kör nu (efter omstarten) MicroPython, som tillhandahåller en serieport (COM-port) via USB. (I tekniska termer är detta USB-enhet klass 02 = Kommunikation och CDC-kontroll och USB-enhet SubClass 02).

Ansluta till Pico, Windows 10

Windows 10 gör det enkelt för oss att ansluta till Pico, eftersom den nödvändiga COM-Port-drivrutinen (usbser.inf) automatiskt installeras och aktiveras åt dig.

För att kontrollera vilken COM-port den är på, öppna enhetshanteraren:

Öppna enhetshanteraren genom att skriva enhet i Windows-sökningen och klicka på Enhetshanteraren

Här kan du se den nya USB Serial Device, med COM-portnumret (som du behöver om en stund för att ansluta), under Portar (COM & LPT).

En ny seriell enhet har dykt upp, som gör att du kan ansluta till Pico

För att dubbelkolla att det verkligen är Pico som kör MicroPython kan du göra följande:

Klicka på View och välj Devices by Container:

I Enhetshanteraren kan du visa enheter i olika vyer

Här ser du en post "Board in FS mode", med de två noderna "USB Composite Device" och "USB Serial Device (COM3)". COM3 är viktig, eftersom du behöver använda den för PuTTY (se nedan).

Vi kan undersöka enheterna ytterligare genom att högerklicka på dem och välja lämplig egenskapspost från snabbmenyn. Egenskaperna för Board i FS-läge är tomma:

USB Composite Device visar "Board in FS mode" som den bussrapporterade enhetsbeskrivningen:

Obs: detta är Pico som kör MicroPython. När du flashar om den med annan programvara kommer den att visa andra resultat här!

Den seriella USB-enheten i sig kommer att visa några intressanta egenskaper:

Den bussrapporterade enhetsbeskrivningen är "Board CDC".

Obs: Om du använder CircuitPython kommer kortets enhetsbeskrivning att vara "CircuitPython CDC Control" i stället för "Board CDC".

Standardportinställningarna är 9600 bitar per sekund, 8 databitar, ingen paritet, 1 stoppbit, ingen flödeskontroll - och de fungerar (se nedan)
USB-klassen är 02 och USB-underklassen är 02

Om du vet vad du letar efter är hårdvaru-ID:n (VID = leverantörs-ID och PID = produkt-ID) användbara:

VID_2E8A -> leverantörens id är 2E8A (i hex) eller 11914 (i decimal), vilket är Raspberry Pi

PID_0005 -> produkt-ID är 5som kortet kommer att visa när MicroPython körs (standardprodukt-ID är 3)

Sidenote: Felsökningslogg för Chrome Browser

Denna information kan också hämtas med hjälp av webbläsaren Chrome.

chrome://device-log

kan du se de enheter som för närvarande är anslutna

I skärmdumpen ovan ser du utdata från Chromes enhetslogg, som visar hur Pico dyker upp som "Raspberry Pi", "RP2 Boot" innan den flashas med MicroPython, och som "MicroPython", "Board in FS mode". Lägg märke till de olika produkt-id:n!

Tillbaka till Windows 10:

Som du ser i skärmdumpen ovan installerade Windows 10 automatiskt usbser (USB Serial Driver) åt dig - så att du kan komma igång med Pico omedelbart.

PuTTY

PuTTY är en telnet / SSH-klient. Du kommer att använda den för att ansluta till Pico och prata med MicroPythons REPL. Ladda ner PuTTY här. (Du kan använda 64-bitars MSI Windows Installer för de flesta Windows 10-installationer).

Öppna PuTTY. Ange rätt inställningar:

  • Anslutningstypen måste vara inställd på Serie
  • Serial Line måste ställas in på det som din undersökning ovan gav. I mitt fall är detta COM3. I ditt fall kommer det troligen att vara något annat!
  • Hastigheten kan lämnas på 9600 för tillfället

Klicka på Open, så öppnas en terminal:

Tryck en gång på Enter för att få den inledande prompten

Sedan kan du börja skriva Python-kod efter prompten, som tolkas omedelbart. Testa att skriva in det klassiska "Hello world":

print("Hello world!")

MicroPython kommer att svara med

Hej, världen!

som förväntat 🙂 🙂

Nu när den första kontakten är etablerad önskar jag dig en trevlig kodning!

Thonny: en Python IDE, fungerar med Pico!

Att använda PuTTY är inte särskilt bekvämt för längre sessioner, eller när du vill ladda in mycket kod i din Pico. Lyckligtvis finns open source-programmet Thonny (som installeras som standard på Raspberry Pi OS) även för Windows och integrerar stöd för Pico (MicroPython och CircuitPython)

Steg ett

Ladda ner Thonny häroch installera den

Steg två

Anslut din Pico enligt beskrivningen ovan - den ska nu ha ett COM-nummer - om du vill kan du testa med PuTTY-metoden som beskrivs ovan om du kan nå din Pico.

Steg tre

Starta Thonny och klicka på Verktyg menyn, välj Alternativ

Den vanliga startskärmen i Windows, menyn Verktyg, välj Alternativ här.

Steg fyra: ställa in Pico som tolk

Klicka på fliken Interpreter. Du kommer att se den här skärmen som standard:

Samma tolk som kör Thonny (standard) är standardtolken Interpeter

Klicka och välj MicroPython (Raspberry Pi Pico)

Stöd för MicroPython (Raspberry Pi Pico) är inbyggt i Thonny

Obs: om du använder CircuitPythonbehöver du istället välja "CircuitPython (generisk)" från denna rullgardinsmeny.

Du kan låta porten vara "försök att upptäcka porten automatiskt" eller ange en specifik port (vi har sett ovan hur rätt portnummer kan fastställas).

Försök att upptäcka porten automatiskt

Porten ska fortfarande visas i rullgardinsmenyn, så det kan vara en bra idé att dubbelkolla att den finns där:

på min dator är Board CDC (Pico med MicroPython) på porten COM5

Jag låter det vara "försök att upptäcka port automatiskt". Klicka på OK för att spara inställningen.

Din skärm bör nu se ut så här:

Observera MicroPython-meddelandet, med Raspberry Pi Pico med RP2040

Steg fem: test

Nu kan du testa kommunikationen med Pico.

Typ

print("Hello world")

i MicroPython-prompten och tryck på Enter

Hej världen, på picockpit.com-vis 🙂

Du kommer att se att Pico svarar dig.

Grattis, du har lyckats ansluta Thonny till Pico i Windows!

Mer komplexa skript: Blinka en lysdiod med Thonny

REPL (read evaluate print loop) som du just har sett är bra, men för mer komplexa projekt vill vi gärna ange källan först, eller ladda den från en fil.

Det är detta som den övre delen av Thonny-fönstret kan användas till.

Ange din kod. I mitt exempel blinkar vi med den inbyggda LED-lampan (som är hårdvarans motsvarighet till Hello World!) och loopar för evigt.

import time
from machine import Pin
print("Welcome to Pico example 2, blinking an LED")
led = Pin(25, Pin.OUT)
# For demo purposes, we have an infinite loop here
while True:
    led.high()
    time.sleep(0.5)
    led.low()
    time.sleep(0.5)

Var uppmärksam på korrekt indragning i Python (blanksteg används för kontrolländamål i Python!)

Koden för att blinka den inbyggda LED-lampan

Klicka nu på "kör" -knappen

Thonny kommer att fråga dig var du ska spara till

Spara till den här datorn eller Raspberry Pi Pico?

Välj Raspberry Pi Pico:

Jag har valt att döpa filen till hello.py - Klicka på OK för att spara den

När du trycker på OK-knappen börjar din kod att exekveras. Den inbyggda LED-lampan på Pico bör börja blinka och du ser utmatningen i Shell:

%Run -c $EDITOR_CONTENT

Observera: Jag behövde inte skriva in kommandot %Run -c $EDITOR_CONTENT, det gjorde Thonny själv. Utdata nedan är från vår kod.

CircuitPython på Thonny på Windows

Följ samma steg, men välj CircuitPython (generisk) som tolk.

Thonny-skalet kommer att visa dig en annan bekräftelse:

Det står så här: Adafruit CircuitPython 7.0.0 den 2021-09-20; Adafruit Feather RP2040 med rp2040
Adafruit CircuitPython 7.0.0 den 2021-09-20; Adafruit Feather RP2040 med rp2040

Windows 8.1

Raspberry Pi Pico är "Board CDC", och visas i ett feltillstånd

Windows 8.1 laddar INTE automatiskt den seriella drivrutinen och visar enheten i ett feltillstånd.

Obs: med CircuitPython kommer namnet på enheten att vara "CircuitPython CDC control" istället. Samma procedur.

CircuitPython CDC-styrning i Windows 8.1

Så här ser egenskaperna ut för Board CDC (den Pico som kör MicroPython):

Det står att drivrutinerna för den här enheten inte har installerats (kod 28).

En lösning för att lösa detta problem är Zadig-verktygsom du kan ladda ner gratis:

Lystring! Ett antal virusskannrar verkar vara överens om att installer_x64.exe som finns i Zadig 2.7 har "Trojan.Tedy". Kanske är detta ett falskt alarm, dock: Jag rekommenderar att du använder Zadig-2.5.exe istället, vilket inte gav mig dessa varningar (bara verifierad en andra gång). Bättre att vara på den säkra sidan än att vara ledsen!

Zadig hjälper dig att installera generiska USB-drivrutiner så att du kan komma åt USB-enheter.

I vårt fall vill vi ha drivrutinen USB Serial (CDC).

Välj Board CDC (Interface 0) från rullgardinsmenyn ovan, USB Serial (CDC) i det andra fältet. Klicka på Installera drivrutin.

Efter installationen kommer du att se att drivrutinen nu är inställd på usbser (v1.0.0.0):

Och du kommer att kunna ansluta, som jag har beskrivit i Windows 10, med hjälp av rätt COM-portnummer:

Enhetshanteraren visar kortet CDC nu med drivrutin
Hello world för MicroPython på Pico med Windows 8.1

sidenote:

Här är dialogrutan som visar libwdi som drivrutinstillverkare

Pico/Serial-port på Windows 7

Enligt en kund, Zadig hjälpte till att installera serieportdrivrutinen på Windows 7 också, och Pico var användbar efteråt! Var noga med att använda Zadig 2,5, eftersom den nyare Zadig 2.7 flaggades av min virusscanner under drivrutinsinstallationen. (Jag vet inte varför, men det är bäst att ta det säkra före det osäkra - den gamla fungerar)

Om du behöver en steg-för-steg-guide kan du kolla in guiden för Windows 8.1 ovan - det bör vara ungefär samma sak på en Windows 8.1-maskin.

Installera bibliotek och programmera ett CircuitPython RP2040-kort i Windows

Om du t.ex. använder en Adafruit Feather RP2040 kanske du vill använda CircuitPython på den. Adafruit har en NeoPixel RGB på den, vilket kräver att bibliotek installeras i lib mappen på enheten.

(Obs: Ladda ner biblioteken här - klicka på länken "Download Project Bundle").

När du extraherar mappen med projektpaketet kommer du att se två olika undermappar med CircuitPython 6.x och CircuitPython 7.x

Jag använder CircuitPython 7.x-versionen här, eftersom jag flashade 7.0.0 CircuitPython-version.

Du kommer att märka en enhet som heter "CIRCUITPY" i din Explorer:

CIRCUITPY-enhet och dess ursprungliga innehåll (lib, boot_out.txt, code.py)

The lib mappen är tom med en ny installation av CircuitPython. Med hjälp av Windows Explorer kan vi enkelt kopiera och klistra in filer här.

Kopiera de nödvändiga biblioteken från den nedladdade lib-mappen till lib-mappen för CIRCUITPY:

kopiera de nödvändiga biblioteken till lib-mappen

Nu kan vi också skriva över code.py:

ersätta code.py

Med hjälp av Thonny kan vi redigera och köra filen code.py. Klicka på öppna-ikonen i Thonny och välj "CircuitPython device" i dialogrutan "Where to open from":

Välj CircuitPython-enhet här

Och här kan du öppna code.py:

Klicka på code.py och OK

Nu bör ditt Thonny-fönster se ut ungefär så här:

code.py visas längst upp, Shell visas längst ner

Tryck på F5 på tangentbordet eller klicka på körikonen

kör-ikonen

Om allt gick bra ska NeoPixel RGB LED på din Adafruit Feather RP2040 nu börja blinka i olika färger. Grattis 🙂 🙂

Nu kan du gå vidare och leka med skriptet - kanske kan du ändra färgerna, eller tiden mellan färgbytena? Eller lägga till andra funktioner.

För att kunna köra ditt modifierade skript, tryck Ctrl + C i Shell (eller välj Run > Interrupt Execution i Thonny-menyn). Nu kan du ladda upp ditt skript igen.

En bra sak för felsökning är att du får konsolutmatning med Thonny, så du kan använda print-satser för att mata ut information:

Thonny matar ut utskriftssatser från Adafruit Feather RP2040

Adafruit CircuitPython-paket

Adafruit tillhandahåller en bekväm nedladdning av flera bibliotek i en ZIP. Ladda ner motsvarande adafruit-circuitpython-bundle-7.x.-mpy eller -6.x.mpy här. Du kan installera flera eller alla bibliotek som diskuterats ovan helt enkelt med Windows Explorer. En komplett uppladdning av alla bibliotek skulle vara cirka 1,2 MB stor, Adafruit Feather RP2040 har tillräckligt med utrymme för att tillåta detta. Kopiering kan ta ett par minuter.

Diverse anteckningar

Kan jag använda procedurerna i den här guiden för CircuitPython också?

Ja, absolut, ja. Du kan till exempel använda Zadig på Windows 8.1 (se beskrivningen ovan för detaljer. Använd version 2.5.730 av Zadig!). Du kommer att leta efter en "CircuitPython CDC control"-enhet i stället för "Board CDC"-enheten.

Zadig för CircuitPython CDC-styrenheten

Drivrutinsinstallation misslyckas med Zadig?

Detta kan bero på antivirusprogram. Kanske ett falsklarm, men jag kan inte vara säker på det. Min virusscanner (Bitdefender) säger följande till mig:

"Die Datei C:\Users\Max\usb_driver\installer_x64.exe ist mit Gen:Variant.Tedy.11444 infiziert und wurde in die Quarantäne verschoben. Wir empfehlen die Durchführung eines System-Scans, um weitere Infektionen auszuschließen."

Ett antal virusskannrar verkar vara överens om att installer_x64.exe (en del av USB-drivrutinen) har "Trojan.Tedy". Jag rekommenderar att du försöker använda Zadig-2.5.exe istället. Som du kan ladda ner här. Jag har använt Zadig-2.5 för att installera en CircuitPython USB-seriell drivrutin på min Windows 8.1-installation (som är min huvudmaskin).

Hur stoppar jag kodexekvering på Pico i Thonny?

Klicka in i Shell och tryck på Ctrl+C. Detta bör stoppa den aktuella kodkörningen:

KeyboardInterrupt stoppade koden

Upprepning av tidigare uttalanden i Thonny

Det är bekvämt att köra samma kommando igen - tryck på upp-tangenten på tangentbordet i shell-prompten för att få fram en historik över tidigare kommandon.

Hur vet jag när min Pi Pico är bortkopplad från Thonny?

Du får ett felmeddelande när du försöker köra koden, ungefär så här:

Fel vid förfrågan om globala variabler, serial.serialutil.SerialTimeoutException: Tidsgräns för skrivning

Det innebär att Thonny inte kan skriva till den serieport som Pico förväntas vara ansluten till.

Kunde inte hitta enheten automatiskt fel i Thonny

Om du får följande felmeddelande:

Kunde inte hitta enheten automatiskt.
Kontrollera anslutningen (se till att enheten inte är i bootloader-läge) eller välj
"Konfigurera tolk" i tolkmenyn (nedre högra hörnet av fönstret)
för att välja en specifik port eller en annan tolk.

Kontrollera att du har valt rätt tolk. Om din enhet kör CircuitPython istället för MicroPython måste du välja CircuitPython (generisk) som tolk i Thonny. Se relevant information i den här artikeln för instruktioner.

Dina tips för Pico/MicroPython på Windows?

Låt oss veta i kommentarerna om du har några andra tips för att komma igång med Pico och MicroPython på Windows, vi uppdaterar artikeln därefter 🙂

Njut av din Pico och ha kul med de fantastiska projekt du kan göra med den!

Fler blogginlägg om Pico på PiCockpit

Om du tyckte om att läsa den här artikeln kanske du också tycker om att läsa följande:

10 Kommentarer

  1. Gokhan Cinoglu den mars 24, 2021 kl 10:01 f m

    Jag har Win 8.1 och det här är den enda webbplatsen som har lösningen för COM-problem. Tack så mycket mycket.

  2. Shubham Chauhan den juni 7, 2021 kl 6:25 e m

    Kan du snälla dela länken till artikeln där det finns en lösning för Board CDC i Windows 8.1

    • raspi berry den november 21, 2021 kl 9:16 e m

      Den här artikeln som du läser beskriver hur du använder Board CDC på Windows 8.1 - använd Zadig-verktyget i version 2.5.

  3. Pablo Cervantes den juli 12, 2021 kl 7:01 e m

    Tack så mycket, Windows 7 64 bits fungerar smidigt.

  4. Franckeno den december 19, 2021 kl 10:15 f m

    Ett stort tack för denna handledning!

  5. Jajcio den maj 5, 2022 kl 4:32 e m

    Mycket trevlig handledning Du sätter kaffe på bordet som vi säger i Polen, vad betyder utan att slå om busken. Storartat!

  6. Jerry Bee den juli 28, 2022 kl 2:42 f m

    Jag behöver hjälp. Min Windows 11 visar bara pico som "bärbar enhet". Putty kan inte hitta det på grund av detta, så jag får ett fel att det inte kan fin sökvägen.

    Jag vet inte hur jag ska komma förbi det här.

    Tack!

  7. Jerry den maj 18, 2023 kl 11:42 f m

    Detta var en bra introduktion för mig! Tack för det!

  8. silvio den juli 31, 2023 kl 7:53 e m

    Hola muy bueno, consulto x la inquietud que se me ha presentado
    si despues de subir mi codigo a mi pi pico, y la coloco en una placa para que ejecute una tarea x,
    si cualquier otro que no sea yo sacara la pi pico de la placa y la conectara a una pc o notebook,
    podria leer el codigo que esta en la pi pico a traves por ejemplo de Thonny dando click al icono de abrir carpeta y seleccionando abrir lo que esta en la pi pico.?
    Finns det något sätt att göra så att du inte läser?
    tack

  9. Dahray den juli 12, 2024 kl 9:48 e m

    Putty och zadig fungerade båda för mig. Utmärkt handledning.

Lämna en kommentar