I was lucky enough to find an NES Classic in store. Walmart worker was a bit shady, felt like he was reluctant to get me one out of inventory in the back but there was another worker there with him that may have been his manager. So after a long awkward pause, he was like "uhhhhhhhhh, hold on", then goes into the back and comes out with a mini. I just wanted to share that story even though has nothing to do with the DIY controller.
Okay, one more vent story. I bought the Emio Edge joystic after reading that Emio had fixed the controller to work with the mini. The first Emio Edge I had acted wonky. There was a long delay in movement and button clicks. The turbo controls didn't seem like they did anything. I returned the first one and received a replacement. The second controller responded spot on to movement and button clicks, no noticeable lag. The turbo controls actually worked, the LEDs lit up and the rotary dials controlled the turbo rate. However, the joystick spring was either busted or super weak. The joystick would not return back to neutral. I could've easily fixed it by opening up and replacing the spring but I felt I shouldn't have to fix something that is brand new. So yeah, I returned it and looked for another alternative which leads me to another story.
I thought, why not just get an adapter to use another console's controller. I came across the project Wii Retropad Adapter by Bruno Freitas. I perused his site and I realized that I bought a RetroVGA Scanlines Generator back in 2014 from him for an arcade cabinet for
I bought an Arduino to try out my idea. Sadly, I could not get it to work. After hours of frustration and lack of knowledge about microcontrollers I finally got the code to work. Turned out, I couldn't use the Arduino because it is running at 5V and the mini outputs 3.3V. Even though I powered the Arduino externally, I still could not get it to work. I'm sure someone with better knowledge could make the Arduino work with the mini.
So I ended up using the Arduino as an ISP to flash Atmega328P chips using the WinAVR toolchain. I tried out Atmel Studio and ended up buying an Atmel-Ice to use along with it. Reasons were that I like Visual Studio and the ability to debug microcontrollers is awesome (for supported chips of course).
The DIY controller works pretty good for now on the breadboard. I will move it off to an enclosure soon. The controller will have a 4-way joystick for movement. Aside from the A, B, Select, Start buttons, there will be a Home button. Turbo controlled with on/off toggle switches and a rotary dial to adjust rate with LED status to show how fast the buttons are pressed.
Quick breadboard demo:
I 3d printed a case to mimic the NES Advantage. I'll get the microcontroller source files out on GitHub and STL files for the case on Thingiverse in the near future.
Paper cutout mockup for labels.