Fun idea! The real time interaction with GPIO from the CLI is the most interesting thing here, I could see a general framework for that being useful for early-stage prototyping with new hardware/sensors if you included things like I2C, SPI, and UART.
Reminds me of a good old arduino shell, Bitlash - https://github.com/billroy/bitlash/wiki/commands
>// The descriptive files (i.e., README and QUICKSTART) were written by Claude AI (with minor tweaks). Why? Because if I had done it myself, it would have ended up as a few lines of incoherent gibberish that wouldn't tell you anything.//
I would have enjoyed your lines of gibberish far more than the slop that Claude spit out.
But it's a cool project, thank you for sharing.
[dead]
Mike stonebraker said the filesystem should be a database in a recent podcast with ryan peterman. Any thoughts on trying that out?
Very neat, but why Arduino Uno? It's well past its prime.
I made something similar a long time ago partly as a challenge to see what could be done with just 2 KB RAM [0]. It was possible to implement some very basic context switching between two "processes", pipes (okay, I only had a single pipe, and it only worked between certain commands), and some other things like a few built-in games (pong, snake, and a breakout-style game, naturally). I didn't go as far as adding any filesystem functionality though, and ultimately yours does feel more Unix-like overall, but it was a fun little project where you learned to always consider every single byte as precious.
[0] https://github.com/ls4096/avrsysh