High-Speed Reservoir Computing With Integrated Laser Graded Artificial Neurons

So-called neuromorphic computing involves the use of physical artificial neurons to do computing in a way that is inspired by the human brain. With photonic neuromorphic computing these artificial neurons generally use laser sources and structures such as micro-ring resonators and resonant tunneling diodes to inject photons and modulate them akin to biological neurons.

General reservoir computing with laser graded neuron. (Credit: Yikun Nie et al., 2024, Optica)

One limitation of photonic artificial neurons was that these have a binary response and a refractory period, making them unlike the more versatile graded neurons. This has now been addressed by [Yikun Nie] et al. with their research published in Optica.

The main advantage of graded neurons is that they are capable of analog graded responses, combined with no refractory period in which the neuron is unresponsive. For the photonic version, a quantum dot (QD) based gain section was constructed, with the input pulses determining the (analog) output.

Multiple of these neurons were then combined on a single die, for use in a reservoir computing configuration. This was used with a range of tests, including arrhythmia detection (98% accuracy) and handwriting classification (92% accuracy). By having the lasers integrated and the input pulses being electrical in nature, this should make it quite low-power, as well as fast, featuring 100 GHz QD lasers.

Pixel Watch 3’s Loss Of Pulse Detection: The Algorithms That Tell Someone Is Dying

More and more of the ‘smart’ gadgets like watches and phones that we carry around with us these days come with features that we’d not care to ever need. Since these are devices that we strap onto our wrists and generally carry in close proximity to our bodies, they can use their sensors to make an estimation of whether said body is possibly in the process of expiring. This can be due to a severe kinetic event like a car crash, or something more subtle like the cessation of the beating of one’s heart.

There is a fairly new Loss of Pulse Detection (LoPD) feature in Google’s Pixel Watch 3 that recently got US FDA approval, allowing it to be made available in the US after previously becoming available in over a dozen European countries following its announcement in August of 2024. This opt-in feature regularly polls whether it can detect the user’s pulse. If not found, it cascades down a few steps before calling emergency services.

The pertinent question here is always whether it is truly detecting a crisis event, as nobody wants to regularly apologize for a false alert to the overworked person staffing the 911 or equivalent emergency line. So how do you reliably determine that your smart watch or phone should dial emergencies forthwith?

Continue reading “Pixel Watch 3’s Loss Of Pulse Detection: The Algorithms That Tell Someone Is Dying”

Canon Arc Form Drive exploded. Credit: Markus Kohlpaintner

A Deep Dive Into Canon Autofocus Lenses

Credit: Markus Kohlpaintner

Although taken for granted these days, autofocus (AF) used to be a premium feature on film- and digital cameras, with [Markus Kohlpaintner] taking us through an exhaustive overview of Canon’s AF systems and how they work. On Canon cameras AF became a standard feature with the introduction of its EF lenses in 1987, which are found on its EOS SLR (single-lens reflex) series of professional and prosumer cameras.

Over the decades, Canon has used many different AF drive mechanisms within these lenses, all with their own pros and cons. The article goes through each of them, starting with the original Arc-Form Drive (AFD) and ending with the newest Voice Coil Motor (VCM), showing their internal construction.  Of note are the USM (ultrasonic motor) types of AF systems that use a piezoelectric motor, the functioning of which using a traveling wave across the stator is also detailed, including the integrated feedback control system.

Ultimately the end user is mostly concerned with how well the AF works, of course. Here the biggest difference is probably whether manual adjustment is possible, with not all AF systems supporting full-time manual adjustment. With the newer AF systems this manual adjustment is now performed digitally rather than with a direct coupling. Although few people probably give AF much thought, it’s fascinating to see how much engineering went into these complex systems before even touching upon the algorithms that decide what to focus on in a scene.

TrapC: A C Extension For The Memory Safety Boogeyman

In the world of programming languages it often feels like being stuck in a Groundhog Day-esque loop through purgatory, as effectively the same problems are being solved over and over, with previous solutions forgotten and there’s always that one jubilant inventor stumbling out of a darkened basement with the One True Solution™ to everything that plagues this world beset by the Unspeakable Horror that is the C programming language.

