ArduBigBOY (WAS: My Homemade: Pro Micro, SSD1309, with Flash Cart)


(serisman) #1

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:

  1. A larger OLED would be nice (1.54" and 2.42" on order)
  2. Using a more standard pinout and OLED would allow for better game compatibility (and allow use of games that only provide .hex files)
  3. The buttons are pretty clicky, and softer ones would be nice
  4. A volume control or hardware mute switch would be nice
  5. I wonder how much better a speaker would sound than the buzzer?
  6. I still need to 3D print an enclosure
  7. Still not sure about the best location for the power switch

Some info 'cause I'm [still learning]
(serisman) #2

A closer view of the guts of the build:


(serisman) #3

Here is a closeup of the wire mess on the back.

This is mostly 30 AWG wire-wrap type wire. This is the first time I have used this method, but it was actually much easier/quicker that I was expecting, and is easily re-configurable.

The following guide was useful to learn more about this style of prototyping


(serisman) #4

Got my 1.54" SSD1309 white OLED display today. It might be hard to tell from the pictures, but this is a much nicer display than the 1.3" SH1106 blue OLED display I had been using! It is brighter, noticeably bigger, and much more software compatible with the official SSD1306 OLED displays.

Still waiting for the even larger 2.42" display before deciding on a final one and working on a 3D printed case.


#5

Very nice work! I also think the 1.54" display is the best of the lot. Even though they are not the bargain that the 1.3" displays are, they make the display much easier to read, so it’s a good choice for the self-built devices. I find the displays can be a little “floppy” when they are just held in by the header connection. I imagine this will get better with the enclosure and some shimming, do you agree?


(serisman) #6

Got my 2.42" OLED display today. Wow! That is one gorgeous display! Just about the perfect size for this homemade. Almost seems custom made. If only they didn’t cost so much. :frowning: I paid $16.50 (shipped) for this one. That means the display is 3/4 of the cost of this build. Everything else in this build cost around $5-6 combined.


(Simon) #7

Looks great … $16.50 is not outrageous for such a nice display.


#8

That’s a great price. I’ve not seen them that cheap yet (with display mounted on PCB board)


(serisman) #9

https://www.aliexpress.com/item/p/32839780525.html
https://www.aliexpress.com/item/p/32871927644.html

Shipping was faster than usual as well.


#10

With the cost of shipping it seems to end up costing about as much as ebay which would have a higher item cost but free shipping (of course with snail speed shipping).


#11

Thanks for the links but both end up to $18.73 here so I guess shipping to your country must be cheaper (and explains why I didn’t see them that cheap on ali :slight_smile: )


(serisman) #12

Yeah, shipping for me on either of those links is $1.58, which puts the total at $16.50. Your results may vary.


#13

Just noticed the display of the second link has the display connected by a connector. This is interesting when you want to modify the PCB. It also doesn’t have the pin headers soldered.


(Josh Goebel) #14

OMG, I’d actually love a bigger device with one of those screens.


(serisman) #15

Yeah. I have several friends, family, and colleagues that are interested in a bigger device as well.

I am actually working on putting together a small prototype run (10 to start) of these larger ArduBIGboy (or should it be ArduBigBOY?) devices. I have already gathered all the components needed, but am still working on the PCB design. Usually I really enjoy the PCB design step, but I have been procrastinating more than usual on this one for some reason.

In addition to having the larger screen, it will have a built-in SPI flash cart (16 MB), lithium ion cell (700 mAh) with charge circuitry, hardware mute button, and an expansion port to allow external things like: serial link cable, Bluetooth link card, external SPI flash carts, etc… The buttons/speaker/etc will use the same pins as the official Arduboy to ease in uploading existing .hex files (just need to patch them for the SSD1309 display).

I’ll let you know when I finish it and if I have any left over that are available. Or, if there is enough interest, I may be able to make even more later.


(Josh Goebel) #16

If we actually had TWO official hardware device we could look into the value of making a single binary “just work” on both. But with everyone building a different version right now we’re stuck building one offs. :frowning_face:


(serisman) #17

A sneak preview (the PCB design is now 95% done :smile: ):

I still need to:

  • add the speaker/buzzer
  • add pads for battery
  • add some mounting holes
  • add more silkscreen labels
  • triple check everything
  • add a few expansion boards?
    • ArduLink (link two Arduboys via serial over 3.5mm cable)
    • ArduBlueLink (link two Arduboys via serial over Bluetooth)
    • ArduCart (external SPI flash cart)


(Pharap) #18

I’d vote ArduProBoy to emphasise the Pro Micro being used.

I would have said “ArduboyPro” but that might infringe on the ‘Arduboy’ trademark.


#19

@Mr.Blinky’s python uploader can patch binaries for SSD1309 support on-the-fly, no need to re-build :wink:


(Josh Goebel) #20

That’s pretty nifty.