Hackaday Links Column Banner

Hackaday Links: February 20, 2022

Sounds like somebody had a really bad day at work, as Western Digital reports that “factory contamination” caused a batch of flash memory chips to be spoiled. How much, you ask? Oh, only about 7 billion gigabytes! For those of you fond of SI prefixes, that’s 7 exabytes of storage; to put that into perspective, it’s seven times what Google used for Gmail storage in 2012, and enough to store approximately 1.69 trillion copies of Project Gutenberg’s ASCII King James Version Bible. Very few details were available other than the unspecified contamination of two factories, but this stands poised to cause problems with everything from flash drives to phones to SSDs, and will probably only worsen the ongoing chip shortage. And while we hate to be cynical, it’ll probably be prudent to watch out for any “too good to be true” deals on memory that pop up on eBay and Ali in the coming months.

Continue reading “Hackaday Links: February 20, 2022”

An RF remote control with a LoRa receiver next to it

Reverse Engineering A 900 MHz RC Transmitter And Receiver

For those building their own remote controlled devices like RC boats and quadcopter drones, having a good transmitter-receiver setup is a significant factor in the eventual usability of their build. Many transmitters are available in the 2.4 GHz band, but some operate at different frequencies, like the 868/915 MHz band. The TBS Crossfire is one such transmitter, and it’s become a popular model thanks to its long-range performance.

The channel hopping sequence of a TBS Crossfire transmitter
The channel hopping sequence

When [g3gg0] bought a Crossfire set for his drone, he discovered that the receiver module consisted of not much more than a PIC32 microcontroller and an SX1272 LoRa modem. This led him to ponder if the RF protocol would be easy to decode. As it turns out, it was not trivial, but not impossible either. First, he built his own SPI sniffer using a CYC1000 FPGA board to reveal the exact register settings that the PIC32 sent to the SX1272. The Crossfire uses channel hopping, and by simply looking at the register settings it was easy to figure out the hopping sequence.

Once that was out of the way, the next step was to figure out what data was flowing through those channels. The data packets appeared to be built up in a straightforward way, but they included an unknown CRC checksum. Luckily, brute-forcing it was not hard; the checksum is most likely used to keep receivers from picking up signals that come from a different transmitter than their own.

[g3gg0]’s blog post goes into intricate detail on both the Crossfire’s protocol as well as the reverse engineering process needed to obtain this information. The eventual conclusion is that while the protocol is efficient and robust, it provides no security against eavesdropping or deliberate interference. Of course, that’s perfectly fine for most RC applications, as long as the user is aware of this fact.

If you’re into decoding RF protocols, you might also want to try using a logic analyzer. But if you merely want to replicate an existing transmitter’s signals, it might be easier to simply spoof a few button presses.

Continue reading “Reverse Engineering A 900 MHz RC Transmitter And Receiver”

Winamp Reborn With The Adafruit PyPortal

One look at the default Winamp skin is sure to reawaken fond memories for a certain segment of the community. For those who experienced the MP3 revolution first hand, few audio players stick out in the mind like Winamp and its llama whipping reputation. No, the proprietary Windows-only media player isn’t the sort of thing you’d catch us recommending these days; but it was the 1990s, and things were very different.

For those who want to relive those heady peer-to-peer days, [Tim C] has posted a tutorial on how to turn Adafruit’s PyPortal into a touch screen MP3 player that faithfully recreates the classic Winamp look. As you can see in the video below it certainly nails the visuals, down to the slightly jerky scrolling of the green track info which we’re only now realizing was probably the developer’s attempt to mimic some kind of a physical display like a VFD.

With minimal UI functionality, playlists must be created manually.

[Tim] has even included support for original Winamp themes, although as you might expect, some hoop-jumping is required. In this case, it’s a Python script that you have to run against an image of the original skin pulled from the Winamp Skin Museum. From there, you just need to edit a couple of lines of code to point the player at the right skin files. In other words, switching between skins is kind of a hassle, but you should at least be able to get your favorite flavor from back in the day up and running.

But before you get too excited, there’s a bit of a catch. For one thing, the Winamp UI isn’t actually functional. You can tap the top section of the screen to pause the playback, and tapping down in the lower playlist area lets you change songs, but all the individual buttons and that iconic visual equalizer are just for show. Managing your playlists also requires you to manually edit a JSON file, which even in the 1990s we would have thought was pretty wack, to use the parlance of the times.

Of course, things could easily be streamlined a bit with further revisions to the code, and since [Tim] has released it into the public domain under the Unlicense, anyone can help out. As it stands, it’s still a very slick media display that we certainly wouldn’t mind having on our desk.

Continue reading “Winamp Reborn With The Adafruit PyPortal”

All About Dichroic Optical Filters

[IMSAI Guy] presents for your viewing pleasure, a nice video on the topic of optical filters and mirrors. (Video, embedded below) The first optical device is a simple absorption filter, where incoming light is absorbed in a wavelength-selective manner. Much more interesting however is the subject of interference or dichroic filters. These devices are constructed from many thin layers of a partially reflective material, and operate on the principle of interference. This means that photons hitting the filter stack will interfere either constructively or destructively giving the filter a pass or stop response for a particular wavelength.

As [IMSAI Guy] demonstrates, this makes the filters direction-specific, as photons hitting the stack at a different angle will travel slightly further. Longer travel means the interference effect will be different, and so will the filtering response. You can see this by playing around with one in your hands and seeing the color change as your rotate it. Dichroic filter films can also make for some stunning optical effects. Very cool stuff.

