What colors does the Arduboy support?

I was wondering what colors the arduboy supports, I know it supports Black and White, Possibly Grey, but i’m not really sure.

Just black and white. Attempts to play tricks to get grayscale have been mostly unsuccessful.

1 Like

Thanks, just wanted to know so i have some idea of what i’m working with.


When you said it doesn’t support gray @MLXXXp does that mean you can’t put white with black?

The OLED display used by the Arduboy is an array of very tiny white LEDs. The controller built into the display can only turn each LED pixel fully on, or leave it fully off.

So for each of the 8192 pixels in the display you can choose to either have it on (WHITE) or off (BLACK). The Arduboy display thus supports only two colours: BLACK or WHITE. You can’t set a pixel to a lower intensity to appear grey.

In some cases you can alternate pixels on and off in a given area of the display to give the appearance of grey, but that’s just a result of your artistic abilities, not the display’s capability to actually produce a grey pixel.


Ahhh I see so it’s not a grey pixel it’s just a dimmed black…cool

Just an update, we have been trying for 2 years to add grayscale support to the hardware. It seems impossible unless we order 1 million screens… There is a sync pin available on the display controller, but the flexible pin connector does not make it available.

We might do color version, but probably not until much later!

1 Like

I would be okay with 4-bit color. :slight_smile: We don’t need anything too crazy.

Can’t “grey” color be just black and white checkerboard? And “dark grey” also checkerboard but with more black pixels than white? That would be great if I could use this “color palette” with fillRect function.

This technique is called ‘dithering’.

It can give the illusion of different shades of grey due to how humans perceive light,
particularly when there are many pixels at a high resolution,
but technically it’s not actually grey.

It would certainly be possible to write a fillRect function that performs dithering,
but Arduboy2 does not have this facility.
(And it would most likely be beyond the ‘scope’ of Arduboy2,
so it’s unlikely to be added if requested.)

For an example of an Arduboy game that makes extensive use of dithering,
see Catacombs of the Damned.



The more things change the more they stay the same.

I personally say stink on color screens. I endorse the OLED because otherwise starting a tiny game becomes job #2

The grayscale 128x128 oled seems like a good compromise, also means you can do DMG emulation with a faster processor (and clipping/squishing)

1 Like

Not to put ideas in your head, but…

128x128 greyscale + an M0 (e.g. SAMD).
It wouldn’t be hex compatible, bit it could be source compatible.

There are AVR chips that do have enough RAM to support a larger display which might be binary compatible,
(e.g. ATmega4809 or ATmega2560,)
but I’m not sure that you’d find one for a price comparable to an M0.

128x64 monochrome would easily fit on a 128x128 greyscale screen,
either with a letterbox or possibly even a (greyscale) border.

Could do a border like the gameboy player for gamecube or Snes

Yeah thats more or less been my theory, but then once I start thinking about actually spinning up a board I go… Why isn’t this IOT. It needs a radio. preferably wifi.