PicoWiFiModemUSB — volledige functielijst
USB CDC WiFi-modem voor de Raspberry Pi Pico W · Hayes AT-commando's · TLS-terminatie · GPL-3.0-licentie
Deze pagina somt elke functie op. De GitHub-repository is de gezaghebbende, actuele bron; de AT-commandoreferentie en de TLS / HTTPS-gids behandelen het gebruik.
Inhoud
1. USB CDC-interface
Native serieel over USB
Native USB CDC seriële interface — geen RS-232-hardware nodig. Een kale Pico W volstaat. De Pico
meldt zich aan als een seriële poort (/dev/ttyACM* op Linux, een COM-poort op Windows). Verbind met een
willekeurige seriële terminal (picocom -b 115200 /dev/ttyACM0, minicom, PuTTY). USB CDC negeert de
werkelijke baudrate, maar de AT-snelheid (AT$SB) moet overeenkomen met je terminal bij UART-achtige
opstellingen.
2. Hayes AT-commando's
Volledige commandoset
Hayes AT-commandoset: bellen (ATDT), opnemen (ATA), snelkeuze
(AT&Z/ATDS), Telnet, status (ATI), NIST-klok (ATRD/ATRT),
flow control (AT&K), DTR-afhandeling (AT&D). Meerdere commando's per regel, woord-/getal-resultaat
codes (ATV) en uitgebreidheid (ATX), online-escape (+++), herhalen (A/).
- Volledige referentie: alle AT-commando's →
3. 2,4 GHz WiFi
Station-modus
2,4 GHz WiFi station-modus, inloggegevens (AT$SSID=/AT$PASS=) opgeslagen in
flash. Scan naar netwerken binnen bereik (AT$SCAN: één toegangspunt per regel, geïndexeerd,
ontdubbeld op SSID) — bedoeld om een genummerd menu aan te sturen (zie de Oric-configurator wificonf.bas).
Automatisch opnieuw verbinden bij inschakelen, mDNS-naam (AT$MDNS=), inkomende TCP-server (AT$SP=),
wachtwoord voor inkomende verbindingen.
4. TLS / HTTPS in de dongle
TLS 1.2-terminatie (mbedTLS)
De kernbijdrage van deze fork. De Pico W fungeert als modem én als het TLS-eindpunt: de
hostcomputer ziet nooit versleuteld verkeer. ATGET https://… voert de TLS 1.2-handshake uit en streamt
vervolgens het ontsleutelde antwoord over de seriële verbinding — zelfs een 8-bits machine kan HTTPS-diensten
bereiken. Het commando ATPOST maakt HTTP/HTTPS POST-verzoeken mogelijk.
Certificaatverificatie
Standaard staat verificatie uit (AT$CV0, onveilig). Om het servercertificaat te verifiëren
tegen een vertrouwde root: upload een CA in PEM-vorm (AT$CA=), schakel in (AT$CV1 — geeft
ERROR terug als er geen CA aanwezig is, zodat het nooit open faalt), sla op (AT&W). Een verbinding
waarvan het certificaat niet naar die CA leidt, wordt geweigerd. Er is geen ingebouwde klok: vervaldatums van
certificaten worden niet gecontroleerd; vertrouwen wordt vastgesteld via de CA-keten en de hostnaam (SNI). Details: TLS /
HTTPS-gids.
5. Flashopslag (LittleFS)
Instellingen & CA in flash
Ingebouwde flashopslag via LittleFS (instellingen + CA-certificaat), in het gebied dat de
firmware niet gebruikt. Opslaan in NVRAM (AT&W), terugzetten naar standaardwaarden (AT&F),
huidige/opgeslagen instellingen tonen (AT&V).
6. Architectuur
De Pico W is zowel de modem als het TLS-eindpunt; de host ziet altijd alleen platte tekst.
Oric 8-bit LOCI Pico W modem Internet
┌────────────┐ bus ┌────────┐ USB CDC ┌────────────────┐ WiFi ┌──────────┐
│ host / │◀──────▶│ LOCI │◀───────▶│ PicoWiFiModemUSB│◀──────▶│ server │
│ software │ │ │ serial │ + mbedTLS │ TLS │ (HTTPS…) │
└────────────┘ └────────┘ └────────────────┘ └──────────┘
└─ cleartext serial ─┘ └──── TLS terminated here ────┘
Rol van LOCI — LOCI is de USB-hostinterface voor 8-bits Oric- computers; hij draagt de gewone AT-commando-/data-seriële stroom over USB. Hij is transparant ten opzichte van TLS: hij verwerkt altijd alleen al ontsleutelde bytes, dus het toevoegen van HTTPS vereiste geen wijziging aan de LOCI-kant — alle cryptografie zit in de firmware. (Elke host met USB-CDC-ondersteuning werkt op dezelfde manier; LOCI is simpelweg de Oric-gerichte.)
7. Installatie & flashen
De firmware flashen
Bij elke release is een voorgebouwde firmware bijgevoegd. Ontkoppel de Pico W, sluit hem dan weer aan terwijl je
BOOTSEL ingedrukt houdt (hij verschijnt als een USB-schijf genaamd RPI-RP2), kopieer wifi_modem-vX.Y.Z.uf2
erop; de Pico herstart en meldt zich aan als een seriële poort.
- Opnieuw flashen zonder BOOTSEL — de seriële poort openen op 1200 baud (
stty -F /dev/ttyACM0 1200) herstart de Pico rechtstreeks naar BOOTSEL, zonder loskoppelen.
8. Eerste configuratie
Standaard seriële configuratie: 9600 bps, 8N1.
AT$SSID=uw WiFi-netwerknaam stel het netwerk in om bij inschakelen mee te verbinden
AT$PASS=uw WiFi-netwerkwachtwoord stel het wachtwoord in (hoofdlettergevoelig)
ATC1 nu verbinden
AT&W instellingen opslaan in NVRAM
Na AT&W verbindt de modem automatisch bij inschakelen en kan hij uitbellen (ATDT) of pagina's
ophalen (ATGET). Opties: seriële snelheid (AT$SB=), formaat (AT$SU=), Telnet
(ATNET), flow control (AT&K).
9. Telnet (echt vs nep)
Twee Telnet-modi
Bij echt Telnet wordt een CR verzonden door de modem gevolgd door een NUL; sommige BBS-implementaties
verwijderen die NUL niet (gebruik nep-Telnet daarvoor). Inkomend verwijdert echt Telnet een NUL na een CR;
nep-Telnet laat hem door. Instelling: ATNET0 (uit), ATNET1 (echt), ATNET2 (nep), of een
prefix +/=/- op ATDT voor de betreffende oproep.
10. Bouwen
cmake -S src -B src/build
cmake --build src/build -j
# firmware produced at: src/build/wifi_modem.uf2
# Wokwi variant (UART console): -DWOKWI=1
De Pico SDK en afhankelijkheden zijn meegeleverd onder src/; de ARM-toolchain moet geïnstalleerd zijn.
11. Afstamming & licentie
Directe afkomst (deze fork staat onderaan):
- jsalin/esp8266_modem — Jussi Salins oorspronkelijke virtuele ESP8266-modem.
- mecparts/RetroWiFiModem → mecparts/PicoWiFiModem — de Paul Rickards / mecparts-afstamming, geport naar de Pico.
- sodiumlb/PicoWiFiModemUSB — directe ouder: de native USB-CDC-variant voor de Pico W, ontworpen om met LOCI samen te werken.
- benedictemarty/PicoWiFiModemUSB — deze fork: voegt TLS/SSL-terminatie (mbedTLS) toe en de commando's
ATGET https,AT$CA,AT$CV.
Licentie GNU GPL v3.0 — een afgeleid werk van de bovenstaande projecten, verspreid onder dezelfde voorwaarden.