By creating a filter stack with a wide enough range of inter-layer thicknesses, it’s possible to construct a mirror that covers the full spectrum with excellent reflectivity.  Since you can tune the layers, you can make it reflect any range of wavelengths you like. One thing we’ve not seen before is a wedge-like optical filter device, where the layer thicknesses progressively increase lengthways, creating a variable optical frequency response along the length. We guess this would be useful for diagnostics in the field, or perhaps for manually tuning a beam path?

We like the applications for dichroic films – here’s an Infinity Mirror ‘Hypercrystal’. If you don’t want to buy off-the-shelf films, perhaps you could sputter yourself something pretty?

Continue reading “All About Dichroic Optical Filters”

How A Pentester Gets Root

Have you ever wanted to be a fly on the wall, watching a penetration tester attack a new machine — working their way through the layers of security, ultimately leveraging what they learned into a login?  What tools are used, what do they reveal, and how is the information applied? Well good news, because [Phani] has documented a step-by-step of every action taken to eventually obtain root access on a machine — amusingly named DevOops — which was set up specifically for testing.

[Phani] explains every command used (even the dead-end ones that reveal nothing useful in this particular case) and discusses the results in a way that is clear and concise. He starts from a basic port scan, eventually ending up with root privileges. On display is an overall process of obtaining general information.  From there, [Phani] methodically moves towards more and more specific elements. It’s a fantastic demonstration of privilege escalation in action, and an easy read as well.

For some, this will give a bit of added insight into what goes on behind the scenes in some of the stuff covered by our regular feature, This Week in Security.

Homemade Panadapter Brings Waterfall To Old Radio

Ham radio operators can be pretty selective about their gear. Some are old-school tube purists who would never think of touching a rig containing transistors, and others are perfectly happy with the small Software Defined Radio (SDR) hooked up to their PC. The vast majority, though, of us are somewhere in between — we appreciate the classic look and feel of vintage radios as well as the convenience of modern ones. Better yet, some of us even like to combine the two by adding a few modern bells and whistles to our favorite “boat anchor.”

[Scott Baker] is one such Ham. He’s only had his license for a few months now and has already jumped into some great projects, including adding a panadapter to an old Drake R-4B Receiver. What’s a panadapter, you may ask? As [Scott] explains in his excellent writeup and video, a panadapter is a circuit that grabs a wideband signal from a radio receiver that typically has a narrowband output. The idea is that rather than just listen to somebody’s 4kHz-wide transmission in the 40m band, you can listen to a huge swath of the spectrum, covering potentially hundreds of transmissions, all at the same time.

Well, you can’t actually listen to that many transmissions at once — that would be a garbed mess. What you can do with that ultrawide signal, however, is look at it. If you take an FFT of the signal to put it in the frequency domain (by using a spectrum analyzer, or in [Scott]’s case, an SDR), you can see all sorts of different signals up and down the spectrum. This makes it a heck of a lot easier to find something to listen to — rather than spinning the dial for hours, hoping to come across a transmission, you can just see where all of the interesting signals are.

This isn’t the first (or even the twentieth) time that [Scott]’s work has graced our pages, so make sure to check some of his other incredible projects in our archives!

Continue reading “Homemade Panadapter Brings Waterfall To Old Radio”

The inside of a Laser-Induced Breakdown Spectrometer

Spectrometer Detects Chemicals By Zapping Samples With A Laser Beam

Here at Hackaday, we love projects that result in useful lab equipment for a fraction of the cost of professional gear. [Lorenz], over at Advanced Tinkering, built his own instrument for Laser-Induced Breakdown Spectroscopy, or LIBS, and it’s quite an impressive device. LIBS is a technique for analyzing substances to find their chemical composition. Basically, the idea is to zap a sample with a powerful laser, then look at the little cloud of plasma that results and measure the wavelengths emitted by it.

A plot showing the spectrum of hematite
The spectrum of hematite (iron oxide), compared to that of pure iron

The laser [Lorenz] used is a Nd:YAG unit salvaged from a tattoo removal machine. After it fires a pulse, a photodiode detects the light and triggers a spectrometer, which consists of a diffraction grating, a few lenses and mirrors, and a linear CCD sensor. The grating splits the incoming lights into its constituent components, which fall onto the CCD and trigger its pixels. An STM32 Nucleo board reads out the results and sends them to a PC for further processing.

That processing bit turned out to be a full project on its own. [Lorenz] called upon [g3gg0], who software that simplifies the operation of the spectrometer. First, it helps with the instrument’s calibration. Point the detector at a well-known light source like a laser or a fluorescent lamp, then select the expected wavelengths on the resulting spectral plot. The software then automatically calculates the correct coefficients to map each pixel to a specific wavelength.

The software also contains a database of spectra corresponding to chemical elements: once you’ve taken a spectrum of an unknown sample, you can overlay these onto the resulting plot and try to find a match. The resulting system seems to work quite well. Samples of iron oxide and silver oxide gave a reasonable match to their constituent components.

We’ve seen other types of spectrometers before: if you simply want to characterize a light source, check out this Raspberry Pi-based model. If you’re interested in chemical analysis you might also want to look at this open-source Raman spectrometer.

Continue reading “Spectrometer Detects Chemicals By Zapping Samples With A Laser Beam”