ValentineStone / pico-gamepad

Raspberry Pi Pico powered smart PS2 gamepad
0 stars 0 forks source link

Did this work for you? #1

Open remy opened 1 year ago

remy commented 1 year ago

I had a similar idea last week and started working on it, and then very quickly found your project.

I've read through the code and mostly follow what's going on - in particular in the PIO file, but I wanted to ask if this actually worked for you?

I've tried the built project on multiple gameboys (two DMGs with IPS mods one without, plus a GBA) and none consistently work. The only time it worked was with an Analogue Pocket.

The reason it wasn't working for me, after I hooked up the digital analyser, I could see that - seemingly randomly - the clock signal suddenly jumps from 8hz to 90hz during some message sends.

Annoyingly I didn't capture a screenshot, but to explain what I mean, this is a "normal" message:

SCR-20230108-gnd-min

But when it was bad, I'd see the clock signal pulse many times whilst the data line was high - which of course then completely throws off the PIO program and the Gameboy as a gamepad just starts firing random button presses.

Any ideas - or did you see the same thing?

ValentineStone commented 1 year ago

Hi, its an old project that I never got to finishing, but the basics did work for me. I used a random cheap USB PS2 controller clone from Aliexpress or something. If I rememeber correctly everything was working fine, the mesages were being recieved and the controller state was printing to the console.

My original idea was to hook the PS2 gamepad to a Pico with a display for configuration, and to that connect a radio module to control custom built vehicles such as cars and drones via channel mapping done on the Pico.

Never got to that part, but the Pico did parse the usb signal, although there was something tricky with it if I remeber correctly. I think I had to not use the Pico's version of the tinyusb host, but had to clone the tinyusb original repo instead, and set that up and change the config around a bunch, because Pico's fork was a few critical commits behind. Hope that was helpfull