The Repair Nightmare That Are Smart Rings

In the quest to make every wearable device ‘smart’, a lot of electronics along have to be crammed in very small spaces, along with ways to make them resistant to environments that our bodies do not mind, like getting hit by a rainstorm or simply washing our hands. These two factors combined make especially devices like smart rings an interesting case study for repairability, with [iFixit] recently taking apart a modern Oura smart ring to assess its e-waste factor after the built-in battery dies.

The tiny 10.5 mAh Lipo cell in the Oura Ring 5. (Credit: iFixit)
The tiny 10.5 mAh Lipo cell in the Oura Ring 5. (Credit: iFixit)

The subject of the teardown video is the Oura Ring 5, a $400 smart ring that’s designed to track your vitals much like a wrist-worn fitness tracker — just in a much smaller package. This metal-and-epoxy sandwich can definitely survive a good rain shower and washing of hands, but to get to the internals rather forceful methods were needed, unlike previous Oura and Samsung smart rings where some applied heat was enough.

In the Ring 5’s case even more heat was needed to make the inner ring start to slide out, but by that point the Li-ion battery inside had already popped from the heat. The inner ring then got stuck and more violence was required to continue the disassembly and get to the super-tiny, 10.5 mAh battery. Of course, at this point the smart ring really won’t be getting back together, never mind still work or be waterproof, which is a central issue with these smart rings.

With the EU’s February 2027 deadline for user-replaceable batteries looming on the horizon, it’ll be interesting to see whether devices like this can squeeze into an exception category, or whether manufacturers will have to massively redesign or stop selling these devices to this rather large market. So far this particular regulation has already forced Nintendo to make a special Switch 2 console for the EU.

Continue reading “The Repair Nightmare That Are Smart Rings” →

How LLMs Can Be Assisted To Do Arithmetic Correctly

One of the most hilarious things you can do with an LLM-based chatbot is to ask it to do calculations. If it’s a well-written chatbot frontend, it can detect requests for arithmetic – like summing 1 and 1 – and pass it on to a dedicated calculator application, even if still cannot correctly count the ‘r’s in ‘strawberry’. This is where [Alvaro Videla] asks the question whether it is at all possible to perform arithmetic with a language model.

Since an LLM at its core is nothing but a vector space of probabilities that a matrix-based inference process uses to create a probabilistic output of tokens you’d not expect a lot of deterministic behavior. How can you do arithmetic without grounding it in some kind of deterministic process?

This is where [Alvaro]’s Rune project comes into play, which is ‘a mechanism-aware JIT compilation project for language-model arithmetic’. Although it is statistically impossible for an LLM to ever correctly perform any random series of arithmetic calculations, you can monitor the internal state of the model and interfere once the parameters of an arithmetic calculation have been identified. By putting the correct result back into the inference process and letting it continue you did not need to rely on external tools.

Ultimately this attempt sort-of worked, but was deemed a failure. It would seem that a language model is the wrong tool after all for replacing the humble calculator.

Easily Reuse 3D Printing Photopolymers With Depolymerizable Resin

Generally the idea with photopolymers as used with resin 3D printing is that the process only works in a single direction as with all thermosets: after polymerization under influence of UV light they become an inert lump of plastic. Being able to turn these lumps back into resin would of course be ideal, as it would make recycling incredibly easy. Here depolymerizable resin turns out to be a thing, with 3Dresyn being one company that sells additives and resin which enable this (found via Fabbaloo).

Irreversible (thermoset), partial and full depolymerization. (Credit: Machado et al., Nature, 2024)
Irreversible (thermoset), partial and full depolymerization. (Credit: Machado et al., Nature, 2024)

These additives and resins come in essentially two flavors based on which temperature they depolymerize at, which can be at either 80°C or 150°C. This comes at a cost, of course, with the ready-to-use resin coming in at an eyewatering €833.00 for a 1 kg bottle, a factor only slightly helped by the reusability aspect.

From a more technical perspective this depolymerization feature is fascinating, as it addresses the one aspect of thermosets (like SLA and epoxy resins) that thermoplastics have as advantage, especially from a recycling view. This type of circular photopolymer appears to be quite novel, with an article by [Machado] et al. from 2024 claiming to have demonstrated the first resin that can be photopolymerized, depolymerized and subsequently again photopolymerized in a closed loop.

In the demonstration by [Machado] et al. the depolymerization is achieved using dynamic disulfide bonds, with the pulverized printed samples put into a 2-methyl-tetrahydrofuran (MeTHF) solvent. After heating at 80°C for 3 hours with an inert atmosphere, most of the photopolymerized material had returned to its original, pre-printing state. In a more recent 2025 study by [Bo Yang] et al. an approach using catalytic thermal dissociation of dithioacetal bonds was explored.

Based on the available information by 3Dresyns it would seem that their product is closer to this latter approach, with depolymerization requiring putting the part into an oven at the target temperature for up to an hour, presumably in some kind of suitable container. This is said to target elements like sacrificial molds, reusable tooling and jigs that would otherwise be discarded, or need to melt like a thermoplastic instead of acting like a thermoset. Whether a solvent like MeTHF is required as in the two cited studies is sadly unclear based on a quick scan of the site.

Thanks to [SpillsDirt] for the tip.

Nintendo DS Port Of Super Mario 64 Released With Multiplayer Support

For some time now [Tobi Friedly] has been tinkering away at porting the original Super Mario 64 from the Nintendo 64 to just about any device imaginable. One of these being the Nintendo DS, with the code and build instructions now up on GitHub, along with the demonstration video below that shows off the added multiplayer functionality.

We previously covered this project and the challenges involved. The main problem that kept him from just taking the existing Nintendo DSi port by [Hydr8gon] and running it on the original DS is that the latter doesn’t have enough RAM to load the entire game ROM into memory. The integration of NitroFS for asset streaming took some time, along with addressing sound support and overall stability. Meanwhile it appears that multiplayer support was also added along the way.

This multiplayer involves two DS systems, each running its own copy of the game. This can be nice for co-op playing of the game, as well as just for goofing around in a 120 star fully finished game with a buddy.

Continue reading “Nintendo DS Port Of Super Mario 64 Released With Multiplayer Support” →

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.