Welcome to AREA512!
AREA512 is an OS built for the Cardputer ADV and Cardputer v1.1, a tiny device with just 512KB of RAM and 8MB of flash storage!
It is based on FemtoRuby and includes MicroPython, so you can write Ruby and Python right on the Cardputer, then compile and run them — all on the device!
All you need is esptool:
pip install esptool
# Cardputer ADV
esptool.py -c esp32s3 -b 460800 write_flash --flash_mode dio --flash_size 8MB --flash_freq 80m 0x0 firmware/Area512Adv.bin
# Cardputer v1.1
esptool.py -c esp32s3 -b 460800 write_flash --flash_mode dio --flash_size 8MB --flash_freq 80m 0x0 firmware/Area512V11.bin
-p /dev/ttyACM0 to the esptool.py command.
The screen shows a listing of the current directory: directories first, then files. Source files (.rb / .py) and compiled files (.mrb / .mpy) are shown as separate entries with their extensions.
The following keys are available.
| Key | Action |
|---|---|
; / . (or k / j) | Move the cursor up / down |
/ or Enter | Open (enter a directory / run a Ruby or Python file / view a Markdown file) |
, or BS | Go to the parent directory |
1–9 | Jump to the n-th entry |
e | Edit the selected file |
c | Compile the selected .rb or .py file |
a | Compile every .rb and .py file in the current directory |
R | Run the selected directory as an application |
N | Create a new file (you type the name) |
K | Create a new directory (you type the name) |
x | Delete (asks y/n for confirmation) |
m | Move the selected entry (you type the destination path) |
r | Reboot the device |
q | Quit the file manager |

The following come preinstalled under /home/tool and /home/game.
Each app's directory also contains a README explaining how to use it!
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
/home/tool/writerA word processor. From business documents to poetry, write anything you like!
/home/tool/schedulerThe greatest schedule management software.
/home/tool/calcA spreadsheet. Manage all of your money.
/home/tool/paintDraw anything!
/home/game/solitairThe world's finest card game. Compete for the high score!
/home/game/bombLaunch it and you'll get it! That nostalgic game!
/home/game/space_landerA lunar landing game written in Python.
/home/tool/slideDisplays numbered Markdown files as slides. Add files such as 1.md, 2.md,
and 3.md to /home/tool/slide; they are displayed in numeric order.
Supported Markdown syntax:
#, ##, and ### headings-```ruby and ```| Key | Action |
|---|---|
h / l | Previous / next page |
j / k | Scroll down / up |
| Esc | Quit |
/home/tool/galleryA gallery of the built-in Widget components.
The editor opened with e is a tiny vim running on the device. It has normal, insert, visual, operator, and command modes, plus search. Ruby and Python files have syntax highlighting, automatic indentation, code completion, diagnostics, and hover information. The keys your fingers remember mostly just work!
In insert mode, press Ctrl-N to open completion; it also opens automatically after . and uppercase letters in .rb and .py files.

