PicoWiFiModemUSB — vollständige Funktionsliste
USB-CDC-WiFi-Modem für den Raspberry Pi Pico W · Hayes-AT-Befehle · TLS-Terminierung · GPL-3.0-Lizenz
Diese Seite listet jede Funktion auf. Das GitHub-Repository ist die maßgebliche, aktuelle Quelle; die AT-Befehlsreferenz und der TLS-/HTTPS-Leitfaden behandeln die Verwendung.
Inhalt
1. USB-CDC-Schnittstelle
Native serielle Verbindung über USB
Native serielle USB-CDC-Schnittstelle — keine RS-232-Hardware nötig. Ein nackter Pico W genügt. Der Pico
meldet sich als serieller Port an (/dev/ttyACM* unter Linux, ein COM-Port unter Windows). Verbinden mit einem
beliebigen seriellen Terminal (picocom -b 115200 /dev/ttyACM0, minicom, PuTTY). USB CDC ignoriert die
tatsächliche Baudrate, aber die AT-Geschwindigkeit (AT$SB) muss für UART-artige Aufbauten mit Ihrem Terminal
übereinstimmen.
2. Hayes-AT-Befehle
Vollständiger Befehlssatz
Hayes-AT-Befehlssatz: wählen (ATDT), annehmen (ATA), Kurzwahl
(AT&Z/ATDS), Telnet, Status (ATI), NIST-Uhr (ATRD/ATRT),
Flusssteuerung (AT&K), DTR-Behandlung (AT&D). Mehrere Befehle pro Zeile, Rückmeldecodes als
Wort/Zahl (ATV) und Ausführlichkeit (ATX), Online-Escape (+++), Wiederholung (A/).
- Vollständige Referenz: alle AT-Befehle →
3. 2,4-GHz-WiFi
Stationsmodus
2,4-GHz-WiFi-Stationsmodus, Zugangsdaten (AT$SSID=/AT$PASS=) im
Flash gespeichert. Suche nach Netzwerken in Reichweite (AT$SCAN: ein Zugangspunkt pro Zeile,
indiziert, nach SSID entdoppelt) — gedacht, um ein nummeriertes Menü anzusteuern (siehe den Oric-Konfigurator wificonf.bas).
Automatische Wiederverbindung beim Einschalten, mDNS-Name (AT$MDNS=), eingehender TCP-Server (AT$SP=),
Passwort für eingehende Verbindungen.
4. TLS / HTTPS im Dongle
TLS-1.2-Terminierung (mbedTLS)
Der wesentliche Beitrag dieses Forks. Der Pico W fungiert als Modem und als TLS-Endpunkt: der
Host-Computer sieht niemals verschlüsselten Datenverkehr. ATGET https://… führt den TLS-1.2-Handshake durch und
streamt dann die entschlüsselte Antwort über die serielle Verbindung — selbst eine 8-Bit-Maschine kann HTTPS-Dienste
erreichen. Der Befehl ATPOST ermöglicht HTTP-/HTTPS-POST-Anfragen.
Zertifikatsprüfung
Standardmäßig ist die Prüfung aus (AT$CV0, unsicher). Um das Serverzertifikat gegen eine
vertrauenswürdige Wurzel zu prüfen: eine CA im PEM-Format hochladen (AT$CA=), aktivieren (AT$CV1 — gibt
ERROR zurück, wenn keine CA vorhanden ist, sodass es niemals unsicher offen ist), persistieren (AT&W). Eine
Verbindung, deren Zertifikat nicht auf diese CA zurückführt, wird abgelehnt. Es gibt keine bordeigene Uhr: die Ablaufdaten von
Zertifikaten werden nicht geprüft; das Vertrauen wird über die CA-Kette und den Hostnamen (SNI) hergestellt. Details: TLS-/HTTPS-Leitfaden.
5. Flash-Speicher (LittleFS)
Einstellungen & CA im Flash
Bordeigener Flash-Speicher über LittleFS (Einstellungen + CA-Zertifikat), im nicht von der
Firmware genutzten Bereich. Im NVRAM speichern (AT&W), auf Standardwerte zurücksetzen (AT&F), aktuelle/gespeicherte
Einstellungen anzeigen (AT&V).
6. Architektur
Der Pico W ist zugleich Modem und TLS-Endpunkt; der Host sieht ausschließlich Klartext.
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 ────┘
Rolle von LOCI — LOCI ist die USB-Host-Schnittstelle für 8-Bit-Oric-Computer; sie überträgt den einfachen seriellen Strom aus AT-Befehlen / Daten über USB. Sie ist transparent gegenüber TLS: sie verarbeitet stets nur bereits entschlüsselte Bytes, sodass das Hinzufügen von HTTPS keine Änderung auf der LOCI-Seite erforderte — die gesamte Kryptografie liegt in der Firmware. (Jeder USB-CDC-fähige Host funktioniert auf dieselbe Weise; LOCI ist einfach der Oric-orientierte.)
7. Installation & Flashen
Die Firmware flashen
Jedem Release liegt eine vorgefertigte Firmware bei. Den Pico W abstecken, dann wieder einstecken, während
BOOTSEL gedrückt wird (er erscheint als USB-Laufwerk namens RPI-RP2), die wifi_modem-vX.Y.Z.uf2
darauf kopieren; der Pico startet neu und meldet sich als serieller Port an.
- Neuflashen ohne BOOTSEL — das Öffnen des seriellen Ports bei 1200 Baud (
stty -F /dev/ttyACM0 1200) startet den Pico direkt in BOOTSEL, ohne Abstecken.
8. Erstkonfiguration
Standard-Serienkonfiguration: 9600 bps, 8N1.
AT$SSID=dein_netzwerk Netzwerk, dem beim Start beigetreten wird
AT$PASS=dein_passwort Passwort setzen (Groß-/Kleinschreibung)
ATC1 jetzt verbinden
AT&W im NVRAM speichern
Nach AT&W verbindet sich das Modem beim Einschalten automatisch und kann wählen (ATDT) oder Seiten
abrufen (ATGET). Optionen: serielle Geschwindigkeit (AT$SB=), Format (AT$SU=), Telnet
(ATNET), Flusssteuerung (AT&K).
9. Telnet (echt vs. unecht)
Zwei Telnet-Modi
Bei echtem Telnet folgt auf ein vom Modem gesendetes CR ein NUL; manche BBS-Implementierungen entfernen dieses
NUL nicht (für diese unechtes Telnet verwenden). Eingehend entfernt echtes Telnet ein NUL nach einem CR; unechtes Telnet reicht es
durch. Einstellung: ATNET0 (aus), ATNET1 (echt), ATNET2 (unecht), oder ein
+/=/--Präfix bei ATDT für den jeweiligen Anruf.
10. Bauen
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
Das Pico SDK und die Abhängigkeiten liegen unter src/; die ARM-Toolchain muss installiert sein.
11. Abstammung & Lizenz
Direkte Abstammung (dieser Fork steht am unteren Ende):
- jsalin/esp8266_modem — Jussi Salins ursprüngliches virtuelles ESP8266-Modem.
- mecparts/RetroWiFiModem → mecparts/PicoWiFiModem — die Abstammungslinie Paul Rickards / mecparts, portiert auf den Pico.
- sodiumlb/PicoWiFiModemUSB — direktes Elternprojekt: die native USB-CDC-Variante für den Pico W, entworfen für die Kombination mit LOCI.
- benedictemarty/PicoWiFiModemUSB — dieser Fork: fügt TLS/SSL-Terminierung (mbedTLS) sowie die Befehle
ATGET https,AT$CA,AT$CVhinzu.
Lizenz GNU GPL v3.0 — ein abgeleitetes Werk der obigen Projekte, unter denselben Bedingungen verbreitet.