Color screen for Arduboy

I did a quick experiment of what an Arduboy with a color screen could look like using a Photon and a 1.8" TFT 160x128 18-bit color screen with a ST7735 controller.


  • Lots of colours (262 144 shades)
  • Resolution similar to a Game Boy Color and nice ratio (160x128 pixels, 5:4)
  • Same price as a monochrome OLED ($3)
  • “Tearing effect” pin broken out


  • Slightly lower contrast and viewing angles than an OLD
  • Double-buffering requires at least 2.6KB of RAM (1-bit) up to 46KB (18-bit, full color)
  • Pushing all this data may require SPI DMA

Note that the ST7735 library from Adafruit currently doesn’t use a buffer and so each shape drawn must either be cleared afterwards, which is not convenient, or the whole screen must be cleared, which induces some flickering as drawing shapes is currently quite slow. To solve this, one would need to improve transfer speed (using SPI DMA and/or 12-bit/pixel 4:4:4 color transfer), synchronise the redraws to the “tearing effect” pin and use a buffer. A buffer requires a lot of RAM, so I have put below different buffer sizes and the RAM of a couple of micro controllers.


  • 1-bit, black and white, 2.56 KB
  • 8-bit, 256 colors, 20.48 KB
  • 16-bit, 65 536 colors, 40.96 KB
  • 18-bit, 262 144 colors, 46.08 KB


  • ATmega32u4 (Arduino Leonardo), 2.56 KB RAM
  • ATSAMD21G18 (Arduino Zero), 32 KB RAM
  • STM32F205RGY6 ( Photon), 128 KB RAM

In conclusion, it seems that using the microcontroller from the Arduino Zero with a 1.8" color screen at an 8-bit depth (256 colors) would require quite a bit of engineering but should not cost more than the current 1.3" OLED + Arduino Leonardo solution.

What do you think?


I would encourage investigating the Mighty-1284P (which has 16K of RAM) and / or the Teensy++ (which has 8K of RAM) purely for the reason that they are both 8-bit.

I feel like once you make the jump to 32-bit you would be losing some of the ‘spirit’ of the Arduboy?


Oh, I hadn’t thought about that.

Maybe by limiting the color palette, one could not only reduce the RAM needed but also artificially recreate the main limitation of the 8-bit consoles. For example, the NES only had a color palette of 54 useful colors.

I know the guys at spark really well :smile:

The Teensy 3.1 is super powerful processor I also know Paul and have talked to him about doing this.

For me, honestly the next version doing color screen and faster processor etc. etc. It all comes down to external code execution. I’d really like to be able to store all the games on an SD card and allow an operating system to execute them.

It’s probably possible to develop something with an ARM 4 or maybe even a 3… But the hardware of an ARM 7 will support it natively. But at that point, we’re just building an open source GBA. Is there interest in that? We will see.

I love these discussions and actually, that’s why arduboy is so simple because as soon as you try to add more features it’s easy to get carried away with the complexity.

Also, we have NRF51822 which is an ARM M-0 with bluetooth, but it’s clocked at 16mhz. But that’s actually up and running and I’ve got drivers for the current hardware. AND the color oled.

But again, once you have color you need a LOT of space for not only content but the actual game code.

I’ve frequently wished I could go back in time and program for the gameboy color in it’s heyday. It’s my favorite console, simple with great and imaginative games. If the power of the next version just got even to gameboy pocket level I would be completely ecstatic.

I’ve developed for Android and iOS and it’s pretty cool. But you also have this huge layer of abstraction, it’s hard to feel close to the hardware. That’s what makes me love this Arduboy, feeling close to the hardware and being able to create my own systems from scratch.

I own a Teensy 3.1 and was pretty excited until ultimately the task of learning a lot of about electrical engineering made me lose interest :p. But that would be a fun base for the next Arduboy IMO.

1 Like

Color OLEDs with 96x64 resolution are $1.2?!?

Is that fake? They are usually 6 to 10 dollars.

1 Like

To bad it’s only 96 x 64. Note also that it’s just the screen, controller chip and flex connector; the circuit board that it’s pictured soldered to is not included.

Aliexpress prices are almost exclusively bait and switch, there is no way this module is this price. Also, I know people who use this in their product and it’s just as difficult to get as our current screens.

1 Like

Two years after, they found the secret button inside the Arduboy to unlock the color screen mode!!!


Very nice! I’ve read a thread where some people were against going color – there’s something to that, e.g. full color spectrum + bigger resolution means more art work/skill is needed, which results in longer development time, fewer or lesser quality games etc. Personally I wouldn’t be against a slight boost after some careful testing, like 160x128 with 16 colors or so. 18 bit color is way too much. More program memory is number one for me though, that would bring the game quality up much higher than a better display.

1 Like

I am working on a new game on Arduboy called “Square Nose”. When it will be finished, I would like to do a color version of it on Gamebuino Meta.

1 Like

A lot of people would really like 128x64 @ 2-bit (4 colour greyscale), but so far nobody’s been able to find a screen like that.

It’s hard to strike a balance between getting an upgrade and not making too much of an upgrade.

A lot of people feel that adding too much colour and/or resolution will make the Arduboy too much like other consoles (e.g. Gamebuino, Pokitto, Gameshell).

1 Like

Wow, didn’t know about that. Looks great – if it’s all free software like ArduBoy, I’m going to buy :slight_smile:

So yeah, when there’s this, it doesn’t make sense to go for color with ArduBoy at all I think. I wouldn’t go for 2bit either, maybe just increase the display height for better aspect ratio, but other than that ArduBoy seems perfects for what it is right now (maybe an extra button for opening menus would be nice :slight_smile: ).

There’s something about the high contrast of OLED screens that’s so nice. Check out the Teenage Engineering OP1 synthesiser’s display - the no-fill vector graphics look almost like the early video games made for oscilloscope cathode-ray tubes.

It just wouldn’t look the same without those deep blacks: a friend recently showed me his new Nintendo Switch, which reminded me of the Sega Game Gear or Atari Lynx: back-lit LCD screens just look so washed out to us now that we’re spoiled by all our OLED gadgets.

The synthesiser above even includes a helicopter game called choplifter - with this style of graphics there needn’t be ROM bloat. Simple colour graphics can be charming and data-efficient.

Also, batteryLife++.

The library’s open source.
Same as the Arduboy though, not all games are free software.
Most are, but not all.

You’d struggle to find a platform where all the games are open source/free software to be honest, but 85-95% is probably good enough.

(Disclaimer: I’m a moderator over there too).

The Arduboy has a Choplifter port too:

1 Like

Now those graphics look sweet it reminds me of the old Tomytronic games and that’s a kind of colour I can live with.

Anyone fancy making Scramble? :wink:


This would be pretty cool and (relatively) easy to make.


You shoud use esp8266 or even esp32, both had wifi, and would be nice to add a feature like searching for software update. Esp 32 had 0.5MB of ram, s-o would be a good choice

Thats a good idea. Only problem îs that i am not profesional ar coding. I could do that, but i need help.