Breadboy a 100% non soldering Homemade Arduboy


I’ve been so used to soldering that I take it for granted and forget that not everyone can solder. With this in mind I decided that I wanted to make an Arduboy that doesn’t require any soldering, is easy to build and can also run on batteries.

Here’s my Breadboy :smiley:

Under the hood:

Here’s a video for multiple views:

Parts used

  • 4 x mini breadboard
  • 1 x Arduino Micro
  • 1 x 2.42"OLED display
  • 6 x 6x6mm tactile button
  • 1 x 22AWG single core wire(kit)
  • 1 x 5mm diffused common anode RGB LED
  • 3 x 1K resistor
  • 1 x passive piëzo speaker (through hole)
  • 1 x 4 cell AAA battery box with on/off switch
  • 2 x stackable 8 pin female pin header
  • 4 x single pin header

Parts used for Serial flash expansion

  • 1 x serial flash chip in DIP8 package (W25Q128, W25Q64)
  • 3 x 10 K ohm resistor
  • 1 x 1 K ohm resistor
  • 3 x 1N4148 diode

Note :
To load games from the serial flash memory the Arduino Micro needs to be programmed with the Cathy3K custom bootloader. You will need an ICSP programmer or another Arduino for that.

(Nicole Birgel) #2

Have seen it on youtube and twitter already. Man, i wish i was so talented and creative as you!

(Simon) #3

Looks fantastic and I love that screen!

(Oscar) #4


Quite nice actually…

(Holmes) #6

What a feat!! This is awesome!

(Scott R) #7

Virus LQP-79 looks amazing in green and that’s some super tidy breadboard work.


I decided to give my Breadboy an upgrade and added serial flash memory :smiley:


Nice! What’s going on with all of those resistors and diodes?



Yes they are uses as a simple level shifter.

The ATMEGA32U4’s outputs are connected to the cathodes of the diodes. So the outputs are only able to pull the serial flash chip inputs low. When an output gets 5V the diode blocks it and the pullup resistor at the anode side of the diode ensures the serial flash input will be high.

There’s also a 1K resistor hooked between the serial flash output and ATMEGA32u4’s MISO input as a protection in case of misconfiguration of this pin as output.

It’s wired up like in the schematic below (without the 3.3v regulator bit as the Micro supplies 3.3V)


Clever! :clap: :+1:  


Very interested in having the flexibility to carry and play many games via external flash chip. Just a quick question, how are you writing games to the serial flash (using an external usb flash programmer to manually burn games directly to the chip or an arduboy program that will allow the hex/arduboy files to be sent serially over usb and saved to the chip in circuit)? Sorry if you already answered this question somewhere and I missed it. Anyway great work and I hope to see this adopted widespread soon.


The flash chip is programmed through the (custom) bootloader. No external programmer or loader program is required.

  • connect homemade Arduboy to USB
  • drag and drop flash image file onto Python script
  • Wait for upload to complete
  • Done


Thanks for the info, that is awesome! I’ll have to order some serial flash chips and give this a try.


Would a W25Q32 work for the flash chip? That’s the largest available from my favorite eBay source.


Yes it will. But you’ll have less storage: W25Q32 == 32M-bit == 4 M-Byte == ~140 games (29.25K per game)


I’ve added SSD1309 display patching support to the flashimage writer Python script.
Renaming the script to will apply the patch.


I finally built one. Great design! The large display is tremendous. I thought I had common anode RGB LEDs, but they were common cathode, so I substituted discrete ones.

I’ll add the flash memory next.


Great to see another Breadboy! :+1:


I followed Mr.Blinky’s instructions to create this breadboard Arduboy clone using standard wiring and display. The only change is I added a volume control to tune down the volume if required.
And I power it with a 3.7V 180maH Li Battery.
Here is the video.

After this, I am going to create the real thing. I meant a circuit board version of this.
I plan to use a pro Micro (less pins) and I may need to hand solder some missing breakout pins for the speaker and the LED.I will definitely include MrBlinky’s creation- the flash-cart onto the circuit board. I will also add a headphone jack and a volume control. I tested listening to the game output on headphone. It sounds much better.
May be add a 15 pin header at the bottom so I can reflash the boot loader if it’s tuck and also add other types of console buttons or joysticks.

I encounter a compile error trying to use Mr.Blinky’s homemade package.
Whenever I select Standard Arduino Core, I can compile the game successfully.
Whenever I select Arduboy optimised core, I hit compile errors like the ones below and cannot proceed.
I already removed all the previous Arduboy and Arduboy2 libraries before I load the homemade package.
This compile error happens to every Arduboy game sketch I downloaded, not just one of them.

Here are the compiler err messages. Hope someone can help.
Many thanks for your great creations.

/Users/cheungbx/Library/Arduino15/packages/arduino/tools/avr-gcc/4.8.1-arduino5/bin/avr-gcc-ar rcs /var/folders/fl/bd22my7d7kdc9zk06pjl9pnc0000gn/T/arduino_build_44489/core/core.a /var/folders/fl/bd22my7d7kdc9zk06pjl9pnc0000gn/T/arduino_build_44489/core/CDC.cpp.o
sorry - this program has been built without plugin support
Multiple libraries were found for “EEPROM.h”
Used: /Users/cheungbx/Library/Arduino15/packages/arduboy-homemade/hardware/avr/1.2.5/libraries/EEPROM
Not used: /Users/cheungbx/Documents/Arduino/libraries/EEPROM
Using library Arduboy2 at version 5.1.0 in folder: /Users/cheungbx/Library/Arduino15/packages/arduboy-homemade/hardware/avr/1.2.5/libraries/Arduboy2
Using library EEPROM at version 2.0 in folder: /Users/cheungbx/Library/Arduino15/packages/arduboy-homemade/hardware/avr/1.2.5/libraries/EEPROM
Using library ArduboyTones at version 1.0.3 in folder: /Users/cheungbx/Library/Arduino15/packages/arduboy-homemade/hardware/avr/1.2.5/libraries/ArduboyTones
exit status 1
Error compiling for board Homemade Arduboy.


@Cheungbx, In File>Preferences check Show verbose output during: compilation, recompile and then copy the output which will contain the specific error it gives you here.


There’s too little info in that message All I can tell is that you’re compiling on a non Windows computer. Please enable verbose output as @sjm4306 mentioned so a detailed error log will be generated.