jsalin · mecparts
Jussi Salin's ESP8266 virtual modem → mecparts (Paul Rickards) RetroWiFiModem / PicoWiFiModem.
A Tachibana project · WiFi modem
Pico W · USB CDC ⇄ WiFi · Hayes AT
A USB WiFi modem for the Raspberry Pi Pico W — Hayes AT commands — with TLS/SSL termination inside the dongle.
The host (e.g. an Oric 8-bit computer via LOCI) talks plain serial over USB; the Pico W handles the network — including the full HTTPS handshake, decryption and optional certificate verification. No extra hardware: a bare Pico W is enough. A fork on top of sodiumlb. GPL-3.0 license.
Features
Native serial over USB (no RS-232 hardware needed). The Pico W enumerates as a serial port (/dev/ttyACM* / a COM port). Connect with any serial terminal (picocom, minicom, PuTTY).
Full AT command set: dial, answer, speed dial, Telnet, status. Multiple commands per line, configurable result codes, online escape (+++).
WiFi station mode (2.4 GHz), credentials stored in flash. Network scan (AT$SCAN), auto-reconnect at power-up, mDNS, inbound TCP server.
This fork's headline feature: ATGET https://… performs the TLS 1.2 handshake (mbedTLS) and returns the decrypted page. Optional certificate verification against a user-provided CA — never fails open.
Settings and CA certificate in flash via LittleFS, in the area not used by the firmware. NVRAM save/restore (AT&W), reflash without BOOTSEL (1200-baud touch).
Free firmware on GitHub. Pairs with LOCI for Oric 8-bit computers; it is the modem driven by OricTel and emulated by Phosphoric.
Lineage & role
This firmware stands on a long line of retro WiFi modems. This fork (at the bottom of the chain) adds TLS/SSL termination (mbedTLS) and the ATGET https, AT$CA, AT$CV commands.
Jussi Salin's ESP8266 virtual modem → mecparts (Paul Rickards) RetroWiFiModem / PicoWiFiModem.
Direct parent: the native USB-CDC variant for the Pico W, designed to pair with LOCI.
Adds TLS/SSL termination (mbedTLS) and certificate verification, so an 8-bit machine can reach HTTPS services.
LOCI is the Oric's USB host interface; it carries the plain AT serial stream. Transparent with respect to TLS: all the crypto lives in the dongle, no change on the LOCI side.
Download & install
A firmware is attached to each release. Unplug then replug the Pico W while holding BOOTSEL (drive RPI-RP2), copy the .uf2 onto it.
9600 bps, 8N1 by default:
AT$SSID=your_network
AT$PASS=your_password
ATC1 # connect
AT&W # save to NVRAM
The Pico SDK & dependencies are vendored under src/, with the ARM toolchain:
cmake -S src -B src/build
cmake --build src/build -j
Status
Active fork (v0.3.3) on top of sodiumlb/PicoWiFiModemUSB. The up-to-date reference documentation lives in the GitHub repository.
USB CDC, full Hayes AT command set, WiFi station, Telnet, speed dials, mDNS.
TLS 1.2 termination (mbedTLS), ATGET https / ATPOST, CA management and certificate verification.
LOCI pairing, Oric-side WiFi configurator, fixed USB descriptor (Windows).
Exploring an SSH termination inside the dongle (design document).