Eavesdropping By LED

If you ever get the feeling someone is watching you, maybe they are listening, too. At least they might be listening to what’s coming over your computer speakers thanks to a new attack called “glow worm.” In this novel attack, careful observations of a power LED on a speaker allowed an attacker to reproduce the sound playing thanks to virtually imperceptible fluctuations in the LED brightness, most likely due to the speaker’s power line sagging and recovering.

You might think that if you could see the LED, you could just hear the output of the speaker, but a telescope through a window 100 feet away appears to be sufficient. You can imagine that from a distance across a noisy office you might be able to pull the same trick. We don’t know — but we suspect — even if headphones were plugged into the speakers, the LED would still modulate the audio. Any device supplying power to the speakers is a potential source of a leak.

Continue reading “Eavesdropping By LED”

SYPHCOM, the compact CO2 sensor

Compact Sensor Keeps You Safe By Watching CO2 Levels

Remember when work meetings were just a bunch of people filling up a small, poorly ventilated room with their exhaled breath? Back in the good old days, all you had to worry about was being lulled to sleep by a combination of the endless slide deck and the accumulation of carbon dioxide. Now? Well, the stakes may just be a little bit higher.

In either situation, knowing the CO2 level in a room could be a handy data point, which is where a portable CO2 sensor like this one could be useful. Or at least that’s [KaRMaN]’s justification for SYPHCOM, the “simple yet powerful handheld carbon dioxide meter.” The guts of the sensor are pretty much what you’d expect — an Arduino Pro Micro, a SenseAir S8 CO2 sensor board, and the necessary battery and charging circuits. But the build does break the mold in a couple of interesting places. One is in the choice of display — a 1980s-era LED matrix display. The HDSP2000 looks like it belongs in a nice bench meter, and is surprisingly legible without a filter. It looks like it flickers a bit in the video below, but chances are that’s just a camera artifact.

The other nice part of this build is the obvious care [KaRMaN] put into making it as small as possible. The layout of boards and components is very clever, making this a solid, compact package, even without an enclosure. We’ve seen CO2 sensors with more features, but for a quick check on air quality, SYPHCOM looks like a great tool.

Continue reading “Compact Sensor Keeps You Safe By Watching CO2 Levels”

SQLite On The Web: Absurd-sql

Love it or hate it, the capabilities of your modern web browser continuously grow in strange and wild ways. The ability for web apps to work offline requires a persistent local storage solution and for many, IndexedDB is the only choice as it works across most browsers and provides a database-like interface. However, as [James Long] found, IndexedDB is painfully slow on chrome and limited in querying ability. He set out to bring a tool he was familiar with, SQLite, and bring it to the web browser as absurd-sql.

Why absurd? Partially because most browsers (not chrome) implement IndexedDB on top of SQLite. So for many browsers, it is just SQLite on top of IndexedDB on top of SQLite. Luckily for [James] there already was a project known as sql.js that uses emscripten to compile the C-based SQLite into WebAssembly. However, sql.js uses an in-memory storage backing and all data is lost when refreshing the page. [James] tweaked SQLite’s method of reading and writing blocks. Instead of being memory backed, he added a layer to read and write blocks from IndexedDB. This means that only sections of the database need to be read in, bringing in huge performance gains.

a graph showing absurd-sql beating IndexDB on every benchmarkThat brings us to the other reason why it’s absurd. On chrome (as well as Firefox), absurd-sql beats IndexedDB on almost every benchmark. A query like SELECT SUM(*) FROM kv led to stunning results.

So what’s the downside? Other than a somewhat large WebAssembly file that needs to get downloaded (409KB) and cached, there really isn’t. Of course, it’s not all roses when it comes to web development. Native SQLite runs 2-3 times faster than absurd-sql, which demonstrates how slow IndexedDB really is.

There are other storage standards on the horizon for web browsers, but locking becomes an issue. SQLite expects synchronous reads and writes because it’s just simple C. IndexedDB and other storage solutions are asynchronous as the event loop of Javascript lends itself well to that model. Absurd-sql gets around that by creating a SharedArrayBuffer that is shared with a worker process. The atomics API is used to communicate with the buffer. In particular, atomics.wait() allows the worker to block main thread execution until the read or write has finished. From the perspective of SQLite, the operations are synchronous. IndexedDB provides transactions so multiple connections can happen (for example multiple tabs open). Multiple readonly transactions can occur in parallel but only one readwrite transaction can be in flight.

Why not pull up your browser and start playing around with it? You’re already doomed to learn WebAssembly anyway.

mRNA badge next to an image of the actual Moderna vaccine nanoparticle.

Celebrate MRNA Vaccine With This Badge That Blinks The Nucleotide Code

To celebrate getting his second vaccine dose [Paul Klinger] combined two of our favorite things — blinking lights and wearable tech — to create an awesome mRNA vaccine badge.

