Tachibana

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/).

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 LOCILOCI 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.

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):

  1. jsalin/esp8266_modem — Jussi Salins oorspronkelijke virtuele ESP8266-modem.
  2. mecparts/RetroWiFiModemmecparts/PicoWiFiModem — de Paul Rickards / mecparts-afstamming, geport naar de Pico.
  3. sodiumlb/PicoWiFiModemUSBdirecte ouder: de native USB-CDC-variant voor de Pico W, ontworpen om met LOCI samen te werken.
  4. benedictemarty/PicoWiFiModemUSBdeze 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.

← Terug naar PicoWiFiModemUSB · Technische documentatie →