A hardware replacement for Windows Virtual Serial Port Emulator (VSPE). An ESP32-P4 USB device that presents 6 virtual COM ports (CDC-ACM) over High-Speed USB to a host PC, with a web-based visual node editor for routing data and signals between USB ports, physical UARTs, and TCP sockets.
No drivers needed — CDC-ACM is natively supported on Windows, macOS, and Linux.
Requires ESP-IDF v5.5+.
# Source ESP-IDF environment
. ~/esp/esp-idf/export.sh
# Set target (first time only)
idf.py set-target esp32p4
# Build
idf.py build
# Flash
idf.py -p /dev/ttyUSB0 flash monitor
[Host PC] ──HS USB──> [ESP32-P4] ──UARTs──> [Serial Devices]
│
├──Ethernet (IP101)──> [LAN]
│
└──SDIO──> [ESP32-C6] ──WiFi──> [WLAN]
│
[Web GUI / TCP ports]
| Component | Description |
|---|---|
port_core |
Port abstraction layer — common interface for all port types |
port_cdc |
USB CDC-ACM implementation via TinyUSB (6 ports, HS USB) |
port_uart |
Hardware UART port driver |
port_tcp |
TCP socket port (server/client) |
routing |
Route engine — bridge, clone, merge with signal routing |
config_store |
NVS flash persistence |
wifi_mgr |
WiFi STA via ESP32-C6 companion (ESP-Hosted, SDIO) |
ethernet_mgr |
Ethernet (internal EMAC + IP101 PHY) |
dns_server |
Captive portal DNS redirector (AP mode) |
web_server |
HTTP server, REST API, WebSocket |
status_led |
RGB LED status indicator |
frontend/ |
Svelte visual node editor SPA |
Work in progress. USB CDC (6 ports, HS), WiFi (ESP-Hosted), and Ethernet build successfully. Hardware testing in progress.
MIT