Abshell : a command shell for Arduboy


Abshell is a command shell for Arduboy.
You can send commands from PC to Arduboy via USB-serial port.
No programming skills needed to draw graphics on Arduboy screen !

The core of shell interpreter uses Shinichiro Nakamura’s NT-shell.
Any VT100 compatible serial port terminal softwares (PuTTY, etc.) can be used.


  1. Download Zip or Git Clone from: https://github.com/boochow/abshell
  2. Open abshell.ino with Arduino IDE.
  3. Upload to your Arduboy.
  4. Open Serial Monitor in Arduino IDE.
  5. Type any command. ‘help’ for help.

command arg1 arg2 arg3 …
###graphics commands
circle, fcircle, line, lineto, rect, frect, rrect, frrect, tri, ftri
###text commands
print, tsize
###bitmap commands
pixels, bitmap, .x
###other graphics-related commands
moveto, color, clear
keystat, tone, help, info


print hello,world!
tsize 2
print Arduboy
rect 0 32 20 20
fcircle 40 41 10
moveto 64 40
lineto 84 40
lineto 67 51
lineto 74 32
lineto 81 51
lineto 64 40
moveto 100 40
pixels 00100000100 00010001000 00111111100
pixels 01101110110 11111111111 10111111101
pixels 10100000101 00011011000
tone 440 500


If your Arduboy does not respond to Arduino IDE’s upload sketch command, hold down both the LEFT button and UP button while power on.


There may be a bug, because garbage appears in the center of screen when a terminal software is connected.
I have not yet find any clue to specify the souce of problem…

This is great! I’ve been thinking of making some kind of command line tool like this, but can’t think of any way to make use of it.


The great thing about programming is that sometimes you make things just to prove it can be done, without actually having a use for it.
(I’m pretty sure that’s how Linux became a thing after all.)



I have added two bimap related commands.

“bitmap x y w h” defines the destination rectangle where bitmap will be drawn.
Default rectangle is the whole screen (0 0 128 64).

“.x str” sends raw data to Arduboy.
“str” is a hex string which represents byte array, 2 chars for 1 byte, no comma, no prefix(“0x”).
Multiple .x commands can be used to send large data.

You can use “color” command for bitmap.
“color 1” to draw white, “color 0” to draw black, “color 2”(or other value except for 0 and 1) to draw in XOR mode.


Reviving the thread…
What license uses? I do not find the license here: https://github.com/ArduboyCollection/abshell

Maybe I will fork and continue developing this shell, seems interesting, but I want to execute code from the uSD or internal FLASH, and create temporary variables, you know, to work like a real shell.

From here to catching viruses on arduboy is not a long distance :rofl: :rofl: :crazy_face: :rofl: :rofl:

1 Like

It is under MIT license.
I added the LICENSE file to the repository.


Thanks. :beers:

I do not see the license file in the above repository, I can not touch the code until I have an explicit license :slight_smile: , you have the code on another repository?
I need to fork it with the license inside the repository :smiley:
You know, a little bit to paranoid, but it’s more healthy :crazy_face:
If I will fork it, it will be available on both platforms, on arduboy and arduFPGA ( different approaches ), both hardware’s are commercial I need an explicit license at the fork date.

1 Like

It certainly appears to be there to me.

You are looking at a fork of the sketch repository. The link to the original repository is given in the original post.

1 Like

Yap, correct.

This is the reason that I ask if is on other repository :slight_smile: