The NES was one of, if not, the first gaming consoles most of us ever played. That’s why we were all pretty excited to hear Nintendo’s recent plans of releasing the NES Classic Mini. As great as it sounds, though, turns out it’ll only support its 30 pre-loaded games–no Internet downloads, nor any cartridge slots. But leave it to a Maker to come up with a solution! Enter DaftMike, who has built his own shrunken-down, 3D-printed version of the retro system complete with some of the features we all would’ve loved to see with Nintendo’s re-creation.
The DIY system–which is 40% the size of the original–is powered by a Raspberry Pi and an Arduino. It runs on RetroPie emulation software and uses itsy-bitsy NFC tagged cartridges, ranging from Super Mario Bros. to Zelda. When a cartridge is inserted into the machine’s fully-functional slot, an NFC reader scans it, selects that specific game from the Pi’s internal memory, and boots it up onto the screen.
I designed the connections between the Arduino and Pi to use the top 10 GPIO pins so I could mount the Arduino directly to the Raspberry Pi using a 2×5 header. All the electronics would then sit in the case behind the USB ports.
The NFC reader mounts underneath the cartridge tray connected to the Arduino with a piece of flat cable. There’s enough length on it for the case halves to be splayed apart if I need to dismantle the unit and the Arduino ‘lump’ unplugs from the Pi so I can update the ‘firmware.’
DaftMike even rounded out his incredibly-realistic design with a mini, Arduino Pro Micro-based controller–although probably a bit too small for adult hands. (Cool nevertheless!)
In terms of software, an Arduino sketch is used to read the NFC tags and manage the power switching, while a Python script running on the Raspberry Pi is tasked with launching the games. The two communicate over serial.
Those wishing to spark some childhood gaming nostalgia should check out Daftmike’s entire blog post, which provides a full rundown of the build and its inner workings.
[original story: Arduino Blog]