Laser Your Way Into Debug Mode On The RP2350

The RP2350 is actually a pretty secure chip, all things considered. It has secure boot, ARMv8’s TrustZone to split secure and non-secure execution, and you can permanently disable debug — the Pi Foundation even included glitch detection, meaning the traditional ‘zap the chip until it obeys’ technique is blocked. That’s why the [Ledger Donjon] security team went full Bond Villain and strapped everyone’s favourite fruit-flavoured microcontroller to a table with a slowly-approaching laser beam.

Continue reading “Laser Your Way Into Debug Mode On The RP2350”

A Hotspot Becomes A Handheld

A Linux handheld computer is, in theory, easy and inexpensive given the availability of single-board computers, but in practice the budget invariably edges well into three figures. There’s an interesting alternative from [bkovac] that won’t break the bank as much, using a cheap 4G wireless hotspot, an iPhone USB keyboard case accessory, and, though a cheaper display could suffice, a fancy Adafruit Sharp memory display.

The hotspot is available from AliExpress for around 20 dollars/Euros/pounds, and it’s referred to by its model number, MF800. It’s powered by a Qualcomm MSM8916, also known as the Snapdragon 410, which you might have found in a budget cellphone early in the last decade. Importantly, though, it’s supported by mainstream Linux, and while it’s by no means the fastest on the block, it can be a poor man’s alternative to a Raspberry Pi. It comes with a small SPI display, but this project replaces it with a much bigger Sharp SPI memory display.

Continue reading “A Hotspot Becomes A Handheld”

Coreboot Hikes The Bay Trail To DRAM Initialization

This article is written on an open-source operating system, but not an open-source machine — the BIOS isn’t open-source, and even if it were supported by the coreboot project (formerly LinuxBIOS), there would still be a whole host of binary blobs required to get it to boot. On one vintage architecture, there’s one less blob, as coreboot can now initialize DRAM on Intel Bay Trail SOCs, as [Mate Kukri] presented in a talk at the recent Open Source Firmware Conference.

Bay Trail isn’t exactly cutting-edge hardware, to be sure — the SoCs are over a decade old at this point, and were only used in low-performance mobile applications like Chromebooks. On the other hand, coreboot has been on Chromebooks for at least as long. Getting DRAM set up is difficult because, well, you don’t have any memory to work with until you do. Traditionally, the way you did that was to call on one of the many proprietary ‘binary blobs’ provided with next to no documentation by the manufacturer. Reverse engineering that requires some serious bus-sluthing, which was done in software with the SerialICE debugger and the Unicorn Engine CPU emulator. The talk focused on that technique and how it might be applied more widely, rather than getting into the weeds of how to do DRAM init on one obsolete SOC. At some point the whole thing should be archived on the OFSC website so those of us not lucky enough to attend in person can hear what [Mate] — and all the other speakers — had to say.

Continue reading “Coreboot Hikes The Bay Trail To DRAM Initialization”

A black robotic hand is shown walking across a granite floor, using its fingers as legs.

Teaching A Robot Hand To Walk

Although it wasn’t apparently designed with this in mind, it seems particularly fortuitous that this walking robotic hand was released in time for Halloween. Designed by researchers from ETH Zurich, the slightly unsettling disembodied hand can use its fingers as legs to traverse terrain, push small objects around, and operate a keyboard.

The researchers started from commercially-available robot hand, equipped it with a battery and Raspberry Pi Zero 2 W, and developed neural net-based software to control it. The hand has twenty joints, four per finger, and the neural net iteratively outputs the next joint state, based on previous movements, the state of the hand, and the hand’s current goal. To train the net, the researchers built a simulated model, then used this for reinforcement learning; this yielded a faster walking speed than an adapted quadrupedal motion model did.

The hand was trained to move in a straight line, turn, recover from a fall, and press the keys of a keyboard (since it doesn’t have a camera, though, it can’t operate a keyboard by itself). The fall recovery is impressive to watch: in 21 out of 25 tests, it was able to right itself within twenty seconds. Due to the hand’s geometry, it drifts to the right while walking, so a constant correction needed to be applied. It did, however, manage to successfully cross fourteen varying surfaces, ranging in roughness from a rubber mat to gravel and grass. It even managed to push light objects toward goals.