| Command | Action |
|---|---|
:w | Save |
:q | Quit (refuses if there are unsaved changes) |
:q! | Quit without saving |
:wq / :x | Save and quit |
The device compiles .rb into .mrb and .py into .mpy (bytecode) on the spot (see c / a in the key list). Ruby bytecode runs inside a sandbox, and Python bytecode runs with MicroPython.
New applications should follow this layout.
AREA512 provides the following features as built-ins. PicoRuby does not require
require, and MicroPython does not require import, to use them.
| Feature | PicoRuby | MicroPython |
|---|---|---|
| Display | Yes | Yes |
| Sprite | Yes | Yes |
| Widget | Yes | Yes |
| WidgetList | Yes | Yes |
| WidgetTextView | Yes | Yes |
| GPIO | Yes | Yes |
| ADC | — | Yes |
| I2C | Yes | — |
| SD / File / Dir | Yes | Yes |
| IO | Yes | Yes |
| RNG | Yes | Yes |
| Sandbox | Yes | — |
| Console | — | Yes |
See PicoRuby features and MicroPython features for the available APIs.
An application is a single directory. Press R in the file manager to run it.
myapp/
├── main.manifest # optional: lists .mrb or .mpy files to load, one per line
├── main.mrb # Ruby entry point when there is no main.manifest
├── main.mpy # Python entry point when there is no main.manifest or main.mrb
├── *.rb / *.mrb # Ruby modules
├── *.py / *.mpy # Python modules
└── image.h # optional: splash image shown at launch
main.manifest lists .mrb files, they are loaded into a single sandbox in order. Put dependencies first and main.mrb last.main.manifest lists .mpy files, MicroPython runs them in order. Put dependencies first and main.mpy last.main.manifest, main.mrb is executed if it exists; otherwise, main.mpy is executed.No main.manifest, main.mrb or main.mpy in <directory> is shown.Applications can use the built-in Widget components directly. See the Widget component documentation and the preinstalled /home/tool/gallery app.
Colors are read from /sdcard/Area512_data/etc/theme at boot. Without that file the defaults below are used. Edit it and reboot to apply.
background=0x000000
text=0xCFA45F
emphasis=0xF5972D
border=0xF5972D
selected=0xFFD966
box=0x241604
One key=0xRRGGBB per line; six hex digits, 0x required. Lines without = and unknown keys are ignored.
Bitmaps (the boot logo and an application's image.h) are drawn with emphasis and background only, the brighter of the two used for the set bits.
git clone --recursive git@github.com:engneer-hamachan/area512-dev.git
cd area512-dev
. $YOUR_ESP_IDF_PATH/export.sh
rake setup
If you already cloned without --recursive:
git submodule update --init --recursive
# Cardputer ADV build
rake build
# Cardputer v1.1 build
rake build:v1.1
rake flash
Files under storage/ are embedded in the firmware as seed content and
restored to the SD card's Area512_data/ directory on first boot (each
top-level directory is only written if it does not exist yet on the card).
AREA512 welcomes contributions of new apps and AREA512 artwork (splash images and such)!
93 commits
1 commits
C
82.1%
Ruby
8.6%
Python
5.0%
C++
3.0%
Welcome to AREA512!
AREA512 is an OS built for the Cardputer ADV and Cardputer v1.1, a tiny device with just 512KB of RAM and 8MB of flash storage!
It is based on FemtoRuby and includes MicroPython, so you can write Ruby and Python right on the Cardputer, then compile and run them — all on the device!
All you need is esptool:
pip install esptool
# Cardputer ADV
esptool.py -c esp32s3 -b 460800 write_flash --flash_mode dio --flash_size 8MB --flash_freq 80m 0x0 firmware/Area512Adv.bin
# Cardputer v1.1
esptool.py -c esp32s3 -b 460800 write_flash --flash_mode dio --flash_size 8MB --flash_freq 80m 0x0 firmware/Area512V11.bin
-p /dev/ttyACM0 to the esptool.py command.
The screen shows a listing of the current directory: directories first, then files. Source files (.rb / .py) and compiled files (.mrb / .mpy) are shown as separate entries with their extensions.
The following keys are available.
| Key | Action |
|---|---|
; / . (or k / j) | Move the cursor up / down |
/ or Enter | Open (enter a directory / run a Ruby or Python file / view a Markdown file) |
, or BS | Go to the parent directory |
1–9 | Jump to the n-th entry |
e | Edit the selected file |
c | Compile the selected .rb or .py file |
a | Compile every .rb and .py file in the current directory |
R | Run the selected directory as an application |
N | Create a new file (you type the name) |
K | Create a new directory (you type the name) |
x | Delete (asks y/n for confirmation) |
m | Move the selected entry (you type the destination path) |
r | Reboot the device |
q | Quit the file manager |

