Pocket Radio Powered By Tiny Microcontroller

Before the days of MP3 players and smartphones, and even before portable CD players, those of us of a certain age remember that our cassette players were about the only way to take music on-the-go. If we were lucky, they also had a built-in radio for when the single tape exhausted both of its sides. Compared to then, it’s much easier to build a portable radio even though cassettes are largely forgotten, as [wagiminator] shows us with this radio design based on an ATtiny.

The build is about as compact as possible, with the aforementioned ATtiny 402/412 as its core, it also makes use of an integrated circuit FM tuner,  an integrated audio amplifier with its own single speaker, and a small OLED display. The unit also boasts its own lithium-polymer battery charger and its user interface consists of only three buttons, plenty for browsing radio stations and controlling volume.

The entire build fits easily in the palm of a hand and is quite capable for a mobile radio, plus all of the schematics and code is available on the project page. While it doesn’t include AM capability, just the fact that FM is this accessible nowadays when a few decades ago it was cutting-edge technology is quite remarkable. If you’re looking for an even smaller FM receiver without some of the bells and whistles of this one, take a look at this project too.

GGWave Sings The Songs Of Your Data

We’re suckers for alternative data transmission methods, and [Georgi Gerganov]’s ggwave made us smile. At its core, it’s doing what the phone modems of old used to do – sending data encoded as different audio tones. But GGwave does this with sophistication!

It splits the data into four-bit chunks, and uses 16 different frequency offsets to represent each possible value. But for each chunk, these offsets are added to one of six different base frequencies, which allows the receiving computer to tell which chunk it’s in. It’s like a simple framing concept, and it makes the resulting data sound charmingly like R2-D2. (It also uses begin and end markers to be double-sure of the framing.) The data is also sent with error correction, so small hiccups can get repaired automatically.

What really makes ggwave shine is that it’s ported to every platform you care about: ESP32, Arduino, Linux, Mac, Windows, Android, iOS, and anything that’ll run Python or JavaScript. So it’ll run in a browser. There’s even a GUI for playing around with alternative modulation schemes. Pshwew! This makes it easy for a minimalist microcontroller-based beeper button to control your desktop, or vice-versa. An ESP32 makes for an IoT-style WiFi-to-audio bridge. Write code on your cell phone, and you can broadcast it to any listening microcontroller. Whatever your use case, it’s probably covered.

Now the downside. The data rate is slow, around 64-160 bits per second, and the transmission is necessarily beepy-booopy, unless you pitch it up in to the ultrasound or use the radio-frequency HackRF demo. But maybe you want to hear when your devices are talking to each other? Or maybe you just think it’s cute? We do, but we wouldn’t want to have to transmit megabytes this way. But for a simple notification, a few bytes of data, a URL, or some configuration parameters, we can see this being a great software addition to any device that has a speaker and/or microphone.

Oh my god, check out this link from pre-history: a bootloader for the Arduino that runs on the line-in.

Continue reading “GGWave Sings The Songs Of Your Data”

Linux Fu: The Browser Emacs Fusion

It is no secret that I have a few things permanently burned into my neurons: the 1802 instruction set, the commands for WordStar, and the commands for emacs. There was a time when emacs was almost my operating system. With no X11, emacs gave you a way to have a shell in one window, check your mail, and keep your work open.

I still use emacs a lot (although I’ve been getting more and more pleased with vscode with an emacs keybinding extension). But I also spend a lot of time — like right now — writing in a Web browser. Especially if I’m writing about code, it gets hard to remember which set of keys you have to use and I’ve wanted to do something about it for a long time. The answer is a very cool program called Autokey. (You can download my files for it, but you probably want to read more first.) It probably doesn’t work if you have switched to Wayland, but it can do a lot for you ranging from saving you some typing to reprogramming your favorite program to have different keystrokes. However, it isn’t without its problems, and I’ll tell you what I know about it.

The Value Proposition

Autokey sits in your system tray and it watches what you type. In its most simple usage, you can set up different phrases to substitute what you type.

For example, I might reprogram HaD to show up as Hackaday to save myself some typing. I usually use some odd character at the start or end so I don’t accidentally trigger things. So maybe I’m tired of typing or mistyping http://www.hackaday.com. I could set up ~had to automatically type the correct URL for me.

Continue reading “Linux Fu: The Browser Emacs Fusion”

Hacking The RF Protocol Of An Obscure Handheld Game

When you think old school handheld games, you probably imagine something like Nintendo’s Game Boy line or the Sega Game Gear. But outside of those now iconic systems, there was a vast subculture of oddball handheld games vying for a chunk of an adolescent’s weekly allowance. Many of these were legitimately terrible and frankly aren’t worth remembering, but a few offered unique features that were arguably ahead of their time.

One such game was Hasbro’s short-lived P-O-X. As explained by [Zachary Ennenga], the game didn’t spend much time on store shelves as its core concept of defeating undetectable alien invaders hell-bent on destroying our way of life proved to be more than a little problematic when it launched in September of 2001. But that doesn’t mean it didn’t have some cool ideas, such as a wireless ad-hoc multiplayer capability that let your game autonomously battle it out with other units that got close by.

