What external tools do you use?

(Filipe Madureira) #1

Hello everybody,

I was wondering if you guys used some kind of external tool when programming your arduboy, for example, how do you create sprite sheets/images/backgrounds?

I’m kinda noob and having a hard time finding good resources to use.

(Pharap) #2

I mostly use Windows’ Paint for making sprites.
Paint is terrible for doing detailed art, but excellent for doing really simple ‘8-bit’/monochrome sprites.

If I didn’t have access to that I’d use GIMP.
It’s a little bit more effort to restrict it to monochrome than Paint because like a lot of modern tools it’s designed for ‘proper art’, but it has
It’s completely free and works on all major operating systems.

Just as I was writing this you discovered the thread I was going to link to, but I’ll link to it anyway.

There’s a list of image converters here:

Personally I use a command-line converter that I wrote myself in C# and I haven’t yet got round to publishing it.
(Although it’s command line, Windows lets you just drag and drop files on the program, you don’t actually need to run cmd.)


Is it just spriting tools you’re interested in or are you also interested in alternate IDEs/text editors?

If so there’s a good thread about that here:

1 Like
(Filipe Madureira) #3

Thanks a lot,

i’m trying to understand the whole ecosystem and the best workflow.

I come from a web background, i mainly work with web applications using web languages such as javascript for frontend and c# for backend/api/whatever.

Using the Arduino IDE sometimes i feel lost because i don’t know what methods/functions/libraries do and there is no documentation/help/tooltips whatsoever and i have to google every single time, learning doesn’t feel good: i’m used to VSCode with plugins or even VS Studio for c#, would love to use the same tools for arduino development, while being able to quickly upload my code and test it on the real device (Arduino IDE is great with this).

Thanks to my web background i have Photoshop and plenty of art tools to use but i don’t know how to use them for these specific purposes (really small sprites etc.): how exactly do you use paint for that?

Thanks in advance

(Scott) #4

The Arduboy2 library, that most Arduboy sketches use as a base, is documented here:
https://mlxxxp.github.io/documents/Arduino/libraries/Arduboy2/Doxygen/html/index.html

Additional Arduboy targeted libraries, most of which are listed and linked to in Step 2 of the Quick Start Guide, generally also have fairly good documentation.

(Filipe Madureira) #5

I mean in the IDE itself. In the form of autocompletition, tooltips, usage and such.

(Pharap) #6

Arduino’s functions are documented here:
https://www.arduino.cc/reference/en/#functions
(Though they’re not documented particularly well, you’re probably better off fishing through the source code.)

Though in general you won’t need those.
Although the code is actually compiled as C++ the C++ standard library isn’t available,
instead Arduino uses an impelementation of the C standard library called avr-libc,
which is documented here:
https://www.nongnu.org/avr-libc/user-manual/modules.html

Then you’ll want this extension:
https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino

It basically does all the same stuff as the Arduino

You still have to have the Arduino IDE installed, but after you’ve installed it you don’t actually have to use it, you can just use VSCode.
(And you can always use the .zip install instead of the installer if you don’t like installers.)

The Arduino IDE doesn’t have autocomplete, it’s just a basic editor with syntax highlighting.
I usually only use it for compiling.

VSCode has more options, though to be honest the only things I use regularly are find & replace, trim trailing space, compile and compile & upload.
(I try to not be too reliant on tools.)
The main reason I use VSCode is because it has a file dialogue and it’s easy to write custom keybindings.

But if I don’t want to launch VSCode because I’m just editing a single file then I’ll usually use Notepad++ because it’s sometimes more convenient.

I don’t know anything about setting up Photoshop to do sprite art.
I can count the number of times I’ve used Photoshop on one hand.

Using Paint for sprite art is easy, you just make sure you only use black (0, 0, 0) and white (255, 255, 255) to draw and stick to using the 1 pixel pencil and the shape tools.
Then you can save in any format the converters accept. (.png is usually the best option.)

You can use Ctrl+W to change canvas size.
Alternatively if you go to File -> Properties you can change it there,
and you can also change to Black & White mode which will replace the other colours with dithering patterns,
but those take some getting used to.

If you go to the View tab there’s an option to enable gridlines, an option to enable rulers and a button called ‘thumbnail’ that will produce an extra window that shows the image in its zoomed out form if you’ve zoomed in (zooming in is very useful for making sprites).

Using GIMP is similar in usage, but it’s a bit harder to constrain yourself to tools that don’t introduce other colours, and unfortunately shape drawing isn’t quite as easy on GIMP.
GIMP does have layers and a path tool though, which can be useful for some things.

I won’t go through how to change canvas size and whatnot on GIMP because their documentation is more in depth, and a lot of stuff you can find just by digging through the right-click menu.

I think both Paint and GIMP have ways to constrain your image to only using indexed colour, but I only know how to do that on GIMP (see here and here).