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”

Robot Chess But Each Piece Is A Small Robot

A topless chess piece. (Credit: 3DprintedLife, YouTube)
A topless chess piece. (Credit: 3DprintedLife, YouTube)

We have seen a number of self-playing chess boards over the years, but the general theme has been standard chess pieces moved by either an internal electromagnet or an external robotic arm. This is, of course, a reasonable choice, as it reduces complexity, and sometimes you can even use standard chess pieces on a regular board. But what if each piece could move by itself? That seems cooler, so that’s what [3DprintedLife] did with 3D-printed chess pieces that are also tiny robots.

Although technically not the first, as you can buy the commercial Chessnut Move offering, this being an open hardware and source project makes it a lot more interesting, also because the general design is generic enough to be usable for applications other than just playing chess.

The MiniBots, as the individual pieces are called, are built around a custom PCB with an ESP32-C3 module, two PMO8-2 miniature stepper motors with requisite drivers, a magnetometer, and are powered by a 170 mAh LiPo battery. Communication with the central hub is done using ESP-NOW, with each MiniBot using its own dedicated channel.

This hub’s mainboard also runs on an ESP32-C3 for the wireless interface, while the processing is handled via a serial link with a Raspberry Pi SBC that runs the main Python-based software. Localizing the individual pieces on the board is done by scanning electromagnets embedded in the board and using the readings from the individual magnetometers to triangulate the positions.

Although at the end of the video a basic prototype sort of works, the ESP32-C3, being a single-core MCU, tripped up the firmware, necessitating some changes that should be in the next update, along with power saving and easier recharging being issues to address.

If you want to see a more conventional chess robot, we’ve seen plenty.

Continue reading “Robot Chess But Each Piece Is A Small Robot”

Converting A Scanning Electron Microscope Into A TEM Is Surprisingly Easy

Although both a SEM and a TEM are electron microscopes, their working principles and images are very different. Whereas an SEM uses secondary electrons ejected after bombarding a sample’s surface with primary electrons, a TEM works more like an X-ray machine, with a sensor placed behind the sample to record primary electrons after they pass through said sample. It is, however, possible to turn a SEM into a TEM with some creativity, as [ProjectsInFlight] recently did with his SEM.

We previously covered how the SEM in the video was saved from being scrapped and subsequently revived, and now it is getting a pretty nice upgrade. That said, this SEM to TEM change isn’t anything new, with so-called STEM imaging having been possible for ages using a rather simple reflecting adapter. The problem here is that such adapters cost enough to make you dread filing a budget request, yet they are simple enough that you might be able to DIY one.

The main concern with the DIY adapter was clearance between the sample holder and the fragile components inside the chamber. This turned out to be a hair under 14 mm (0.55″), giving not a lot of space to work with, but that was relative to the standard bulky sample holder. With a thinner sample plate machined out of aluminum, significantly more space became available, including for the primary electron mirror and shield for the secondary electrons.

Some more lathe, milling, and tapping work later, the entire sample holder came together. During testing a hack was implemented to enable adjusting the mirror angle while in the evacuated vacuum chamber so that the adapter could be dialed-in. Subsequently, a first sample was imagined in the form of gold nanoparticles, which revealed a leaky secondary electron shield due to bypassing.

Further testing revealed that the shield needed to extend much higher to meaningfully block secondary electrons, after which the TEM image massively improved. Subsequently, a previously expired mosquito graciously donated its wings to science, with TEM imaging clearly revealing the delicate structures within these wonders of evolutionary design.

The next challenge will be to TEM image biological cells, which require substantial preparation.

This isn’t the first STEM converter we’ve seen. The SEM has a long checkered history that we’ve talked about before, too.

Continue reading “Converting A Scanning Electron Microscope Into A TEM Is Surprisingly Easy”

Deeply Optimized MSX Emulation On ESP32-S3 With VGA Output

ESP32-S3 board with VGA and audio output during development. (Credit: Ivan Svarkovsky)
ESP32-S3 board with VGA and audio output during development. (Credit: Ivan Svarkovsky)

The ESP32-S3 is by many metrics quite the powerful little computer, which has led to it being used even for things like emulating retro consoles and similar. Here [Ivan Svarkovsky]’s S3-MSX-PC project pushes the envelope by taking the multi-system Retro-Go project’s MSX component and optimizing it for the ESP32-S3’s Xtensa Lx7 CPU cores.

The project involves an ESP32-S3 as the core, requiring at least 8 MB of PSRAM (N16R8 configuration) to match the tested configuration. Any software is loaded into PSRAM before it’s executed, with the MSX1, MSX2 and MSX2+ supported.

For audio you have to wire up your own PDM filters to connect to the two GPIO pins that are used for audio output, while VGA output is handled by a basic 2-bit R-2R RGB222 DAC. For input devices you can use any USB keyboard, while software is added via the web interface or directly onto an SD card.

The Technical Deep Dive section goes into more detail as to what exactly got changed – with the blessing of the fMSX author – in the original fMSX core, such as targeting the Lx7 core’s cache dimensions and optimizing hot paths to avoid bottlenecks. Memory accesses were aligned for Xtensa and moving certain data from Flash to RAM was another change, along with the prevention of pipeline flushing due to certain branching decisions.

Considering that MSX specifications are based on a Z80 core, it’s not so crazy that one of these ESP32-S3 MCUs can effectively emulate them. The Retro-Go project itself claims to cover a whole swath of Nintendo and Sega consoles, as well as others, making it almost too easy to do some retrogaming without even having to drag out a Raspberry Pi SBC or so.