Jeff Epler's Adafruit QT Py 2040 Adapter Brings the Classic Nintendo Mouse Out of Retirement
Tested with a modern reproduction, this CircuitPython adapter gets the Mario Paint controller talking to modern hardware.
If you've got a retro Nintendo Mouse lying around but no SNES on which to play around with Mario Paint, Jeff Epler's got the solution: a CircuitPython-powered adapter to give the classic controller USB support.
"The Nintendo Mouse was originally developed as a bundled accessory for Mario Paint," Expler explains. "It has two buttons and an SNES connector. Later, third party games would also use this mouse accessory. Instead of using a difficult-to-source connector and custom PCB, this guide takes the approach of using a SNES controller extension cable which is soldered to the microcontroller board."
Epler's project is based on an Adafruit QT Py RP2040, a compact USB Type-C development board powered by Raspberry Pi's popular dual-core RP2040 microcontroller — though, he notes, it should be easy to reproduce on any other CircuitPython board by simply switching the pins. The wiring, meanwhile, is easy enough: a low-cost extension cable is sacrificed with one end wired to the 3.3V, ground, and SPI pins of the microcontroller board.
Those looking to repeat the project themselves, however, need to heed a warning: Epler's circuit design doesn't include a level-shifter to bump the microcontroller's 3.3V logic up the 5V of a SNES controller. While Epler tested the project successfully on a modern replica of the Nintendo Mouse, at the time of writing it had not been used with original hardware.
The full tutorial, with wiring diagram and source code, is available on the Adafruit learning portal.