When The Debugger Lies With Stale Cache Values

In a recent blog post by [Daniel Mangum] he goes over a scenario observed while debugging the Cortex-M33-based nRF54LM20, reading and writing values while running through a few scenarios. After initially it seemed to go seemingly without any issues, suddenly the GDB debugger would happily return values that suggested that a previous operation had not succeeded. Or, as the case turned out to be, stale cached values were being returned.

What follows is a very technical and low-level breakdown of how this MCU functions inside, especially its cryptographic features and Key Management Unit, which is used for storing sensitive information. The most amusing part is probably you can bypass the cached data by explicitly specifying the access port and memory address along with other parameters.

This ReadMemAP command supported by the JLinkGDBServer used here showed the right value, whereas the normal GDB read command using x kept returning the cached values. This raised the question of which cache was doing this. The direct read from the AHB-AP access port worked fine, so the suspicion is that the J-Link software’s own caching, with a run without the J-Link caching indeed working fine.

J-Link has had some hardware-related issues too, with this new issue pointing to an awkward software bug that could be table-flip-and-rage-quit worthy depending on how much time it wastes during a debug session. Fortunately [Daniel] seems to have caught this one quickly and had an easy way to bypass it, but we aren’t all that lucky.

 

The Low-Level Waste Dumps In The Atlantic Have Become Ecosystems

Dumping of the barrels into the Atlantic. (Credit: Greenpeace, Pierre Gleizes)
Dumping of the barrels into the Atlantic. (Credit: Greenpeace, Pierre Gleizes)

Recently French and international researchers took a look at the state of the thousands of barrels of radioactive waste that were dumped into the Atlantic Ocean between 1950 and 1990, trying to ascertain the state of this waste and its effect on the ecosystem.

Although a lot of fuss is made of the spent uranium fuel and high-level waste produced by light water reactors and fuel reprocessing facilities, the overwhelming majority of nuclear waste is low- and intermediate-level waste (LLW and ILW) churned out by hospitals, laboratories and various industries.

Due to the sheer volume of this waste over the decades creative ways have been sought to dispose of it, which include burying in landfills and incinerating.

For a while tossing such waste into the ocean was also deemed to be an excellent destination for LLW and ILW, with the latter especially encapsulated in bitumen or cement. This was the poured into the barrels that many people have come to associate with nuclear waste in general. Since the approximately 200,000 tons of such barrels and similar were tossed into the Atlantic Ocean decades ago the question was where they ended up and their state.

The Radiocean mission site lists the objectives, including the mapping of the sites and identifying the elements of the ecosystems in addition to any radioisotope levels and their effect on said ecosystems. As it turns out, although the barrels have definitely degraded and their contents are slowly collapsing, the local ecosystems seem to have adapted well, treating the dump sites more as convenient shelters rather than a hazard. Some more photos can be found on the Bluesky account of [Javier Escartin].

None of this should come as a surprise if you are aware of just how much radioactive material is already dissolved naturally in the oceans, with much more uranium present in seawater than can be mined on-shore. Although the introduction of isotopes that are not part of the normal thorium and uranium decay chains into the ocean is of course undesirable, it’s good to know that this rather haphazard treatment of LLW and ILW has apparently just resulted in some Atlantic Ocean floor critters ending up with an interesting reef.

Reviving The PoE++ Feature On A Ubiquiti Switch

Recently [The Parallel Port] was asked to take a look at repairing the PoE++ feature on a Ubiquiti switch that otherwise worked fine. This is a pretty nice 24-port rackmounted switch with 2.5 Gbit-capable RJ-45 ports and two 10 Gbit SFP+ ports, so by itself it’s pretty useful, but having the 400 Watt PoE feature just go AWOL still stings, especially if you bought it new for $800.

With power applied the switch starts up as normal, including its 1.3″ touch screen that provides direct port information as well as a fancy screensaver cum QR code for the AR feature.

After logging into the switch’s BusyBox console it showed that all ports reported bad for the PwrGood status, and there were PoE power status request errors in the log, but this could be just the consequence of something else. Using a PoE splitter it was confirmed that the PoE functionality was indeed dead.

After disassembly and some testing with a multimeter and thermal camera, a short and related hot spot on the PCB that the PoE power board connects to was identified, with the short persisting after removing this PCB from the switch. Since the switch had suffered a bit of an electrical event the TVS diode was checked, but it turned out to be fine.

Next to it, marked as fuses, were protective thyristor surge protection devices (Trisil), functioning as a crowbar device. These aren’t supposed to be shorted to ground until a surge event occurs, but these were indeed both shorted when measured directly. Clearly they had taken the brunt of the electrical event and sacrificed themselves in the process.

One replacement later of these devices the switch now happily reports a good PoE status and even was able to power a DC fan via the PoE splitter. Even if it wasn’t a particularly hard fix, this is definitely one of those cases where knowing how the protective circuit works can save a lot of time in diagnosing and fixing a fault.

Continue reading “Reviving The PoE++ Feature On A Ubiquiti Switch” →

UDP Broadcasting And The Brave New World Of IPv6

