Custom FM Radio Station Powered By Shell Scripts

[Trwmato] wanted to spend more time listening to a normal radio to cut back on phone use. But the programming wasn’t quite right so, of course, the solution was to spin up a custom radio station!

The station in question uses a Pi Zero to poll podcasts and news from RSS feeds and automatically mixes them with local content and sends it out via Bluetooth. An FM transmitter allows it to still work on the FM radio, too. Grabbing podcasts isn’t very difficult, thanks to podget. The real logic is in how long to retain things and creating a playlist that both prioritizes fresh content while not repeating things too often. Did we forget to mention the whole thing is a collection of shell scripts?

We could see this as the start of a cool project to have a “radio station” for a school, organization, or company. It is easy to understand and modify.

We often argue that the much-maligned bash script is sometimes the right tool for the job. You can even do things like critical sections in them.

Spy Tech: The GPS Numbers Station

We’ve talked before about number stations — mysterious shortwave transmitters repeating numbers, presumably for clandestine purposes. But, of course, the mere fact that they are unusual makes them stand out. The best place to hide something is in plain sight. In the old days, a broadcaster might slip a fake news story in mentioning a name that has a secret meaning, for example. But according to [Steven Murdoch], the United States has an even more obvious hiding place for a numbers station: inside GPS.

Every L1 C/A navigation message is a 176-bit field known by the affectionate moniker: Subframe 4, Page 17. The GPS specification says it is for “special messages.” No one has disclosed what those messages might be.

[Murdoch] at University College London analyzed over 12 million GPS packets from 2007 to 2026, trying to understand what was in this field. You might think 176 bits isn’t much, and you are right. But the L1 C/A signal carries 50 bits per second, and each frame is 1,500 bits. As [Murdoch] points out: “every bit must earn its place.” Each subframe is 300 bits, so this mysterious signal is 12% of the subframe. It must be important to someone.

Continue reading “Spy Tech: The GPS Numbers Station”

Microsoft Claims 20 Second Qubits

While it might seem that your computer malfunctions every few minutes, the reality is that modern computers are usually quite robust. Not so much for quantum computers, where qubit life is often measured in milliseconds. Now, the company claims to have qubits that last for about 20 seconds.

For example, Microsoft’s Majorana 1 quantum chip, which, incidentally, was mired in controversy, provided 8 qubits that were stable very briefly. This second-generation chip provides 12 qubits that average 20-second lifespans.

Continue reading “Microsoft Claims 20 Second Qubits”

If You Want To Hack Me, Come In Through The Speaker

Some security hacks require someone to have physical access to your computer. In many cases, that’s easy to mitigate. Other attack vectors can put you at risk from anywhere via the network. That’s what firewalls are for. But there is an in-between risk where an attacker just has to be “around” your computer. [Rasmus Moorats] found out that a Creative Sound Blaster sound bar could open up just such an attack.

[Rasmus] was poking around the firmware just to write custom software to control it. The possibility of an attack was just an accidental find.

The soundbar connects to USB, but it also has Bluetooth, which, for some reason, is always on. There’s an app that can communicate with the speaker using BLE, and Creative has a special protocol to control it. The same protocol works on USB or Bluetooth, but with an important difference.

Continue reading “If You Want To Hack Me, Come In Through The Speaker”

Linux Fu: Fake Webcams, GUI Edition

Previously, I looked at using the Linux video loopback system from the command line. The basic trick was simple enough: capture video from a real camera, process it with something like ffmpeg, and write the result to a fake camera device via the v4l2loopback device. Then a browser, or any camera-enabled software, sees the fake camera as if it were real. This allows you to manipulate video before sending it to the rest of the world.

That works, and for those of us who like command lines, it’s easy enough to execute. But not everyone loves the command line. In the comments, there was another obvious answer: use OBS Studio.

While OBS is excellent, it is also a bit like using a laser to chop a carrot. If you already use OBS, fine. If you only want to crop a webcam, add an effect, mirror an image, or feed a virtual camera, it can feel like a lot. If you must have a GUI, you can try Webcamoid, which sits somewhere between a simple webcam viewer and a full video production system.

Webcamoid gives you a GUI for selecting a camera, applying effects, and sending the result to a virtual camera. Conceptually, it is much closer to the command-line loopback setup from the previous post than to OBS. You are still building a pipeline from input camera to output camera, but now you can do much of it with buttons and menus instead of shell commands.

That’s in theory, of course. Implementing Webcamoid turned out to be quite the exercise. Granted, this probably varies depending on where you install software. If your distro has a clean working copy of Webcamoid and its dependencies, good for you. For everyone else, keep reading.

Continue reading “Linux Fu: Fake Webcams, GUI Edition”

Linux Fu: Taming Strace

While many operating systems seem to try to prevent you from peeking under the hood, Unix and Linux positively encourage it. One great tool that we’ve looked at before is strace. Using this tool, you can see details about every system call a program makes. As you might imagine, for any significant program, the output from strace can be huge.

While I’m not always a fan of GUIs, this is one of those cases where making the data easier to browse is a great idea. Enter strace-tui, a text-based GUI for strace from [Rodrigodd]. The program can parse output from strace or manage the strace execution itself, and either way, display the data in a useful way.

I started out looking at [janestreet’s] strace_ui, but the OCaml setup was throwing errors for me, so I just gave up. The strace-tui installs like many Rust programs, using cargo, and it went smoothly.

Continue reading “Linux Fu: Taming Strace”

Poking Around With JTAG On A Guitar Amp

You would think a guitar amplifier would be a straightforward piece of analog electronics. But, of course, these days, everything has firmware, including [mforney]’s Yamaha THR10c. The service manual showed both a UART and JTAG header on the schematic, so as many of us would, he took that as a challenge.

Of course, the production board doesn’t have headers for these ports, but that’s not a real problem. The serial port seemed quiet, but the JTAG port was more productive. This revealed two binary images: a bootloader and the main firmware. Once you have the code, it is a straightforward, if not laborious, process to reverse engineer what the code does.

The next step is to figure out how to load new firmware. You can see in the post that this was done, and custom features sprang into life with custom-patched firmware.

We never get tired of seeing people dig into consumer devices like this. Things like JTAG and the wide availability of JTAG tools have made it easier but no less fun. Of course, there are even more features [mforney] has in mind, but now that’s just a matter of coding.