LodgeNet to USB Adapter (Pico)¶
Nintendo LodgeNet hotel controllers to USB HID gamepad via Raspberry Pi Pico.
Parts Needed¶
- Raspberry Pi Pico (~$4)
- RJ11 6P6C breakout board or cut RJ11 cable
- Hookup wire (22-26 AWG), soldering iron
LodgeNet Connector¶
LodgeNet controllers use a 6-pin RJ11-style connector (GAME port). Only 4 lines are needed:
+-+-+-+-+-+-+-+ GAME
| | | | | | | | 1 DATA (in)
| 1 2 3 4 5 6 | 2 CLK (out)
| | 3 12V
| | 4 CLK2 (out)
+---+---+---+-+ 5 GND
+---+ 6 IR (unused)
Wiring¶
| Pico GPIO | RJ11 Pin | Signal | Direction |
|---|---|---|---|
| GPIO 2 | 1 | DATA | Input (from controller, active-low with pull-up) |
| GPIO 3 | 2 | CLK | Output (idle HIGH) |
| GPIO 4 | -- | VCC | Output (powers controller from GPIO) |
| GPIO 5 | 4 | CLK2 | Output (SNES SR protocol only) |
| VBUS (5V) | 3 | Power | Powers controller (use 5V instead of 12V) |
| GND | 5 | GND | Ground |
The controller is powered via GPIO 4 (VCC output) which the firmware drives HIGH. The original 12V line (RJ11 pin 3) is not needed -- LodgeNet controllers work fine at 5V from the Pico's VBUS rail.
Build and Flash¶
# Build
make lodgenet2usb_pico
# Flash: hold BOOTSEL while plugging in USB, then:
make flash-lodgenet2usb_pico
Output file: releases/joypad_<commit>_lodgenet2usb_rpi_pico.uf2
Testing¶
- Connect the RJ11 cable between the Pico and a LodgeNet controller
- Plug the Pico into a PC via USB
- The adapter auto-detects the controller type (N64, GameCube, or SNES variant)
- The controller appears as a USB HID gamepad
- Open a gamepad tester and verify all buttons and analog sticks register
Supported Controllers¶
The adapter automatically detects and hot-swaps between all three LodgeNet controller types:
| Controller | Protocol | Detection |
|---|---|---|
| LodgeNet N64 | MCU (3-wire serial) | Byte 1 bit 7 set |
| LodgeNet GameCube | MCU (3-wire serial) | Byte 1 bit 6 set |
| LodgeNet SNES | SR (shift register) | Presence bit in SR read |
Notes¶
- The detected controller layout (N64/GameCube face style) is reported via the SInput USB descriptor so the host can display correct button labels
- See LodgeNet input docs for protocol details and full button mapping
- See lodgenet2usb app docs for feature details