Arduino board package for Arduboy and Homemade versions

I’ve been working for a while on an Arduino board package that makes it easy to build/upload sketches for Arduboy and homemade Arduboys with different Arduino boards and displays.

In a nutshell.

  • You can build a sketch for Arduino Leonardo, Arduino/Genuino Micro, SparkFun Pro Micro (or clones) as well as for the original Arduboy and DevKit.

  • Support for multiple displays SSD1306, SSD1309, SH1106 and displays with alternate resolutions SSD1327 (128x96), SSD1329 (96x96)

  • Option for using optimized Arduino core freeing more space and adds bootloader and reset button support to sketches.

  • Cathy3K bootloader support gaining 1K more space for sketches.

The package and install instructions can be found on my GitHub


Hi Mr.Blinky

I’m planning on starting my own homemade Arduboy build, and I’m trying to decide which display I should order.

Does your comment above mean that an SSD1305 display should work “out of the box” with your board package? Or does it mean that I need to customize the libraries somehow?


EDIT: Ok, I have no idea what happened here, but I tried to reply to this: “Just requires 3 bytes of extra data in the display initialisation in the Arduboy(2) libraries” in here:
[Poll] New Arduboy: B&W or Color Screen?

My comment was for SSD1309 display. I didn’t get to test a SSD1305 yet but from what I saw from the datasheets It should be compatible.

With the homemade package you don’t have to modify the libraries. You can select the board type and display type from the tools menu.

Currently my favorite alternative display are the ones with SSD1309 controller. They come in sizes of 1.54" and 2.42"

Because if you’re using an Leonardo, Micro (if you don’t care about the Rx,Tx LEDs being reversed) or a Pro Micro with ATMEGA in TQFP-44 package (you can break out the missing pins by soldering tiny wires) you can patch original hex files on the fly with my python uploader script


Cool, thanks! I’ll get me some 1309s and Micros and get to work.


Ok, so I’ve been trying to figure out the wiring for a home-made Arduboy based on an Arduino Micro and one of these displays:
(For future reference, the display has seven pins: GND VCC SCL SDA RES DC CS)

I’ve been unable to find clear documentation on how the display should be connected. Here’s my current guess:

display   /   Arduino Micro
GND           GND
VCC           5V
SCL           ICSP SCLK
SDA           ISCP MOSI
RES           6 PORTD7
DC            4 PORTD4
CS            12 PORTD6

Does that seem correct?

Yes. But you do not need to take SCLK and MOSI from the ICSP header. With the micro USB connector pointing up, they’re the bottom left and right pins.

I’ve updated the package with the following changes:

board support:

  • Added support for Cathy2K bootloader
  • Added updated Cathy3K with write to flash cart support
  • Moved Homemade Arduboy board option up
  • fixed typos

Arduboy2 library:

  • added generateRandomSeed() from current master
  • Added flash cart hardware pin defines
  • SPItransfer returns SPI data
  • fixed sprite glitch when HEIGHT > 64

Arduboy core:

  • Rx LED will light up when bootloader or reset button combo has been pressed for over 1.5 seconds to inform the user the button combo can be released

To update the package:

  • Go to Tools > Boards > Board manager
  • In the text box type homemade or Arduboy homemade
  • Click on the Arduboy Homemade package and click the Update button.

Awesome stuff i’ll be all over this at the first opportunity.


Updated the package with the new Cathy 3K v1.4 bootloader that has support for external flash storage, the built in flasher menu and a few extra tweaks.

Updated the package to version 1.2.5

Added alternate resolutions for SSD1327 and SSD1329 displays to Arduboy and Arduboy2 libraries:

Arduboy (128x64) resolution for SSD1327/29 :

  • Display 128x64 on 96x96 (left and right 16 pixels off screen, black bars at top and bottom)
  • Display 128x64 on 128x96 (with black bars at top and bottom)
  • Display 128x64 on 128x128 (with black bars at top and bottom)

Native resolutions for SSD1327/29 :

  • 96x96
  • 128x128

Alternate resolutions for SSD1327/29 :

  • 128x64 rotated 90 degrees counter clockwise(portrait mode) on 128x128 display (with black bars at left and right)
  • 128x96 on 128x128 display (with black bars at top and bottom)
  • 96x96 on 128x128 display (with black surrounding border)

Added bootloaders with SSD1327 and SSD1329 128x64 display support

Added @Pharap 's Fixed Points Arduino library

updated Arduboy-TinyFont library


Huzzah! 1943 and Physix for clones!

I presume TinyFont is @Botisaurus’s TinyFont and not some other TinyFont?

1 Like

So @Botisaurus is Boti Kis / yinkou !? Yes! it’s his library


Yes that’s me. Wish I could change that GitHub name :joy:

1 Like

Nice to meet you. My name is @BlueMax. I am poor at English, so please forgive me if there is a mistake.

I am using the package you made.(It is a very nice package!)
I am making a game, but I noticed that the arduino IDE and arduboy library I am using are old. I replaced them with the latest, 1.8.8 and 5.2.0.
My “ARDUBOY clone” uses “ssd 1309”. When I upload a sketch using “5.1.0”, it works normally, but using “5.2.0” will not work. The right and left will be replaced.

Is there something wrong? If you do not mind, please tell me also. I am sorry in poor English.

1 Like

Hi! welcome to the community and nice to hear your working on a game.

You should not install any libraries manually when you make use of the HomeMade package.

The Arduboy2 library in the homemade package will soon be updated to 5.2.0


Thank you for your quick reply.
I am looking forward to the update!

I want to thank you. I was able to meet ARDUBOY thanks to your “BreadBoy” article. And “Flashcart(ridge)” and “Cathy3K bootloader” are a really wonderful invention. Without them, I would not have been interested in “ARDUBOY” either. I also used it for my “ARDUBOY clone”!

I’m sorry for my poor English.


Updated the board package to 1.2.6

  • updated Arduboy2 library to 5.2.1
  • updated ATMlib to 1.2.6
  • added support for LCD_ST7565 backlit displays
  • Added flash chipselect options to tools menu
  • optimized core wiring.h
  • Enter bootloader mode button combo changed to pressing UP+DOWN for ~1,5 seconds
  • updated Cathy3K bootloader: removed RGB LED breathing, added menu scrolling and progressbar features
  • added -Wno-error=narrowing compiler option to platform.txt that is required for Arduino IDE versions 1.8.7 and up.

Does it support 3.3v 8MHz Pro Micro boards?

The 8MHz Pro Micro is not supported. Mainly because you can run a 5V 16MHz Pro Micro at 3.3V as well.

1 Like