Bar code shown in a 3D plain in Vaporwave Aesthetic

Tech In Plain Sight: Check Digits And Human Error

Computers in working order and with correct software don’t make mistakes. People, however, make plenty of mistakes (including writing bad software or breaking computers). In quality circles, there’s a Japanese term, poka yoke, which roughly means ‘error avoidance’. The idea is to avoid errors by making them too obvious for them to occur. For example, consider a SIM card in your phone. The little diagonal corner means it only goes in one way. If you put it in the wrong way, it is obviously wrong.

To be successful at poka yoke, you have to be able to imagine what a user might do wrong and then come up with some way to make it obvious that it is wrong. There are examples of this all around us and we sometimes don’t even know it. For example, what do your credit card number, your car’s VIN code, and a UPC code on a can of beans have in common?

Continue reading “Tech In Plain Sight: Check Digits And Human Error”

Pedal Operated Cable Cam For Hands Free Video

[Vintage Backyard RC] has built a nice little RC track in his backyard, and wanted a motorized dolly system to capture footage along the main straight with his GoPro. Using only junk box parts, he created a simple pedal operated RC cable dolly. (Video, embedded below.)

[Vintage Backyard RC] first experimented with a high speed car running on a length of model train track. However, it was bumpy at high speed, the track is expensive, and it needs 50 V running through the open tracks. The new cable cam gives a much smoother ride, and cost almost nothing with his supply of old RC gear. The cable cam is powered by a brushed motor from an RC airplane, running with plastic wheels on some weed trimmer line. Control is provided by an old 27 MHz RC system, with the controller’s internals transplanted into an old wah-wah guitar pedal.

The non-geared motor can drive the cable much faster than required, so [Vintage Backyard RC] needs to exercise some careful foot control to run it at a reasonable speed. This is easier said than done while also controlling an RC car with his hands, so he plans to replace the RC system with a newer 2.4 GHz system software end-point limits. We would be reaching for the ESP32 or any other microcontroller with wireless that we’ve come to know, but it’s worth remembering that most people are not familiar with these tools.

This is definitely the most minimalist cable cam we’ve covered this year, but just demonstrates how simple they can be to build. You can always upgrade to a sleek folding frame from 3D printed parts, and add machine vision and long range video streaming.

Continue reading “Pedal Operated Cable Cam For Hands Free Video”

Illustrated Kristina with an IBM Model M keyboard floating between her hands.

Keebin’ With Kristina: The One With The Index Typewriters

You may have noticed that I neglected to write an introductory paragraph for the last one of these — I was just too excited to get into the keyboards and keyboard accessories, I guess. I can’t promise that I’ll always have something to say up here, but this week I definitely do: thank you for all the tips I’ve received so far! The readers are what make Hackaday great, and this little keyboard roundup column is no exception. Fabulous fodder, folks!

Kamina Chameleon

[deshipu]'s DIY keyboard with various center modules
This is [deʃhipu]’s daily driver. Vroom!
Like any keyboard enthusiast worth their soldering iron, [deʃhipu] keeps trying for the ultimate keyboard — ideally, one that runs CircuitPython and makes a great daily driver for high-speed typing.

The latest version is the Kamina, a one-piece split with a SAMD21 brain that is slim and narrow without being cramped. [deʃhipu] started by splitting the Planck layout, spreading it, adding a number row, and eventually, an extra column of Kailh Chocs on the right hand. One-piece splits are great as long as the split suits your shoulders, because everything stays in place. When you do move it around, both halves move as one and you don’t have to mess with the positioning nearly as much as with a two-piece. And of course, since he designed it himself, it fits.

The really cool thing here is the center module concept. It’s functional, it looks nice, and as long as it doesn’t get in the way of typing, seems ideal. So far, [deʃhipu] has made a couple different versions with joysticks, encoders, and buttons, and is currently working on one with a Home button made for cell phones to take advantage of their built-in optical trackpads.

Esrille NISSE Looks Nice

This is the Esrille NISSE keyboard and it comes in two sizes! Okay, the two sizes don’t look that different, but the key spacing specs say otherwise. To me, this looks like an Alice with a better and ortholinear layout. These bat-wing beauties are new to me, but they’ve been around for a few years now and are probably difficult to stumble upon outside of Japan. Although Esrille doesn’t seem to make any other keyboards, they do make a portable PC built on the Raspberry Pi compute module.

The Esrille NISSE keyboard
Image via Esrille.

I love me a one-piece split when its done properly, and this one seems to be pretty darn close to perfect. How do I know? You can print out a paper-craft version to try out either of the two sizes. I didn’t take it quite that far, but you can bet that I opened the smaller size’s image in a new tab and put my hands all over the screen to test the layout.

I especially like the thumb clusters and the inside keys on this thing, but I think the innermost thumb keys would be too painful to use, and I would probably just use my index finger. I would totally buy one of these, but they’re a little too expensive, especially since the smaller one costs more. (What’s up with that?) The great news is that the firmware is open-source. Between that and the paper-craft models, a person could probably build their own. Check out [xahlee]’s site for a review and a lot more pictures of the NISSE and similar keebs.

Continue reading “Keebin’ With Kristina: The One With The Index Typewriters”

Deceptively Simple Process Turns Bottles Into Filament

If you know that most soda bottles are made from PET plastic, you’ve probably thought about how you could make filament from them and have an endless supply of cheap printing material. [Mr3DPrint] says he has a method and shares a few videos that make it look easy. We wonder if the quality of the filament is up to par with commercial products, but assuming the videos are accurate, it appears that the resulting filament gets the job done.

The details are a little sketchy, but it looks simple enough. THe first step is to get any indentations out of the bottle. He has several demonstrations of this some using pressurized air in the bottle and some without. In each case, though, a drill holds the bottle through the cap and spins it over a flame until the surface is smooth.

Continue reading “Deceptively Simple Process Turns Bottles Into Filament”

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.