Bringing SerenityOS to real hardware, one driver at a time, with RP2040 and CircuitPython
sdomi is looking to run SerenityOS on real hardware. And that means drivers, be they hardware interfaces or software.
Debugging the OS on the same machine as your main isn’t fun, and I wanted to focus my efforts on porting it to something I’d actually want to daily drive – which limited me to recent-ish hardware. I ended up with a Dell 3100 Chromebook. The specs are as follows:
Intel Celeron N4020 (2 cores, no HT)
4GB of DDR4
32GB of eMMC on-board storage
1366×768 TN screen driven by the UHD600 IGP
2x USB-A, 2x USB-C, 3.5mm jack
a keyboard that’s somehow better than Dell’s top-end business laptops
For the uninitiated, almost all chromebooks from ~2018 onwards have one USB-C port that, with a SuzyQ cable, can be used for debugging.
But the debug interface didn’t work. To get the hardware going, a generic Raspberry Pi Pick was placed in the case. CircuitPython was used for software.
On the software side of things, I chose CircuitPython (because it exposes USB mass storage for script/data upload). Bridging an UART to the cdc_acm usb device was trivial, but since I hooked up the SPI flash too, it would be neat to be able to flash it, too – and that’s more complicated.
Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!
Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: A New Arduino MicroPython Package Manager, How-Tos and Much More! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi
EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey