Skip The Embedded Filesystem With The TAR-like UTFS Format

If you need to store some data on a resource-constrained embedded platform, the prospect of dragging in a dependency for something like FAT filesystem access to flash or other storage medium can seem rather daunting. Not only is your binary size now significantly larger, the overhead of these filesystems is also not insignificant as they were not really designed for this type of environment. Here [Drew Gaylo]’s UTFS format is an interesting alternative to just writing raw binary data to said storage medium.

As explained in the accompanying introduction article, the basic idea is similar in scope but very much slimmed down compared to the venerable Tape ARchive (TAR) format, hence the Micro (µ) Tar File System name. The provided UTFS implementation is quite small, spanning two source files in C99 with zero heap usage. Targeting a custom store medium requires implementing one read and one write function to match the underlying platform.

A couple of examples are also provided, covering using the built-in Flash of a SAMD20 MCU and the EEPROM of an ATmega328. Compared to raw binary data that’d have to be fully rewritten, UTFS allows for sections of the storage to be accessed as files and thus updated in-place.

Building An Organic Flow Battery Based On Green Tea

As simple of a concept flow batteries are, the used chemicals can still be somewhat problematic in the context of a school experiment. To this end [Markus Bindhammer] decided to implement a flow battery version that uses compounds from green tea for its electrolyte, based on a German research paper from 2016.

The flow battery construction from the paper by Rosenberg et al., 2016.

These organic flow batteries can use gallic acid, pyrogallol as well as the polyphenols in green tea, making them rather safe even in the hands of more careless students. The demonstrated flow battery uses a carbon electrode with activated carbon around it to increase surface area, a platinum wire electrode, and a graphite foil as third electrode.

In the paper a silver electrode is also used, along with the additional electrodes, and a terracotta flower pot as the barrier between the carbon and graphite electrodes, with [Markus] further explaining that there are fortunately cheaper options than what he is using, especially with the flower pot instead of a special ceramic vessel.

The electrolyte solution has epigallocatechin gallate (EGCG) dissolved in it, which here comes in the form of finely ground green tea powder (commonly known as matcha), which so happens to be pretty rich in this substance. In the below graphic by [Markus] you can see the complete set of solutions and other relevant details.

Of course, the performance of this type of flow cell isn’t amazing, with a cell voltage of less than a volt and a few mA of current, but it’s enough to spin a small fan, and to light up a few LEDs. This would be more than enough to demonstrate the reaction and flow cells in general, as long as you don’t mind donating some tasty matcha to science.

Continue reading “Building An Organic Flow Battery Based On Green Tea”

8087's 4-bit adder block. (Credit: Ken Shirriff)

The Adder At The Heart Of Intel’s 8087 FPU

As simple as the concept of adding two numbers appears at first glance, doing it in the 1970s in Intel’s 8087 FPU with its 69-bit adder was still a tall order. This is namely the core feature that many features like tangents, cosines and exponentiation rely on, so it had to be basically perfect. In a recent die-level analysis of the 8087 [Ken Shirrif] dives into the structure, layout and functioning of this ‘beating heart’ of this piece of semiconductor history.

The Intel 8087 adder and associated registers. (Credit: Intel)
The Intel 8087 adder and associated registers. (Credit: Intel)

Although anyone can build a simple binary adder out of off-the-shelf parts including 74-series logic ICs, the problem is to make it fast so that the 69th bit doesn’t have to wait for e.g. a carry to trickle all the way through the preceding bits. The main way that this is solved is by breaking addition into 4-bit blocks, reducing the problem by a factor of four, along with an optimized Manchester carry-chain carry-lookahead implementation.

The main advantage of this variation of a carry-lookahead is that it reduces the number of required transistors, without sacrificing too much performance. Later on Intel would switch to the faster, but more transistor-intensive Kogge-Stone adder.

Implementing this entire adder with NMOS technology and wiring it all up to the rest of the die required a lot of ingenuity on the side of the Intel engineers, as previously noted this adder is effectively always used in any operation at some stage. This necessitates many surrounding registers and in turn circuitry to manage these, with part of the complexity handled in microcode and part in silicon.

Honda Civics And Installing Software With Android Test Keys

As more and more of the ‘smart’ infotainment systems in cars begin to age out of support, it becomes increasingly more relevant to figure out how to do something with that lump of computer-and-display sitting prominently in the dashboard.

Here [Eric McDonald]’s reverse-engineering of the 2012-era Android-based infotainment system in a 2021 Honda Civic is an interesting case study, with recently the discovery made that the head unit of these infotainment systems can be updated via USB by using standard Android Open Source Project (AOSP) test keys as these were left on the file system.

This is a nice update to his initial reverse-engineering back in the innocent days of 2023, when such a facepalm-worthy exploit seemed unimaginable, but then the ‘s’ in ‘infotainment’ has always stood for ‘security’. In this exploit that [Eric] calls the EvilValet attack, it means that anyone with physical access to the USB port inside the car can theoretically run arbitrary code signed with these test keys, as documented in the GitHub project.

