-
Notifications
You must be signed in to change notification settings - Fork 12
Client Mode Installation Guide (experimental)
Client mode is used to connect a PS4 controller to a Dreamcast.
NOTE: This mode is a proof-of-concept, so it should not be considered fully-featured or completely working.
Proceed at your own risk! I am not liable for any damage that may occur due to the use of any provided schematics, firmware, or any other recommendations made within this project (see LICENSE.md). There is risk of damage to any attached hardware (ex: USB port, Dreamcast peripheral, or Dreamcast) if circuitry is improperly handled.
The host mode configuration requires a Dreamcast controller plug. You may harvest this from a Dreamcast controller extension cable or from the plug of a Dreamcast controller.

This simple configuration directly ties the GPIO to the connected Dreamcast controller. This makes things more accessible to DIYers, but it has some drawbacks:
- This is insufficient fault protection for faulty/invalid firmware or faulty Dreamcast
- The RP2040/RP2350 doesn't have over-voltage tolerant inputs, so accidental shorting to the 5V line will cause damage
- Hot-swapping should be avoided

This option completely isolates the Maple Bus I/O from the RP2040/RP2350 at the expense of being more complex and less accessible to DIYers. I highly recommend this or something like this for any commercial application. The chip number 74LVC2T45DC made by Texas Instruments or Nexperia (found on digikey.com or mouser.com) is a 2-bit bus transceiver which completely isolates I/O.

Each release will contain multiple uf2 files as described below. Please note that the LED will not be functional if any of the W variants of the hardware is used.
| Binary | Hardware Mode | Compatibility | Notes |
|---|---|---|---|
| client-with-usb-host.uf2* | Client | pico, pico-w, and RP2040-Zero | supporting a single Dualshock4 controller connected to the USB port |
| pico2_client-with-usb-host.uf2* | Client | pico2 and pico2-w | supporting a single Dualshock4 controller connected to the USB port |
*Client mode is no longer deployed in new releases. Last deployed release is Version 1.01.
Hold the BOOTSEL button on the Pico while plugging the USB connection into your PC. A drive with a FAT partition labeled RPI-RP2 should pop up on your system. Open this drive, and then copy the desired uf2 file for either host or client operation here. The Pico should then automatically load the binary into flash and run it. For more information, refer to the official Raspberry Pi Pico documentation.