Close

The need for refined hardware

A project log for Arduino Desktop

The desktop with an arduino as the main processor. Multitasking, Gaming, Graphics, and (later) File IO

dylan-brophyDylan Brophy 05/08/2024 at 00:270 Comments

I decided to break the new OS into a new project: #NTIOS (Arduino OS).  I think this project here should be more for the hardware and the shell program, and also any programs (or games??) made on the platform.

I'm going to try to build an interesting machine using a Teensy or ESP32, and I'm thinking of combining it with the #uPD7220 Retro Graphics Card (and VGA hack) project to provide VGA output.  This would be interesting, because then we could have a device using early 1980s graphics technology to output VGA (not invented yet), while simultaneously running software at 800Mhz, and loading linux ELFs into an Arduino environment.  This would be a bizarre but fun combination of hacks.  And, greatest of all, it could run games, probably including DOOM.  It just seems like an absurd yet wonderful conglomeration of technology.

As far as loading ELF files goes, I think I'm actually pretty close.  I think the main error I made previously was in the compiler options.  Many of the necessary syscalls are already implemented in NTIOS, and would just need the dynamic linking.  Importantly, the Teensy 4.1 only uses the thumb ISA, so one must compile with all the right options.  The code for ELF loading and executing on Teensy can be found on my gitlab server.

The hardware I had made previously was cool and worked well, but was very limited with system resources, and I feel that it didn't leave much room for expanding on.  Now I have a highly modular OS I can plug into pretty much anything and various more powerful microcontrollers have become widely available.  I've also just become way better at programming and building electronics in the past several years.  I think there's an opportunity to make an actually cool and fun computer running on Arduino, where there wasn't before.

Discussions