13 Jan 2026 ------------ Fun time: Electronics I always tell my friends to find hobby that "never ends", and I am quite good at it. Before the Christmas family trip, I was winding down and decided to "fix" my broken laptop as well. Didn't do anything super fancy - I just put the old keyboard part, which also has a control board on the right that I believe controls the power button and the USB slot and something else, back to the laptop. The problem with that old one is that the machine won't start unless it is connected to power. But this did "fix" the laptop, so I have one more computer to use now and it is just a tiny inconvenience comparing to not able to use it at all. To my surprise, it felt a bit slower than the Kangaroo Mobile Desktop. I guess that's because it is connecting to the Internet through a USB Wi-Fi dongle, typical problem of BSD, and the slower network speed made me feel like the computer itself is slower... Anyway, saying it is "still usable" doesn't do the justice - I can now use a proper browser. It didn't get unset when I opened up Firefox on it, and the i3 bar supports more modules too. Maybe I was being trained by the Kangaroo mini PC for too long so these all feel unexpected. I quickly moved everything to this new-old laptop and try out things that I couldn't do before. But at the same time, I randomly bought a 8051 development board from a local shop. Sometimes I just got this brain-fog moments...when I saw the board which has a STC89C52RC on it, I looked it up on the Internet. What? The chip gives 48 Mhz, 8K flash and 512 bytes of RAM?! It is much more powerful than the AVR! I bought it and kept thinking about why people would use AVR over this, until when I reached home did I realised that I was comparing it in my head against the 10 MHz ATtiny85 in my many hobby/learning projects. But anyway, it did help me to learn even a little bit more about these small electronics. I learned about SDCC, was amazed by how many microcontrollers it can support. I guess in the olden days, developing for microcontrollers might be a more unified experience that people have aim to create universal tools for everyone, so that developers and product creators can write a piece of code and choose the right MCU to use, rather than being binded to one brand. I started to code some simple stuffs and test on the dev board. Before fixing the laptop, I learned about using interrupts and timers, so it didn't took me too long to find the instructions on the datasheet. But funny enough, when I wanted to move on to testing out ADC and PWM, I knew why Arduino picked AVR instead...looks like 8051 MCUs doesn't support ADC and PWM by themselves, unlike AVR MCUs. But challenge is what makes it fun, so I guess I have lots more to do with it and I like it. I also wanted to continue working on my Radxa E20C "router". The previous hurdle I had was that the board couldn't use the LAN ports, couldn't see the micro SD card and couldn't see the USB port too. The plan was to dd an image of an installed system and flash it directly into the E20C. To have an installed system, I kept thinking that I needed a VM. QEMU would be the easiest but first I would need a Linux computer which had enough storage. This kept on hold until one day I bought a SQFMI Beepy on eBay... A strange thing that bugged me for a while - since I have the Librem 5, I noticed that I wouldn't turn that on unless I was at work, so it served like a personal PC on the side. I never turn it on otherwise, except when I needed some Linux-only applications at home. Which means, cellular connection was just unnecessary for me. I just need a hidden device for connecting to a shell when I am at work, or a secret backup computer for odd tasks. Another brain fog moment led me to a conclusion: why not use a Wi-Fi only BSD device so I will be happier. Conincidentally, someone was selling their Beepy on eBay and thing just went along the most natural way... So to prepare for the arrival of the Beepy, I thought I should install OpenBSD on a micro SD card first. My spare Raspberry Pi Zero 2W would be the best for this job. I checked again online for tutorials, but I saw the DTB file for the board in the miniroot image. Not sure whether it meant the board is now supported in 7.8, I went ahead patching it and...it didn't work. After a few more attempts, I tried the original miniroot. Totally unexpectedly, it worked! Some sets failed to install, so in the end I only installed the base set and the man set. The bwfm(4) driver was also working so it was easy to get the board updated and have some essential pacakges installed. The moment I thought "oh, that's easy. Now I have a portable OpenBSD PC", I realised that it didn't have the drivers for display and the BB keyboard...I can use Raspberry Pi OS and call it a day. I am just not sure why but Linux feels "messy" to me, so I will want to use OpenBSD or NetBSD if I can. Building a custom OpenBSD kernel felt uneasy to me, which again I don't know why. I looked for information/tutorials about building drivers in NetBSD. It turned out that a tutorial has already been written a long time ago and it is actually very good. By pure chance, I have a BeagleV-Fire board, among the other RISC-V boards for learning purpose, which seems to be able to run NetBSD 11. Given it has loads of GPIO heads, my plan is to try building drivers for some sensor modules on hand and see how it goes. But then, the Raspberry Pi Zero 2W reminded me that I could put a miniroot onto a micro SD but install the system to a 8 GB USB stick! So I did that too but it was still not working on the Radxa E20C. Though the 7.8 miniroot image could now initialise the micro SD card driver on the E20C, just somehow not writing the MBR record. To add more into the mix/mess, I was very frustrated that I couldn't get the flash tool for BL602, a RISC-V MCU, installed on my OpenBSD laptop. I tried an unofficial Python-based one first which kept throwing errors at me during flash; I downloaded unofficial-official Go-based one which didn't work at all; The last, now new official Python-based one seemed to need Rust which couldn't be installed successfully on mine. My next target: fix the Go-based flash tool so that I can make the BL602 boards blink... Fun times!