Lock in Path A and hardware choice for Joy-Con ESP32 bridge

Path A (fully wireless: BT Classic host + BLE HID peripheral) is the
chosen architecture. Bridge will be self-powered off a LiPo in a
3D-printed case and sit next to the phone — no cables to the phone at
all. Hardware picked: ESP32-WROOM-32 USB-C dev board (original ESP32
silicon, has BT Classic, CP2102 onboard). Path B (USB-CDC serial) kept
in the doc as a fallback if dual-mode BT coexistence proves painful
during bring-up.
This commit is contained in:
2026-04-11 19:45:38 -04:00
parent 2e1c80b7c2
commit 155f0f209b

View File

@@ -1,8 +1,29 @@
# Joy-Con ESP32 Bridge — Design Notes
Design sketch for replacing the 8BitDo USB Wireless Adapter 2 with a DIY
Design for replacing the 8BitDo USB Wireless Adapter 2 with a DIY
ESP32-based Joy-Con bridge. Not yet implemented — this doc captures the
plan so it's ready to pick up later.
plan so it's ready to pick up when the hardware arrives.
## Decisions
- **Chosen architecture: Path A (fully wireless).** The bridge pairs with
the Joy-Con over BT Classic, then re-advertises itself to the phone as
a BLE HID gamepad. No cable between the phone and the bridge. The
bridge runs off its own battery (LiPo + charging circuit, or a small
USB power bank).
- **Chosen hardware: ESP32-WROOM-32 USB-C dev board**
([Amazon.ca link](https://www.amazon.ca/ESP-WROOM-32-NodeMCU-Bluetooth-Development-Microcontroller/dp/B0CHBMFJBQ)).
Original ESP32 silicon (BT Classic + BLE, dual-mode radio), CP2102
USB-serial for programming, USB-C for power + flashing.
- **Form factor plan:** 3D-printed case housing the ESP32 + a LiPo
battery + a small TP4056-style USB-C charge/protection board. Sits on
the couch next to the phone, pairs with the Joy-Con, connects to the
phone wirelessly.
- **Path B (USB serial) is the fallback.** If the dual-mode BT
coexistence on the ESP32 turns out to be too painful, we can fall back
to sending button state over the on-board CP2102's USB serial —
everything on the Joy-Con side is identical, and the app-side changes
for a USB-CDC reader are documented below.
## Why