UPDATE:
This has been superseded by the ArduBigBOY!
See below: ArduBigBOY (WAS: My Homemade: Pro Micro, SSD1309, with Flash Cart)
ORIGINAL:
Many thanks to @Mr.Blinky for his excellent resources to help us create Arduboy Homemades!
This homemade that I built last weekend is using his Arduboy homemade boards package, custom bootloader (Cathy3K), and has flash cart(ridge) support! I don’t see how anyone can survive without the flash cart. It is so much more convenient to switch games on the fly than needing to have a computer around. For the extra <$1 that a serial flash costs, this should be the number one upgrade people do to their Arduboys, and ideally it would be implemented in the next official Arduboy.
This build was thrown together with parts I had on hand. This meant an Arduino Pro Micro 5v/16MHz, a 1.3" SH1106 OLED, various buttons, an RGB LED, and a passive buzzer. I ended up using the alternate pin mappings because the Pro Micro I had on hand has the VQFN package instead of TQFP, which would have been pretty difficult to solder to the extra needed pins. I have a a TQFP based Pro Micro, as well as a 1.54" and 2.42" SSD1309 based OLED on the way, so I can eventually switch over to a more standard configuration which should open up compatibility with more games. But, for now the Arduboy homemade board package that @Mr.Blinky put together made it really easy to support this alternate pin mappings and the non-standard OLED.
For now, I am just using a 512KB serial flash chip because it is all I had on hand. I do have some 16MB flash chips on the way, but the 512KB flash is still large enough for around 20 games or so. It came out of an old ESP-01 module that I accidentally over-volted (fried the ESP8266, but the flash chip was still ok). I had a bit of a hard time getting the chip to clear/re-program until I noticed that some of the lock bits were turned on in the status register and had to first be cleared.
For power, I removed the built-in regulator from the Pro Micro and instead routed the RAW pin (USB 5V) over to VIN on a protected TP4056 li-ion charge module. The VOUT connects to the slider switch which then connects to a 3.3V (soon to be 3.6V) LDO regulator and finally back into the ProMicro’s VCC pin. Yes, I know I am technically under-volting/over-clocking the ATmega32u4 by only supplying it 3.3V, but it simplifies the OLED and Flash cart wiring (no voltage converters needed), and seems to work just fine in practice. The li-ion cell came from a set for use with Quadcopters and has a capacity of 500mAh which should give 20+ hours of runtime.
My initial thoughts after using this for a few days include:
- A larger OLED would be nice (1.54" and 2.42" on order)
- Using a more standard pinout and OLED would allow for better game compatibility (and allow use of games that only provide .hex files)
- The buttons are pretty clicky, and softer ones would be nice
- A volume control or hardware mute switch would be nice
- I wonder how much better a speaker would sound than the buzzer?
- I still need to 3D print an enclosure
- Still not sure about the best location for the power switch