As the latest entry to pledge its fealty at the altar of the Church of the Holy Memory Safety, TrapC promises to fix C, while also lambasting Rust for allowing that terrible unsafe keyword. Of course, since this is yet another loop through purgatory, the entire idea that the problem is C and some perceived issue with this nebulous ‘memory safety’ is still a red herring, as pointed out previously.

In other words, it’s time for a fun trip back to the 1970s when many of the same arguments were being rehashed already, before the early 1980s saw the Steelman language requirements condensed by renowned experts into the Ada programming language. As it turns out, memory safety is a miniscule part of a well-written program.

Continue reading “TrapC: A C Extension For The Memory Safety Boogeyman”

The ESP32 Bluetooth Backdoor That Wasn’t

Recently there was a panicked scrambling after the announcement by [Tarlogic] of a ‘backdoor’ found in Espressif’s popular ESP32 MCUs. Specifically a backdoor on  the Bluetooth side that would give a lot of control over the system to any attacker. As [Xeno Kovah] explains, much about these claims is exaggerated, and calling it a ‘backdoor’ is far beyond the scope of what was actually discovered.

To summarize the original findings, the researchers found a number of vendor-specific commands (VSCs) in the (publicly available) ESP32 ROM that can be sent via the host-controller interface (HCI) between the software and the Bluetooth PHY. They found that these VSCs could do things like writing and reading the firmware in the PHY, as well as send low-level packets.

The thing about VSCs is of course that these are a standard feature with Bluetooth controllers, with each manufacturer implementing a range of these for use with their own software SDK. These VSCs allow for updating firmware, report temperatures and features like debugging, and are generally documented (except for Broadcom).

Effectively, [Xeno] makes the point that VSCs are a standard feature in Bluetooth controllers, which – like most features – can also be abused. [Tarlogic] has since updated their article as well to distance themselves from the ‘backdoor’ term and instead want to call these VSCs a ‘hidden feature’. That said, if these VSCs in ESP32 chips are a security risk, then as [Xeno] duly notes, millions of BT controllers from Texas Instruments, Broadcom and others with similar VSCs would similarly be a security risk.

Fixing An Unpleasant SD Card Slot Issue In A NanoVNA

SD cards & the much smaller microSD cards are found on many devices, with the card often accessible from outside the enclosure. Unfortunately there’s a solid chance that especially small microSD cards will find their way past the microSD card reader slot and into the enclosure. This is what happened to [Rob] of the SevenFortyOne Radios and Repairs channel on YouTube with a NanoVNA unit. While shaking the unit, you can clearly hear the microSD card rattling inside, courtesy of the rather large gap above the card slot.

After a quick teardown and extracting the lost microSD card, the solution to prevent this is a simple bit of foam stuck on top of the microSD card slot, so that the too large opening in the enclosure is now fully blocked. It’s clearly a bit of a design fail in this particular NanoVNA unit, worsened by the tiny size of the card and having to use a fingernail to push the card into the slot as it’s so far inside the enclosure.

While [Rob] seems to blame himself for this event, we’d chalk it mostly up to poor design. It’s an issue that’s seen with certain SBC enclosures and various gadgets too, where losing a microSD card is pretty much a matter of time, and hugely fiddly at the best of times. That said, what is your preferred way of handling microSD card insertion & removal in devices like these?

Continue reading “Fixing An Unpleasant SD Card Slot Issue In A NanoVNA”

Writing An OLED Display Driver In MicroZig

Although most people would use C, C++ or MicroPython for programming microcontrollers, there are a few more obscure options out there as well, with MicroZig being one of them. Recently [Andrew Conlin] wrote about how to use MicroZig with the Raspberry Pi RP2040 MCU, showing the process of writing an SSD1306 OLED display driver and running it. Although MicroZig has since published a built-in version, the blog post gives a good impression of what developing with MicroZig is like.

Zig is a programming language which seeks to improve on the C language, adding memory safety, safe pointers (via option types), while keeping as much as possible of what makes C so useful for low-level development intact. The MicroZig project customizes Zig for use in embedded projects,  targeting platforms including the Raspberry Pi MCUs and STM32.  During [Andrew]’s usage of MicroZig it was less the language or supplied tooling that tripped him up, and more just the convoluted initialization of the SSD1306 controller, which is probably a good sign. The resulting project code can be found on his GitHub page.