So far this rather foolish security issue has only been confirmed on [Eric]’s 2021 Honda Civic, but considering how those – often third-party – infotainment systems tend to get reused and recycled across generations and car variants, it’s quite possible that more Android-based infotainment systems have this vulnerability.

This exploit is obviously a double-edged sword, as on one hand it’s great that an owner of one of these cars can now basically do whatever they want with said infotainment system, but on the other hand it means that anyone who slides into your car with a USB stick can do the same.

Learning About Ground Loop Isolators Thanks To A Scam Product

When [Denki Otaku] bought a ¥1,200 (roughly €6.5) XLR ground loop isolator off Japanese Amazon, he initially didn’t suspect that anything was off. Since they’re fairly simple devices, with basically a 1:1 transformer per channel in some kind of enclosure, the price wasn’t unreasonable.

That’s before a teardown showed that this ‘ground loop isolator’ actually contains direct wiring between the XLR sockets, but that doesn’t mean that you cannot still make an educational video about the real devices.

First the basic theory is explained, before the fake ground loop isolator is subjected to an analysis, showing why you’d want to use the real deal. Of course, detecting a fake one is pretty easy, as a simple continuity test with a multimeter  or similar will show that DC passes right through the fake isolator.

Next a real ground loop isolator was designed with a custom PCB and a high-pass filter added to the feature list. Here rather than a very basic filter with cheapo parts there was definitely some gold-plating going on, but it does show what you can do in addition to just adding a few simple transformers for ground isolation purposes.

The finished ground loop isolator device is pretty large, and would definitely require a larger enclosure than the homeopathic device, but it makes for an easy test bed with convenient access during the subsequent analysis.

Here each of the two channels has its own transformer and filter, with an initial test just by ear making the injected 2 kHz noise signal appear to go completely away.

Next, an oscilloscope is used to visualize the functionality, with the non-isolated 440 Hz test signal first shown with and without the injected noise, showing the clear impact of the noise and subsequently the isolator.

Of course, high-frequency noises will still pass through the transformer via parasitic capacitance leakage between the windings, so it’s not a silver bullet. Here the analysis at the end of the video shows the noise-rejection characteristics of these isolators, and why adding a high-pass filter makes a lot of sense. Finally, the scam device’s XLR connectors were reused in an enclosure for this custom board, giving it some purpose after all.

Continue reading “Learning About Ground Loop Isolators Thanks To A Scam Product”

Building A Ceiling-Based Crane Robot To Keep A Room Clean

One of the joys you get to experience whether as a proud parent or pet owner is that a lot of things get left around haphazardly. You could of course pick every piece of discarded clothing, half-destroyed toy and detritus yourself, but as a parent of three children himself [Nathaniel Nifong] opted to use his engineering background to potentially over engineer a wires-suspended robotic claw to do this picking up for him.

What he calls Stringman robots requires an anchoring point at four corners of a room, after which the robotic crane can then scour across the ceiling, identify targets to pick up and move these to predesignated drop-off points. It’s an open source project with the LeRobot-based firmware available on GitHub in addition to build instructions for the physical hardware. There’s also a pilot run of ready to use hardware and kits for those who want to trial it, but aren’t interested in building it themselves via [Nathaniel]’s company website.

The basic idea is that this crane can run for an hour or so and deal with the mess in its room without having to do anything yourself. The process isn’t perfect yet, of course, with the underlying diffusion transformer to implement machine vision requiring more refinement. The gripper itself struggles with objects like books, which can be a concern for parents and bookworms, and of course while the crane is operating the wires will dip down as a potential risk to anyone in the room.

Compared to an overhead crane like a traditional bridge crane this wire-suspension crane is probably more stable, but either is an interesting engineering challenge when applied to a household. Next it would probably also be cool if items could be put away where they belong instead of dropped into a bin, as so far that task will still be left to deal with by the adult humans.

Continue reading “Building A Ceiling-Based Crane Robot To Keep A Room Clean”

The Y2K Bug In BSD 2.11 That Survived 2000

A year before the arrival of the brand-new 21st century, the Year 2000 Bug was predicted to grind modern society to a halt and ensure that at the dawn of the year 2001, there’d be nothing left but the smoldering wreck of once great societies. Thanks to the concerted efforts of countless engineers, software developers, and many others, we were left with mostly just silly glitches, with one of these surviving bugs apparently just discovered, as [Van Heusden] reported on an NTPd bug in BSD 2.11.

To be fair, it is a pretty obscure one, as the demonstration involves BSD 2.11 on a PDP-11/70 from 1975, so it’s probably not something that still sees much use outside retrocomputing enthusiast circles. In the blog post, the demonstration involves connecting a specific adapter by Traconex, capable of receiving WWV/WWVH time signals, and setting it up for use by the NTPd prior to running the ntpd -a any -d -d -d -d command.

Continue reading “The Y2K Bug In BSD 2.11 That Survived 2000”