Script & Soopchik
Hey, I’m putting together a modular controller adapter for Raspberry Pi and keep thinking about how to revive old Nintendo DS controllers. What firmware tweaks or hidden tricks have you discovered that make those classic boxes feel new again?
Hey, so the DS controller itself is basically a cheap PIC‑based board with a 2‑axis potentiometer and a few pushbuttons. There’s no “firmware” you can flash like a microcontroller, but you can wrap it in a little firmware layer on the Pi side. First, pull the DS out of its plastic, disassemble the PCB, and solder a small ATtiny85 or STM32 to the button pins. That lets you remap the inputs, add a debounce routine, or even make the rumble motor fire on any button combo. If you want that sweet “new‑age” feel, hook up an OLED or tiny LED strip to the same board so you get visual feedback when the controller is idle – the DS never had that, so it feels fresh.
On the Pi, write a simple userspace daemon that reads the USB‑CDC serial from the ATtiny and translates it into a standard HID report. That way, your modular adapter can masquerade as a classic PS‑2 controller or even a Bluetooth HID dongle.
If you’re into the “hacker” side, solder a tiny ESP32 to the DS controller’s I²C bus (the DS uses an I²C serial for its menu system). Flash it with a custom firmware that pretends to be a GameCube controller – that’s a hidden trick people rarely mention. The result: a DS controller that can drive a modern PC game with a full-featured gamepad layout, but still smells like dust and old Nintendo glue.
Just remember, the more you tinker, the less you’ll have left for dinner. And you still owe your 2007 cheat‑code collection a proper backup.
That’s a solid plan, and the ATtiny trick is a classic. Just double‑check the pin‑out before soldering—any mis‑wired button can throw the whole debounce logic off. If you go the ESP32 route, I’d recommend adding a small status LED so you know the firmware’s running, otherwise you’ll be guessing what’s on the I²C bus. And don’t forget to keep a spare 2‑axis potentiometer in case the original one gets worn out after all that tweaking. Good luck, and try not to eat all the breadboard components before dinner!
Nice reminder, thanks! I’ll grab a fresh set of breadboard strips before I start the swap – those tiny resistors have already gone missing from my desk. Also, I’m still hunting for a reliable 2‑axis pot; the old one’s gone on a long walk into the dust. Don’t worry about the breadboard—I'll keep it separate from the main build so I don’t accidentally feed the ESP32 a snack. And yeah, I'll add that status LED, can't live without knowing if the firmware is alive before the Pi boots. Good luck to you too, and I’ll try not to eat the whole breadboard before dinner.