The badge, which is designed to be worn like a pendant, will slowly blink through all 4,000 nucleotides of the Moderna vaccine over the course of 10 minutes. Watch the video after the break to see it in action. Don’t worry if you got the Pfizer vaccine, you can use the interface button on the back of the badge to change over to Pfizer’s mRNA sequence instead. There’s even a handy legend on the badge, identifying the lipids in case your microbiology skills are a bit rusty.

On the reverse side of the board, you will find a handful of current limiting resistors, a CR2032 battery holder, and the ATtiny1617 microcontroller that runs everything. To assist in converting the mRNA sequence into LED pulses, [Paul] wrote a Python script that will automatically import the nucleotide string from the standard .fasta file and store each nucleotide in just 2 bits, allowing the entire sequence to fit in the program memory of the microcontroller.

This isn’t [Paul’s] first RNA-related project; he originally developed the aforementioned Python script to compress the entirety of the COVID-19 sequence, containing over 30,000 nucleotides, into program memory for his Virus Blinky project, that we featured last year.

Continue reading “Celebrate MRNA Vaccine With This Badge That Blinks The Nucleotide Code”

The interior of a failed boiler.

Fail Of The Week: Learning How Not To Silver Solder

Sure, there are subtleties, but by and large it’s pretty easy to pick up soldering skills with a little practice. But wait! Not all soldering is created equal, and as [Quinn Dunki] learned, silver soldering is far harder to get right.

Granted, the job [Quinn] is working on is much more demanding than tacking some components to a PCB. She has been building a model steam engine, a task fit to put anyone’s machining skills to the test. And a steam engine needs a boiler, which is where the silver soldering comes in. As she explains in the video below, silver soldering, or “hard” soldering, uses solder that melts at a much higher temperature than “soft” solders like we’re used to in electronics. That’s a big advantage in the heat and pressure of a boiler, but it does pose some problems, many of which [Quinn] managed to discover as she tried to assemble her copper beast.

It turns out that heating a big hunk of copper evenly without burning off the flux actually isn’t that easy, though you can’t say she didn’t give it the old college try. In the process, she managed to share a number of tidbits that were really interesting, like the fact that drawing acetylene from a tank too fast can be dangerous, or that model steam boilers have to be certified by qualified inspectors. In the end, her boiler couldn’t be salvaged, and was put to the saw to determine the problem, which seems to be her initial choice of heating with oxyacetylene; after that initial failure, there was little she could do to save the boiler.

As [Quinn] says, “Failure is only failure if you don’t learn from it.” And so it may be a bit unfair to hang “Fail of the Week” on this one, but still — she has to go back to the beginning on the boiler. And we already know that model steam engines aren’t easy.

Continue reading “Fail Of The Week: Learning How Not To Silver Solder”

Sparkpad Sparks Joy For Streamers

The best streamers keep their audience constantly engaged. They might be making quips and doing the funny voices that everyone expects them to do, but they’re also busy reading chat messages aloud and responding, managing different scenes and transitions, and so on. Many streamers use a type of macro keyboard called a stream deck to greatly improve the experience of juggling all those broadcasting balls.

Sure, there are dedicated commercial versions, but they’re kind of expensive. And what’s the fun in that, anyway? A stream deck is a great candidate for DIY because you can highly personalize the one you make yourself. Give it clicky switches, if that’s what your ears and fingers want. Or don’t. It’s your macro keyboard, after all.

[Patrick Thomas] and [James Wood] teamed up to build the perfect stream deck for [James]’ Twitch channel. We like the way they went about it, which was to start by assessing a macro pad kit and use what they learned from building and testing it to design their ideal stream deck. The current version supports both the Arduino Pro Micro and the ESP32. It has twelve key switches, a rotary encoder, an LED bar graph, and an OLED screen for choosing between the eight different color schemes.

If you’d rather have dynamic screens instead of cool keycaps, you can do it cheaper by making non-touch screens actuate momentaries.

Know Audio: Amplifier Nuts And Bolts

As we’ve followed a trail through Hi-Fi and audio systems from the listener’s ear towards the music source, we’ve reached the amplifier. In our previous article we gave a first introduction to distortion and how some amplifier characteristics can influence it, and here we’ll continue along that path and look at the amplifier itself. What types of audio amplifier circuits will you encounter, and what are their relative merits and disadvantages?

A Few Amplifier Basics

Horowitz and Hill's Transistor Man
Horowitz and Hill’s Transistor Man

If you know anything about a transistor, it’s probably that it’s a three terminal device whose output pin forms part of a potential divider whose state is dependent on what is presented to its input pin. The Art of Electronics had it as a cartoon of a man standing inside a bipolar transistor and adjusting a variable resistor between collector and emitter while watching an ammeter on the base.

Properly biased in its conducting range, a transistor can behave as a linear device, in which the potential divider voltage moves in response to the input in a linear relationship, and thus the voltage on the output is an amplified version of the voltage on the output. This is the simplest of transistor amplifiers, and because different types of amplifier are referred to by lettered classes, it’s known as a class A amplifier. Continue reading “Know Audio: Amplifier Nuts And Bolts”