The authors envision this kind of autonomous hand enabling greater freedom for a larger robot, such as a robot arm: if it needs to reach something farther away, the hand simply detaches and walks over. Regardless of the use to which they put in, such a project is already within reach of hackers; we’ve seen a few robotic hand projects here over the years.

Continue reading “Teaching A Robot Hand To Walk”

What Are Your Indispensable Software Skills?

Using tools properly takes skill, and this goes for software tools as well as hardware. You don’t just buy a paintbrush and on day one paint the Mona Lisa. Similarly, you can’t just open up a CAD program and whip out whatever 3D objects your heart desires, or fire up Vim and start typing. Software tools take a bit of learning before you can wield them efficiently, if even at all. And because you can’t be skilled at everything, no matter how hard we are all trying, it’s good to have at least some of the software tools you know do double duty.

Tom and I were watching [Clough42] design an electronics cabinet for a CNC machine. He does a lot of CNC machining and design work, so he’s no stranger to CAD software. So he downloaded all of the parts that he needed inside cabinet, slid them onto virtual DIN rails, modeled the hinges, and made sure that everything fit before buying anything.

Now I know that some of you out there do CAD modeling like this all the time, but for Tom and I, who are 3D printerers and PCB layouterers, doing the CAD without then following through and finishing up with the CAM seemed a bit novel. I never open CAD unless I’m going to have a machine make the thing – otherwise I’d just draw it out on paper, right? But [Clough42]’s point is that getting models of all of the subparts is so easy these days, you might as well model it.

If, and this is the big “if”, you know your way around the CAD tool of your choice. If you don’t yet, it’s going to be a couple of days’ worth of effort to get there. But once you reach CAD nirvana, you’ll find it’s useful for sketching up anything that has a third dimension to it, not just stuff you need to print out.

What other software tools are like CAD in that once you know them well enough, a wealth of applications opens up before you? Of was this just an instance of having a hammer and everything looking like a nail?

Using Azo Photoisomerization To Alter Semiconductor Film Properties

Generally semiconductor devices like transistors have fixed properties, but using an azobenzene (Azo) compound it’s possible to optically alter these properties by exposing them to UV light. This is demonstrated in a recent paper by [Jaehoon Ji] et al., as published in Science Advances, with accompanying coverage by Princeton University.

Building on previous research on e.g. flakes of MoS2 with photochromic Azo molecules, a functional semiconductor device was created. This uses a transition metal dichalcogenide (TMD) monolayer combined with the Azo compound, with the latter altering the electrical and optical properties of the structure.

In both n- and p-type FET semiconductors it was demonstrated using visible and UV light that this can alter the carrier densities in the material, effectively altering the FET’s behavior.

While this is of course just a proof of concept, it does show that by using (Azo) molecules that can respond to certain electromagnetic radiation frequencies, electric fields, temperature, etc. semiconductor devices can be created whose behavior dynamically changes with these factors. This could potentially provide new ways to make programmable circuits and sensors.

Emulating Memory Access: How Hard Can It Be?

There are so many things we approximate to make life simple. Wires, for example, have no resistance or other strange effects. Crystal oscillators output their exact frequency. But surely our model of how a computer stores and loads memory is accurate, right? You put data in a particular location and, later, you take it out. The [FEX-Emu] developers have a different perspective. Once you have caches and, perhaps, multiple CPUs, it isn’t that easy.

The basic problem is this: if one CPU (or, more accurately, bus master) writes to a location, will another CPU have access to the new value? X86’s Total Store Ordering model gives programmers strong guarantees about when loads and stores become visible, while ARM deliberately uses a weaker memory model that permits considerably more reordering for performance and efficiency.

An emulator can, in theory, compensate by translating ordinary x86 memory operations into ARM acquire/release operations, but doing that for nearly every memory reference can be expensive. Newer ARM extensions such as LRCPC help considerably, while Apple took a more direct approach by adding an x86-compatible TSO mode to Apple Silicon. That lets ordinary loads and stores behave the way translated x86 code expects with comparatively little overhead.

Continue reading “Emulating Memory Access: How Hard Can It Be?”