busware.de
CDC2NET — Web Flasher USB-Host-CDC → raw-TCP bridge for CUL / TUL / EUL

CDC2NET turns an ESP32-S3 board into a network bridge for the CUL / TUL / EUL stick line: plug a stick into the board's USB-host port, and its serial stream becomes a plain TCP socket on your LAN — the ser2net idea, on-chip. FHEM and friends talk to it the same way they talk to a local CUL, just over host:port.

USB host
Opens any CDC-ACM stick — legacy CUL (LUFA) and the USB-Serial-JTAG of modern C3/C6 devices.
WiFi onboarding
Improv-Serial right after flashing, or a captive portal. Static-IP / DHCP configurable later in the WebUI.
Raw TCP pipe
Transparent byte bridge on :2329, multiple clients fan-out. No protocol framing, no RFC2217.
WebUI + OTA
http://cdc2net.local/ — status, config, and over-the-air firmware updates without USB.

Install CDC2NET on your ESP32-S3

Plug the ESP32-S3 board into USB, click below, and pick the serial port that appears. The browser detects the chip and writes the matching image.


Fresh install — erases all settings · version

Browser requirement: Web Serial only works in Chromium-based desktop browsers — Chrome, Edge, Opera, Brave on macOS / Windows / Linux. Safari, Firefox and all mobile browsers are not supported.
Bridge board: the firmware flashes the ESP32-S3 that does the bridging — not the CUL/TUL/EUL stick. You keep flashing your sticks with their own firmware (culfw / a-culfw); CDC2NET just carries their serial line over the network. Bring-up target is a 16 MB S3 board with a USB-host (OTG) port.

After flashing

  1. Connect & flash — esp-web-tools reads the chip family from the bootloader and writes the factory image (manifest.json) to 0x0 in one shot. Old contents are erased.
  2. WiFi — the device boots into Improv-Serial mode; esp-web-tools offers the WiFi hand-off right after flashing. (If you miss it, the device opens a captive-portal AP.)
  3. Find it — it advertises cdc2net.local on mDNS (plus a unique cdc2net-XXXX.local). Open http://cdc2net.local/ for status, config and OTA.
  4. Use it — plug a stick into the host port and point your software at the raw-TCP port (default 2329). In FHEM:
    define CUL_0 CUL cdc2net.local:2329 1234

Manual install (if Web Serial doesn't work)

Two artefacts you can download and flash with esptool.py:

esptool.py --chip esp32s3 -p /dev/ttyACM0 write_flash 0x0 factory_cdc2net_esp32s3.bin