I haven't been on HaD for a few years now. But this Arduino computer project has, in some way, continued to advance. I'm going to write a series of logs outlining the changes and developments that have happened over the past few years, not necessarily in chronological order.
At some point I took some code I wrote, copied and restructured it into a git submodule, and started building an OS around it. A bigger, more flushed out OS and fragments of a kernel and HAL.
The repo is on my personal GitLab instance here if you want to take a peek at the modern source code: https://git.nuclaer-servers.com/Nuclaer/ntios-2020
In all honesty, I never planned on releasing it, so there's some pieces that were copied from around the internet but probably have attributions in the comments.
I've created many devices with this software over the past 2-3 years:
All of the devices above run ~95% the same software. The only differences are in the exact mapping/configuration of the hardware and some drivers to plug it in to the rest of the HAL.
I kindof just wanted to sneak peek what the project kindof is now, and see what people think. This is not very much, and doesn't describe what's going on or how any of this works, this is just kindof a preview. If you want to see/learn more, comment so I know people are interested.
What does this run on?
If you pay attention, you'll see I'm quite a fan of the Teensy 4.1 now. I've used other chips like the ESP32 and Artemis, but T4.1 has been my go-to for a while now. I haven't used AVR in many of my projects for a long time now, but I think I could run this on an ATmega2560. The software stack is getting rather large though, and probably ever more memory intensive, so I don't think I could run this well on an ATMega328p or similar chip.
Relation to the original software
When I first created this new OS in May 2020, I probably only copied over the existing system() function I had written for this project, but it seems like everything else was written from scratch to be more modular and use more OOP. It's not clear if I copied some stuff from the NTIOS_2.0 codebase, or if I started from scratch. In either case, the way the HAL is set up for the new OS project has some strange resemblance to the HAl in NTIOS_2.0. But in all honesty, at some point I had pretty much completely forgotten about the NTIOS_2.0 code and what I had been working on. This happens more frequently than I would like to admit...
Should this even be considered the same project?
I think this is the logical continuation of this project. I don't even know where the hardware is for this project anymore, but I want to make it nicer and more modern anyway. Is it the same? Well we have a new codebase, new hardware... But yet it has the same objectives and interestingly, seemingly, some of the same architecture. I don't know, but this project will die if it stays what it was, because that is in the past. Grow, or die, is the way of life.
Where is this project going now?
My hopes for the new system are a bit more lofty. My newer code is far more mature and advanced. I think I can load and execute ELF files from an SD card on ARM if I put some more work into it. In the meantime we can assemble programs for a built-in emulator and execute them. Currently this still is compiled and uploaded from Arduino.
If I come back to HaD, this project is going to change a lot. The code will be newer and more capable. The hardware will become more powerful and more portable (like tablets and laptops instead of a static device).
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Wow! Please do post your new stuff. The project looks amazing and so much fun.
Are you sure? yes | no