After recently working our way through UDP broadcasting and network subnetting all in the comfort zone of IPv4, it’s time to address the elephant in the room, the one wearing a bright neon ‘IPv6’ sign. Although it’s still very much a rumor at this point, supposedly IPv6 is slated to replace the venerable IPv4 protocol. Rather than just being IPv4-but-with-more-addresses, its designers took the opportunity to basically completely redesign the protocol for the futuristic world of the late 90s and the early 2000s.

Joking aside, IPv6 having been introduced in 1995 and still struggling to meaningfully displace IPv4 does invite some worries about just how easy it is to switch between these two fundamental internet protocols. Say if we wanted to join the future of the 2000s and adapt our software to speak IPv6 instead of IPv4, what would change about the aforementioned aspects of IPv4 UDP broadcasting and IPv4 subnetting?

Speaking as an ignorant developer who mostly knows IPv6 from those weird and hard to remember network addresses, as well as many broken router implementations, I’m not entirely convinced that I’m going to like what I’ll see.

Continue reading “UDP Broadcasting And The Brave New World Of IPv6” →

A Mini’s Infotainment System And The Joys Of Aftermarket Car Parts

Although [Arkandas] disclaims any interest in being a ‘car guy’, this is somewhat ironic in light of the sheer amount of modding he has performed on a range of cars over the years, a recent misadventure involving a BMW Mini F56’s infotainment system replacement and some light ECU reprogramming included. What happened exactly is covered in a detailed breakdown in a blog post.

The old iDrive infotainment system in the Mini. (Credit: Arkandas)
The old iDrive infotainment system in the Mini. (Credit: Arkandas)

One of the aspects that [Arkandas] disliked about this car was its iDrive infotainment system, itself a stripped-down version of the full-fat infotainment system in ‘real’ BMW cars, with a small screen and awkward UX. The idea was to replace this with a more full-featured modern system.

Since the infotainment system does hook into the car’s CAN buses and other systems it has to be compatible, of course. This took some research before ultimately a fancy €700 aftermarket replacement was ordered from a Chinese seller.

Long story short, the device was mostly compatible aside from a connector wired wrongly and creating a short. This was fixed, but then the loosely fitted display toppled off during a test drive and broke, so a replacement screen was ordered. This screen arrived without requisite factory programming, so [Arkandas] embarked on a long reverse-engineering session.

Before he was able to extract firmware from the broken display and flash it onto the new display he was offered a brand-new replacement for the whole device, which he accepted in return for sending the old unit back. Although this still left him with a range of questions, at least the new infotainment looks pretty spiffy.

The worst part about the whole experience was just how much waiting and agonizing over poor after-sale support was involved, along with all the things that can go wrong and turn a fun afternoon of fitting shiny new parts into a months-long ordeal. Since modern cars are basically just a stack of computers on wheels, this ensures that even ‘not car guys’ will be doing a lot more of such fun car modding.

Forget Trees, Add Fins To Your 3D Prints Instead

Perhaps one of the most contentious issues in 3D printing is that of supports, both because they’re an uncomfortable reminder of how gravity affects our prints and because the very idea of there being ‘one right way’ is bound to get you into some spirited discussions. That said, [Matthew Trahan] figured that neither regular grid supports nor organic tree supports are the answer here, and that the better answer is found in fins.

The problem with existing support approaches especially with FDM prints is that they can be fairly wasteful in terms of material, and they can leave serious marks on the printed object’s surface that require post-processing. These fins on the other hand are designed to require as little material as possible and snap off as cleanly as possible. The tool, developed with the assistance of Claude, can either run locally or be accessed via printfins.com.

Currently the idea is that these fins are baked directly into the STL model so that it’s a one-time thing, but it may eventually become available as a slicer plugin. The basic concept was pitched by [Slant3D], who gets credited in the video below, although in their approach they used CAD software to add the fin supports manually.

The fins are there to provide the support base, while small tines can be added to reinforce the connection to the model. These do make it less easy to snap off with minimal scarring, of course. Conceivably these fins could be made even more light-weight by adding gaps, but that probably would add to the print time.

Continue reading “Forget Trees, Add Fins To Your 3D Prints Instead” →

Why Raindrops Make For Pretty Good Antennae

A good rule of thumb is that everything that can interact with electromagnetic (EM) radiation is an antenna, which includes our mostly-salty-water-containing bodies and also raindrops and moisture in the air. This can be both a benefit or a curse, depending on whether you’re trying to broadcast a signal in rainy weather or operating a weather radar. Here it’s essential to understand what kind of antenna a raindrop really is to optimize for either scenario, which is where a video by [Marshall Bruner] provides a solid primer.

The video focuses on the Rayleigh regime, which may be familiar from atmospheric Rayleigh scattering that also affects EM radiation in the visible spectrum, giving those of us gifted with retinas capable of color vision those nice blue skies.

As the EM radiation passes through these little droplets in the air, their neutral alignment gets disrupted and causes them to turn into dipole antennae, moving along with the incoming frequency. The backscatter part of this event is what returns to the emitter, such as a weather radar. Here the volume and permittivity of the moisture sphere determines the strength of the signal, which is great if you’re actually operating a weather radar and wants to map out the moisture in some clouds, including the presence of snow.

There’s quite a lot of mathematics involved which is covered in the video and expanded upon in a related Python notebook.

Continue reading “Why Raindrops Make For Pretty Good Antennae” →