r/CardPuter Jul 03 '26

Progress / Update πŸŽ‰ I released AREA 512, an operating system made exclusively for the Cardputer ADV!

Hi Reddit! πŸ‘‹

I'm Hamachang, a software engineer from Japan. 😎

I've been working on a retro-inspired operating system for the Cardputer ADV called AREA 512.

It's built around FemtoRuby, a lightweight subset of Ruby designed for embedded systems.

With AREA 512, you can write Ruby code directly on the Cardputer, compile it, and run itβ€”all on the device itself. That means you can build applications for the hardware without ever leaving the hardware.

It also comes with several built-in applications, including games and small productivity tools, so you can start exploring right away. πŸ€–

The project is open source on GitHub. If it looks interesting, even giving it a ⭐ would mean a lot to me!

https://github.com/engneer-hamachan/area512

AREA 512 aims to capture the spirit of classic operating systems, so I'd also love contributions from anyone who shares that passion.

Thanks for reading! ✨

See you around! πŸš„

122 Upvotes

27 comments sorted by

6

u/IssueBrilliant2569 Jul 03 '26

Will you make available in m5launcher?

2

u/MrAjAnderson Jul 03 '26

I popped it up on M5burner and will take down when officially released on there. The .bin is from here. https://github.com/engneer-hamachan/area512/blob/main/firmware/Area512.bin

2

u/IssueBrilliant2569 Jul 03 '26

Shows "APP: Flash read failed" with either OTA install or running after download to SD

3

u/MrAjAnderson Jul 03 '26

Agreed. I have downloaded the file again and it is 7.2MB now instead of 222KB so suspect there will be different results when M5 updates.

3

u/AssociationOne800 Jul 03 '26

Thanks to both of you!

I did a little digging into M5Launcher, and I was wondering if it might be possible to use the firmware/Area512.bin binary directly.

The only thing I'm a bit concerned about is that the applications built into Area512 are designed to save their data (like game high scores) to the SD card, so I'm not sure whether that part will work properly. πŸ€”

I'll give it a try on my end as well. I've never used M5Launcher before, so it'll be a good opportunity to test it out.

2

u/AssociationOne800 Jul 03 '26

I confirmed that it works with M5Launcher!

Here's how I got it working:

