๐พ Archived View for laniakea.rodoste.de โบ journal โบ 2023-04-12-progress-and-computers.gmi captured on 2023-09-08 at 16:00:18. Gemini links have been rewritten to link to archived content
โฌ ๏ธ Previous capture (2023-05-24)
โก๏ธ Next capture (2023-11-04)
-=-=-=-=-=-=-
2023-04-12
Many of the common microcontrollers available in the maker scene today are clocked at over 100MHz and will have more available RAM and flash memory than the Commodore C64 I had as a boy.
It makes me wonder if it would be possible to build an operating system with a shell and programs you can interact with, input via keyboard, output to a relatively low-resolution, ... on a microcontroller. Not a gaming emulator platform, but a computer with applications to do some actual work.
Granted, a microcontroller usually is architecturally very different from a general purpose computer and might not be as suitable to general purpose use because of that.
Reading about Forth and learning it made me come across fome Forth implementations for microcontrollers like the Teensy 3.1 or the newer Raspberry Pico. I'll need to bootstrap one of my spare microcontrollers and find out to what abstraction levels the Forth implementations take it.
I have no illusion that my level of spare time and existing knowledge of low-level programming would be sufficient to build my own ecosystem, but with a decent platform to start off of, building applications would be within reach.
Of course, the obvious question to building a general purpose computing ecosystem on a microcontroller is โwhyโ. For most applications, the system will be pretty useless and โbecause we canโ isn't really a valid answer for me in this context.
With a microcontroller you can certainly use an SDcard or some USB device as storage device. Connecting it to geminispace might work as well but the modern internet will likely be out of reach, probably even email.
So why then? I think minimizing my setup โ or rather having an even more minimal setup as option โ would be an interesting exercise in simplification and would alter what I do with computers and how I do it.
So I've done some homework and I found many interesting projects around the idea. Two of them stood out:
One is PotatoP, a computer built around the Sparkfun Artemis platform that won the Low-Power Challenge. It is written from scratch in Lisp. See the link section below. It neatly shows what a single person can do these days with enough determination.
The other one _really_ caught my attention, it is the ESP32ForthStation. It is based on the LilyGo TTGO VGA32 device as platform which provides the microcontroller (ESP32), PS/2 sockets for keyboard and mouse, an SDcard slot and VGA output. The hardware really provides all the I/O needed to qualify as an independent computer in my opinion. The ESP32ForthStation is a mixup of several open-source projects that brings this whole thing to life. Go check out the github and some of the videos linked there if you're interested.
It turns out the TTGO VGA32 hardware can also be used to run other, old operating systems like the C64 and it is cheap. Ooooh, tempting.
Honorable mention of course is uxn which I've mentioned before. I haven't found a microcontroller implementation that takes this to a full computing stack level though.
----
๐๐๐๐๐ค
----