/USBTo3DO

Connecting USB controler to the 3do

Primary LanguageC

USBTo3DO

Connecting USB controler to the 3do

Goal of the project

My first goal was to plus my 8bitDo M30 controler to the 3do in order to replace the original controler.
As 8bitDo is a xbox360 like controler, it is using a USB vendor class. I found that RP2040 is able to handle a usb host stack using tinyUSB project.
As it has two cores, one can be used to handle the USB while the other one is taking care of PIOs. I got main issue about vendor class which is not well handled yet on tinyUSB. So I forked tinyUSB and I fixed the vendor class to be able to interact with xbox360 like controllers.

On tinyUSB, I found an example about interfacing PS4 controler with HID class. Even if I do not have PS4 controller, I implemented some HID controllers I had at home. But unfortunaltely, I have no PS4 controllers, so this one is not yet supported.

Supported controllers

As of today, it does not support USB HUB. So if you are using a wired controller, you will need an adapter per wired controller. When you plug a USB adpater able to handle multiple controller (like wii adapater, saturn adapter or Xbox360 wireless receiver), then you can connect multiples controllers.

In case you installed the daisy chain connector, you can plug other USB adaptors or original controlers, Daisy chain will work.

What is required

Here is a picture of the v1.0 PCB:

PCB V1.0

How to compile

  • Tested on UBUNTU 20.04

git clone https://github.com/FCare/USBTo3DO.git
cd USBTo3DO
git submodule update --init --recursive
mkdir build;cd build
cmake ../
make -j16

then flash RP204 with the built uf2 file.