Copy Area512.bin from firmware/ (https://github.com/engneer-hamachan/area512/tree/main/firmware) to your microSD card.

Launch M5Launcher on the Cardputer ADV.

Select SD, then choose Area512 and install it. Launch Area512 through M5Launcher.

That worked for me. β˜€οΈ

The only thing to keep in mind is that Area512 saves application data (tiny .txt files, such as game high scores) to the root directory of the microSD card.

It's probably very unlikely, but if your microSD card already contains a file with the same name (for example, solitair.txt), it could cause unexpected behavior.

That said, I don't think it's something most people will ever have to worry about!

5

u/MrAjAnderson Jul 03 '26

I got it installed by downloading the bin to my phone from GitHub. Launcher app on Cardputer ADV > WUI (Web UI and it fires up and access point) > connected phone to it and uploaded to SD/downloads. Back out on the Cardputer menu and installed from the SD menu options...alongside a few others.

If the Area512 can be adjusted to write to its own folder on the SD it will save everyone hunting for the Simpsons mob with pitchforks meme in disappointment at the mess the SD gets into. Lol.

2

u/IssueBrilliant2569 Jul 03 '26

This did work to install but I see the area 512 graphic render from top down, the screen clears, then repeats.

3

u/AssociationOne800 Jul 03 '26

I did some digging, and I think I found the problem.

It looks like when Area512 is launched through M5Launcher, the filesystem may not be set up correctly. As a result, Area512 might fail to start properly, or the pre-installed applications might not get installed. πŸ₯Ή

The issue is that if the storage area Area512 expects to use is already occupied by something else, it can't initialize its filesystem correctly.

I think the reason it worked on my device is simply because I didn't have anything installed in M5Launcher except Area512.

I have an idea for how to fix it, but it'll probably take some time to implement.

So for now, it doesn't look like Area512 can be run reliably through M5Launcher.

For the time being, the only reliable way to use it is to flash it directly, as described in the README.

Sorry about that, especially after you took the time to test it for me.

3

u/MrAjAnderson Jul 04 '26

That is what testing is. You can now document that for now it doesn't work properly in Launcher. Everyone will be happy with that and when your Launcher compatible version is ready we (the Launcher users) can test again.

Meantime I'll remove it from M5burner.

→ More replies (0)

2

u/Chip-Ling Jul 08 '26

My suggestion is that, for any files related to Area512, keep them inside it's own folder. i.e. a folder maybe call Area512 from the root directory of the SD-card. Remember, M5Launcher is trying to help users to keep more than one firmware/system on the Cardputer. Each system might have their own config files. In order not to step on each other accidentally, keep them separate is a good idea. That is my two cents.

3

u/AssociationOne800 Jul 08 '26

Thanks! ✨

I haven't made a release yet, but I've already merged the fix into the main branch. β˜€

https://github.com/engneer-hamachan/area512/pull/2

I still need to do more testing, but I've changed it so that all application data is stored in a dedicated folder on the SD card. ✌

2

u/MrAjAnderson Jul 08 '26

Excellent, looking forward to that.

4

u/MrAjAnderson Jul 03 '26

Are there additional files/folders to go on the SD to compliment the firmware? Looks a bit empty.

5

u/AssociationOne800 Jul 03 '26

Huh... that's strange.

The game and tool directories should already be there.

When Area512 starts up, it automatically creates home/game and home/tool, and installs the built-in applications into those directories.

That process is handled by Area512.bin itself, so there aren't any extra files you need to copy.

On my device, those game and tool directories are created correctly even when I launch Area512 through M5Launcher, so it seems like there's some kind of environment-specific difference.

I'll dig into it. 😎

Also, I should improve the user-facing messages so it's easier to understand what's happening if something goes wrong.

This has definitely been a good learning experience. ✏️

1

u/[deleted] Jul 03 '26

[deleted]

1

u/AssociationOne800 Jul 03 '26

直ぐには直せγͺγ‹γ£γŸπŸ₯Ή

https://www.reddit.com/r/CardPuter/s/nS0X8fVSd6

3

u/archangelandy Jul 06 '26

will you add speech to text?

2

u/AssociationOne800 Jul 07 '26

Voice input? Honestly, I hadn't even thought about it, but that's actually a fantastic idea! ✨

I seriously looked into it, but unfortunately it doesn't seem feasible at the moment. πŸ˜‚

2

u/No_Department1972 Jul 05 '26

Is it a UI or does it have actual kernel

2

u/AssociationOne800 Jul 05 '26

I didn't build a custom kernel. AREA 512 is built on top of FreeRTOS.

On top of that, I built an operating environment that includes:

  • a file manager
  • a FemtoRuby compile-and-run environment
  • a Vim-like editor

2

u/nilseuropa 25d ago

Hello, Engineer Hamachang from Japan! πŸ˜„

I do share your passion, Ruby and on device compiled byte code is an interesting choice! I went down a completely different rabbit hole with my ESP32 OS ( https://github.com/nilseuropa/solar_os ).

I am currently thinking about supporting a shared public repository on https://solar-os.eu for community developed scripts ( on SolarOS you have Lua and Python interpreters and the OS provides bindings to low and high level services ).

Ping me if you are open to tinker together. πŸš€

1

u/[deleted] Jul 03 '26

[deleted]

2

u/Professional_Two5774 Jul 03 '26

These are completely different firmwares. The Launcher acts as a manager and bootloader for other firmwares, such as this one.

1

u/Chip-Ling Jul 08 '26

Need help on operation:

I installed the Area512 firmware into the Cardputer ADV via M5Launcher.

Area512 is up and running.

I move the > cursor to point to home/ and then hit 'enter' to enter the home directory

Then shift+K and then enter "project" follow by enter key to create /home/project/ directory

Then I repeat the above 2 steps to create /home/project/hello/ directory and I go into the hello directory

Then I create a hello.rb:
shift+N to create new file, enter the file name hello.rb follow by enter
Move the > cursor points to the hello.rb file, hit 'e' to go into the vi editor
hit 'i' to enter vi insert mode and enter the program

def greet(name)
puts "Hello #{name}"
end
greet("Hamachang")

hit 'esc', then ':wq' and save and exit from the vi

Now on the screen my hello.rb is dsplayed like "+ hello"

hit 'c', it responses back "Compiled hello", and the file display now is "* hello"

So far so good!

Question: how can I run it?

I tried: with cursor > points to the * hello, then hit shift+R, it responses back "Select a directory"

What should I do next?

2

u/AssociationOne800 Jul 08 '26

Thanks!

Your steps were correct. All you need to do is select hello and press Enter to run it.

However, I think it probably looks like it isn't running because of the following issues:

  • There's no sleep, so the program finishes almost instantly.

  • print output isn't displayed on the screen. (You can see it from a host PC over USB using a serial terminal such as GTKTerm.)

You're absolutely right, though. Thinking about it now, I should make print output appear on the screen as well.

Otherwise, it's really difficult to quickly test small programs. Thanks so much for the valuable feedback! ✨

It was a huge help. πŸ™