The following come preinstalled under /home/tool and /home/game.
Each app's directory also contains a README explaining how to use it!
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
/home/tool/writerA word processor. From business documents to poetry, write anything you like!
/home/tool/schedulerThe greatest schedule management software.
/home/tool/calcA spreadsheet. Manage all of your money.
/home/tool/paintDraw anything!
/home/game/solitairThe world's finest card game. Compete for the high score!
/home/game/bombLaunch it and you'll get it! That nostalgic game!
/home/game/space_landerA lunar landing game written in Python.
/home/tool/slideDisplays numbered Markdown files as slides. Add files such as 1.md, 2.md,
and 3.md to /home/tool/slide; they are displayed in numeric order.
Supported Markdown syntax:
#, ##, and ### headings-```ruby and ```| Key | Action |
|---|---|
h / l | Previous / next page |
j / k | Scroll down / up |
| Esc | Quit |
/home/tool/galleryA gallery of the built-in Widget components.
The editor opened with e is a tiny vim running on the device. It has normal, insert, visual, operator, and command modes, plus search. Ruby and Python files have syntax highlighting, automatic indentation, code completion, diagnostics, and hover information. The keys your fingers remember mostly just work!
In insert mode, press Ctrl-N to open completion; it also opens automatically after . and uppercase letters in .rb and .py files.

| Command | Action |
|---|---|
:w | Save |
:q | Quit (refuses if there are unsaved changes) |
:q! | Quit without saving |
:wq / :x | Save and quit |
The device compiles .rb into .mrb and .py into .mpy (bytecode) on the spot (see c / a in the key list). Ruby bytecode runs inside a sandbox, and Python bytecode runs with MicroPython.
New applications should follow this layout.
AREA512 provides the following features as built-ins. PicoRuby does not require
require, and MicroPython does not require import, to use them.
| Feature | PicoRuby | MicroPython |
|---|---|---|
| Display | Yes | Yes |
| Sprite | Yes | Yes |
| Widget | Yes | Yes |
| WidgetList | Yes | Yes |
| WidgetTextView | Yes | Yes |
| GPIO | Yes | Yes |
| ADC | — | Yes |
| I2C | Yes | — |
| SD / File / Dir | Yes | Yes |
| IO | Yes | Yes |
| RNG | Yes | Yes |
| Sandbox | Yes | — |
| Console | — | Yes |
See PicoRuby features and MicroPython features for the available APIs.
An application is a single directory. Press R in the file manager to run it.
myapp/
├── main.manifest # optional: lists .mrb or .mpy files to load, one per line
├── main.mrb # Ruby entry point when there is no main.manifest
├── main.mpy # Python entry point when there is no main.manifest or main.mrb
├── *.rb / *.mrb # Ruby modules
├── *.py / *.mpy # Python modules
└── image.h # optional: splash image shown at launch
main.manifest lists .mrb files, they are loaded into a single sandbox in order. Put dependencies first and main.mrb last.main.manifest lists .mpy files, MicroPython runs them in order. Put dependencies first and main.mpy last.main.manifest, main.mrb is executed if it exists; otherwise, main.mpy is executed.No main.manifest, main.mrb or main.mpy in <directory> is shown.Applications can use the built-in Widget components directly. See the Widget component documentation and the preinstalled /home/tool/gallery app.
Colors are read from /sdcard/Area512_data/etc/theme at boot. Without that file the defaults below are used. Edit it and reboot to apply.
background=0x000000
text=0xCFA45F
emphasis=0xF5972D
border=0xF5972D
selected=0xFFD966
box=0x241604
One key=0xRRGGBB per line; six hex digits, 0x required. Lines without = and unknown keys are ignored.
Bitmaps (the boot logo and an application's image.h) are drawn with emphasis and background only, the brighter of the two used for the set bits.
git clone --recursive git@github.com:engneer-hamachan/area512-dev.git
cd area512-dev
. $YOUR_ESP_IDF_PATH/export.sh
rake setup
If you already cloned without --recursive:
git submodule update --init --recursive
# Cardputer ADV build
rake build
# Cardputer v1.1 build
rake build:v1.1
rake flash
Files under storage/ are embedded in the firmware as seed content and
restored to the SD card's Area512_data/ directory on first boot (each
top-level directory is only written if it does not exist yet on the card).
AREA512 welcomes contributions of new apps and AREA512 artwork (splash images and such)!
93 commits
1 commits
C
82.1%
Ruby
8.6%
Python
5.0%
C++
3.0%