[SOLVED] How do you create sprites for arduboy?

I was wondering if there is a software where I can draw sprites and tiles for Arduboy and it just spits out the hexadecimal that I can use for Arduboy? Does anybody know of software like this?

Thanks in advance (:

You can use any graphic software, MS Paint, Photoshop, Aseprite etc… but use a converter like this.


1 Like

What format should I use for the converter?

This post right here has a list of all the current image converters that are on this forum (or at least from what I’m aware):

From personal experience, make sure that the image you’re converting is truly black and white, rather than a pseudo black and/or white, otherwise the conversion may not come out properly. The way I do this is by saving the image I want to convert as a monochrome .bmp file.

1 Like

I tried using the Octo sprite editor and then taking the hexadecimal code (adding commas) and copying and pasting it into Arduino ide but it turned out all messed up. Any ideas why?


I haven’t tried that converter, but have you tried saving the image as a monochrome .bmp file?

It isn’t meant to be a converter it is a way to program Arduboy with Java. (I think?) All the sprite editor does is you draw then it tells you the hexadecimal. There is no option to export.

From the looks of it, it’s actually a virtual machine for Chip 8, not Arduboy. Also, after looking at the sprite editor you were using, the reason why the image is garbled is because Chip8 reads a bitmap differently from how Arduboy does, so that hexadecimal is being organized in a way that Chip 8 can read, not Arduboy (at least not accurately).

Anyways, proabably want to try one of the ones on this forum. I personally use the one that @Vampirics linked.

1 Like

@Pharap wrote this nice tool: GitHub - Pharap/ABSpriteEditor: A basic sprite editor designed for exporting and editing Arduboy sprites.


Thank you, everyone! I will now use the tool Vampirics suggested. I had seen that tool before but it wasn’t working. Now it’s working now and I have no idea why. :slight_smile: :question:

1 hour later…
Just did it! I used MS Paint and that image converter.


Happy to see it worked! Now have some fun :wink:

1 Like

+1 for @Pharap’s tool. It truly is excellent.
I’d also recommend image2cpp online converter, as it gives you some insight into different data formats.


I use this for my Flamingo Boy (ESP32) programs!

It’s great because it has so many different options and formats you can convert the image to.

1 Like

As @Revlis pointed out, that’s something to do with Chip8, not Arduboy.
Arduboy’s sprites use a different format to the sprites Chip8 uses.

Chip8 is a kind of virtual machine that was originally used with certain programmable calculators.

Some of the converters struggle with that, some don’t.

Mine opts to take the average of all three colour channels and produces white if the result is above 127 or black if it’s equal to or below that threshhold, and it treats a pixel as transparent if the alpha channel is anything less than 255. (The code for which can be found here.)

The image2cpp converter @acedent linked to says it uses ‘brightness’, but doesn’t specify what that actually means. There’s no doubt a way to find out by inspecting the source code, but personally I can’t be bothered to wade through that much JavaScript.

It’s a double-edged sword though, because more settings means it’s easier to accidentally get it wrong. I’m never 100% sure which draw mode generates the format that Arduboy uses.

It’s nice that they let you choose a threshold though.
That’s something I would have liked to incorporate into mine, along with the ability to maybe choose other conversion methods. (E.g. use a luminance value rather than just the channel average.)