Fascinated by this feature since his youth, [Zach] set out to study how this relatively cheap kid’s toy was able to pull this off back when even the flagship handheld consoles were still using physical link cables for multiplayer. He was aided in his quest by a particularly helpful patent, which not only gave him clues as to the frequency, data rate, modulation, and encoding of the RF signal, but even explained the game’s logic and overall structure. A lot of what was in the document seemed wishful thinking on the part of Hasbro, but reading through the marketing speak still uncovered some salient technical details.

A decoded P-O-X packet.

Armed with an RTL-SDR, GNU Radio, Inspectrum, and a bit of Python, [Zach] was able to identify the signal and begin the process of decoding it. This is where things get really interesting, as the details of his reverse engineering process are widely applicable for all sorts of unknown RF signals. Even if you’re like most people and have nearly zero interest in failed handheld games of the early 2000s, it’s well worth a read. The same techniques he uses to figure out the name and physical characteristics of the invisible foe his game is transmitting could one day help you figure out how to manipulate the data from that wireless weather station you’ve got in the backyard.

Once he figured out the major parts of the protocol, [Zach] moves on to creating his own packets and broadcasting them out in such a way that the real hardware will recognize it. He even comes up with some code that will automatically battle games which wander within range of his Yardstick One, which may come in handy during the inevitable P-O-X Renaissance.

While this might seem like a lot of effort to put into a game that most people have never even heard of, we’ll remind you that some of the greatest hacks to ever grace these pages have been born of similar pursuits. Even if you’re the only person in the world to directly benefit from your current line of research and experimentation, there’s still plenty of like-minded folks in this community that are all to happy to cheer you on from the sidelines.

Windows 98 For Spaceships? Not Quite!

One of the news items that generated the most chatter among Hackaday editors this week was that ESA’s Mars Express mission is receiving a software update. And they’re updating the operating system to…Windows 98.

Microsoft’s late-90s consumer desktop operating system wouldn’t have been the first to come to mind as appropriate for a spacecraft, but ESA were quick to remind us that it was the development toolchain, not the craft itself, that depended upon it. It’s still quite a surprise to find Windows 98 being dusted off for such an unexpected purpose, and it’s led us to consider those now-almost-forgotten operating systems once more, and to question where else it might still be found. Continue reading “Windows 98 For Spaceships? Not Quite!”

3D Printed Splint Goes Toe To Toe With Medical Grade Equipment

When you think of medical devices, the idea of high end, well, pretty much everything, comes to mind. This is definitely the case when it comes to prosthetics, or in this similar case, custom fit splints. A hacker by the name of [sammyizimmy] wasn’t put off by the complexity of a custom splint for his fractured big toe, and a great hack made it all possible.

InVesalius reconstructs the CT Scan imagery

The story starts with a fractured toe, and an open source project called InVesalius. Instead of doing an X-Ray on his toe, [sammyizimmy]’s doctor decided to do a Computed Tomography scan (aka CT Scan) to get a look at the damage. For being as ubiquitous as they are, it’s easy to forget that a CT scan is an extremely detailed look at both internal and external parts.

The hack really began when [sammyizimmy] asked his radiologist for a copy of the CT Scan. This is something most radiologists will provide upon request, although many people don’t know you can even ask. [sammyizimmy] took his CT scan and opened it up in InVesalius, and then reconstructed the skin layer only, and then… head over to the “3d printed Toe Splint” page at Hackaday.io for the rest!

If medical hacks are are your kind of medicine, you might appreciate this HDD-Turned-Centrifuge too!

3D Print Your Own Multi-Color Filament

Interested in experimenting with your own multi-color filament? [Turbo_SunShine] says to just print your own, and experiment away! Now, if you’re thinking that 3D printing some filament sounds inefficient at best (and a gimmick at worst) you’re not alone. But there’s at least one use case that it makes sense for, and maybe others as well.

Printing with bi-color filament results in an object whose color depends on viewing angle, and part geometry.

There is such a thing as bi-color filament (like MatterHackers Quantum PLA) which can be thought of as filament that is split down the center into two different colors. Printing with such filament can result in some trippy visuals, like objects whose color depends in part on the angle from which they are viewed. Of course, for best results it makes sense to purchase a factory-made spool, but for light experimenting, it’s entirely possible to 3D print your own bi-color filament. Back when [Turbo_SunShine] first shared his results, this kind of stuff wasn’t available off the shelf like it is today, but the technique can still make sense in cases where buying a whole spool isn’t called for.

Here is how it works: the 3D model for filament is a spiral that is the right diameter for filament, printed as a solid object. The cross-section of this printed “filament” is a hexagon rather than a circle, which helps get consistent results. To make bi-color filament, one simply prints the first half of the object in one color, then performs a color change, and finishes the print with a second color. End result? A short coil of printed “filament”, in two colors, that is similar enough to the normal thing to be fed right back into the printer that created it. This gallery of photos from [_Icarus] showcases the kind of results that are possible.

What do you think? Is 3D printing filament mainly an exercise in inefficiency, or is it a clever leveraging of a printer’s capabilities? You be the judge, but it’s pretty clear that some interesting results can be had from the process. Take a few minutes to check out the video (embedded below) for some additional background.

Continue reading “3D Print Your Own Multi-Color Filament”