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?”

The Concertina Goes Electronic

The concertina is an instrument that features heavily in European folk music, of which there are a variety of types. [Xcott Craver] has built one, an anglo concertina of the type you may recognise accompanying sea shanties, but this is no ordinary squeezebox. Instead it’s an electronic concertina, and it’s a project with a significant attention to detail.

Perhaps the most obvious thing most of us know about a concertina is that it’s an instrument with two ends separated by a set of bellows, and manipulation of the bellows lends a lot to the music it produces. This instrument doesn’t have bellows, but its innovation is to simulate them through means of a load cell. The two sides of the wooden chassis are fixed, but the force exerted on them is measured.

The keys are Cherry MX switches with custom keycaps, mounted on a pair of PCBs. Driving the whole thing is a Teensy 4.0, and to avoid unfortunate accidents with ripped-out connectors there’s a USB extension lead as a bit of strain relief. You can hear the result in the video below.

This is like no other instrument we’ve seen here, though we’ve had a few electronically enhanced conventional concertinas and accordions. We like it for its interesting design.

Continue reading “The Concertina Goes Electronic”

On Chip Debug For (Some) MicroPython

If you’ve used MicroPython much, you know that debugging usually amounts to printing a few things out, trying your code out, and then repeating. But [ghi-electronics] wants you to have full on-chip source-code debugging in Visual Studio. You don’t need anything special to use it — just a supported MicroPython host and the same USB cable you program with now.

The downside is that you either have to build a custom MicroPython image and flash it or use one that they include. They support several Raspberry Pi Pico versions and ESP32 chips, as well. However, at least one “odd” Pico we had lying around wouldn’t take the firmware. A stock one did, and it worked as you would expect. A little more investigation showed the odd Pico (an RP2040 GEEK) probably did take the firmware; it just produced an error during setup. There is a known problem with Linux and the ESP32-S3 having similar behavior.

Continue reading “On Chip Debug For (Some) MicroPython”

Sony’s First Computer

In 1982, desktop computers were coming into their own, and no clear leaders had emerged. But everyone knew they wanted a piece of the action. This led to, among other things, Sony’s SMC-70, which, frankly, for 1982, was a good-looking, if not oddball, machine. [Tech Tangents] shows the machine off in a recent video.

From the front, the computer looks more-or-less like everything else. But as you move backward, you can see this computer wasn’t another typical entry into the market. One of the things that was the hallmark of successful business computers of the day was expandability. The earlier Altair had the later-titled S100 bus. The IBM PC had the ISA bus. But in both cases, you had to open the box to plug and unplug cards.

Continue reading “Sony’s First Computer”