On Sunday we wanted to do a bit of simple home improvement; or perhaps more accurately we wanted to engage in some “home-disimprovement remediation.” The switch for our in-sink garbage disposal was worn out and we had already purchased the replacement.
After some circuit hunting, grumbling about poor decisions by electrical contractors who know cursive, and sticking multimeters where they vaguely belong, my roommate decided to spare me a visit from the grim reaper and power down the entire condo. (Note that I am operating under the assumption that electrocution works in real life the same way it does in The Sims™.)
I went upstairs and powered off my PC, followed by my UPS. Hindsight being 20/20 this was the first indication our afternoon would not go as planned, as I heard the UPS’ inverter kick in briefly. (It is possible the condo was powered down too soon, but I think the more likely explanation is APC’s user interface is needlessly obtuse and I accidentally put the unit into test mode.) Normally this should not be an issue, as the primary protected load was already shut off, but I believe this will be relevant later.
We pretended to be master electricians for a few minutes, and eventually got the switch wired up and installed back into the box. After re-connecting the service, a quick test of the disposal, and the resetting of our dumber appliances, we wrapped up and went to sit at our terminals to enjoy what was left of our Sunday.
As I was trying to get my computer to cooperate the roommate comes to ask if I have internet. It had not really occurred to me that could even be an issue, but lo-and-behold my PC is not, in fact, connected to the internet. I give the router the reach around and turn it back on manually, only to find that I still do not have internet, or even LAN connectivity.
After much battling with our mini-PC I come to find out that it no longer sees its boot device. (One 128GB NVMe SSD, which I now have learned is some obscure Chinese brand.) I pop the drive into my own PC and it, of course, shows up immediately. At this point I’m cursing myself for giving away my only other mini PC that can run PfSense, as it would have been trivial here to copy the config over to a working unit. I put the disk back in, now confident it is fine, and find that sometimes the unit will POST to an EFI shell with no block devices, sometimes it will power on and not POST (power LED visible, network activity indicators visible, but no disk I/O, no console activity, etc.), other times it will get to the BIOS splash screen and hang.
The roommate has given up at civilized society and returned to tradition. (Assembling model Gundams on the living room table.)
I have given up at civilized society and resorted to pulling out an old Ubiquiti product to use in the interim while I wait for a replacement mini PC from China. (Which will cost ~$130, with $89 in tariffs, due to current events.)
I connect the EdgeRouter4 and, to my surprise, it mostly works. The DNS search name is wrong, as are some DHCP options, but somehow it managed to have my VLANs mostly configured and working. Also, to Spectrum’s credit, their modem/CMTS no longer freaks out about handing out IPv6 prefixes to different DUIDs. I have no memory of setting up these VLANs (on the ER4), but I am grateful for not having to break out the ThinkPad and an Ethernet cable to fix them on the world’s tiniest LAN.
Maus finishes his Gunpla, I begrudgingly pay my own government to import a router with no real contemporary US alternative, and we make the last of our homemade pizza from scratch. One would think the story ends here, but the thing about Sunday’s is they always seem to be followed by Mondays.
After a quick web search during my break I find two suggestions about these mini PCs:
- The CMOS battery is dead
- The caps in the passively cooled units overheat and die.
The second seems plausible, but the first is easy to test, so I make a mental note to do so when I get home. I pop out the battery and sure enough I can watch it dropping from 200mV to 20mV in real time on my multimeter. I hook it up in impedance mode and measure like 100kOhm across it. (A known good Energizer CR2032 measures ~3.2V and open circuit in the same tests.)
I pop in the battery and sure-as-shit the unit makes some beeps and starts up, it immediately starts booting into FreeBSD with an invalid date and time. The funny thing is I don’t recall the unit beeping before this; I’m not sure if that’s just a changed BIOS setting, or if that is mayhaps related to the dead CMOS battery, but it would appear to me that the battery failed short prevented the firmware from initializing properly.
The unit now powers itself back on after AC loss as designed, and I have had no real issues with it since the battery replacement. (Apart from the ear-piercing triple beep on reboots; but I can’t be arsed to go digging in a stock AMI BIOS for that option right now.)
So if you have one of these TOPTON mini PCs, or a similar device which you can find all over Amazon / AliExpress, I would highly recommend replacing the CMOS battery that comes with them sooner rather than later. As a mildly humorous observation: I noted that the Energizer battery is probably a good 33%+ thicker than the Shenzhenbrand it is replacing. (I’d measure it w/ my digital callipers for you, but they’re fucking dead because they have a fun habit of turning on in their case and running the cheap chinesium batteries down to nothing.)
I have computers with working CMOS batteries that lasted one or two decades, so the idea that one failed in 2 years is crazy to me, but empirically that is what has happened. Now perhaps me putting the UPS into test mode did something to anger that device’s 3.3V rail, I’m not sure I have any way of knowing, but I can say that the router has run happily off that UPS’ inverter many times in the past and always came back on-line.
I guess my other advice would be to always check your voltage rails, contrary to what gaming PSU manufacturers would have you believe, I guess 12V is not the only rail that matters!