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.

(Kevin) #4

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.

(Kevin) #5

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.

(Gavin Atkin) #6

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.


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

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

(Scott) #8

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.

(Kevin) #9

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.