USB Dongle Brings Python-Controlled GPIO To The Desktop

Microcontroller dev boards are wonderfully useful items, in testament to which most of us maintain an ample collection of the things. But dragging one out to do a simple job can be a pain, what with making sure you have the whole toolchain set up to support the device, not to mention the inevitable need to solder or desolder header pins. Wouldn’t it be nice if there was a simple plug-and-play way to add a few bits of GPIO to your desktop or laptop machine?

[Nick Bild] thinks so, and came up with the USBgpio. The hardware in the dongle is pretty much what you’d expect — an Arduino Nano 33 IoT. Yes, you could just bust out a Nano and do this yourself, but [Nick] has done all the heavy lifting already. Eleven of the Nano’s IO pins plus 3.3V and ground are broken out to header pins that stick out of the 3D-printed enclosure, and the dongle is powered over the USB cable. [Nick] also built a Python library for the USBgpio, making it easy to whip up a quick program. You just import the library, define the serial port and baud rate, and the library takes care of the rest. The video below shows a quick blinkenlight test app.

Earth-shattering stuff? Perhaps not; [Nick] admits as much by noting the performance doesn’t really dazzle. But that’s hardly the point of the project, and if you need a couple of pins of IO on the desktop for a quick tactical project or some early-stage prototyping, USBgpio could be your friend. Continue reading “USB Dongle Brings Python-Controlled GPIO To The Desktop”

The Pi Pico, An SDR Receiver Front End

Making a software defined radio (SDR) receiver is a relatively straightforward process, given the right radio front end electronics and analogue-to-digital converters. Two separate data streams are generated using clocks at a 90 degree phase shift, and these are passed to the software signal processing for demodulation. But what happens if you lack a pair of radio front ends and a suitable clock generator? Along comes [Mordae] with an SDR using only the hardware on a Raspberry Pi Pico. The result is a fascinating piece of lateral thinking, extracting something from the hardware that it was never designed to do.

The onboard RP2040 ADC is of course far too slow for the task, so instead an input is used, with a negative feedback arrangement from another GPIO to form a crude 1-bit ADC. A PIO peripheral is then used to perform the quadrature mixing, resulting in the requisite pair of data streams. At this point these are sent over USB to GNU Radio for demodulating, mainly for convenience rather than necessarily because the microcontroller lacks the power.

The result is a working SDR front end, demonstrated pulling in an FM broadcast station. The Pico has to be overclocked to reach that frequency and it’s more than a little noisy, but we’re extremely impressed with how much has been done with so little. Oddly it isn’t the first Pico SDR we’ve seen, but the previous one was a much more conventional and lower-frequency affair for the European Long Wave band.

Old Knobs With A Cast Of Thousands

You have an old radio — in the case of [The Radio Mechanic], a Stromberg Carlson — and it needs new knobs. What do you do? You can’t very well pop down to the local store and find any knobs anymore. Even if you are lucky enough to be around an electronics store, they aren’t going to have knobs to do justice to an antique radio. You could 3D print them, of course, but there are a number of issues with transferring the old knob to a CAD file for printing. So [The Radio Mechanic] decided to cast them instead.

He printed some fixtures to help with the molding using two-part molding silicone. He mounted the knob on a shaft in a jig, filled the jig with silicone, and lowered the knob into the mix. The next day, he had a good-looking mold.

The next step, of course, is to cast with resin. Admittedly 3D printing would have been faster, but would not have as nice a surface finish. The epoxy resin is clear, but he was hopeful that some caramel pigment would match the original knob color. Spoiler alert: it didn’t. The resulting knob looked translucent, like a root beer barrel candy, rather than the brown sugar color of the original knob.

The knob needed a spring insert to hold the shaft, so he repurposed some from a different kind of radio. Overall, this is the kind of thing we always think we are going to do when we need something and then we rarely follow through. Then again, we rarely have the patience to wait as long as these two knobs took to make.

Of course, a casting guerrilla doesn’t have to make just knobs. You can even add metal powders to do cold metal casting.

Continue reading “Old Knobs With A Cast Of Thousands”

Gamma Ray Spectroscopy The Pomelo Way

Depending on the circumstances you find yourself in, a Geiger counter can be a tremendously useful tool. With just a click or a chirp, it can tell you if any invisible threats lurk. But a Geiger counter is a “yes or no” instrument; it can only tell you if an ionizing event occurred, revealing nothing about the energy of the radiation. For that, you need something like this gamma-ray spectroscope.

Dubbed the Pomelo by [mihai.cuciuc], the detector is a homebrew solid-state scintillation counter made from a thallium-doped cesium iodide crystal and a silicon photomultiplier. The scintillator is potted in silicone in a 3D printed enclosure, to protect the hygroscopic crystal from both humidity and light. There’s also a temperature sensor on the detector board for thermal compensation. The Pomelo Core board interfaces with the physics package and takes care of pulse shaping and peak detection, while a separate Pomelo Zest board has an ESP32-C6, a small LCD and buttons for UI, SD card and USB interfaces, and an 18650 power supply. Plus a piezo speaker, because a spectroscope needs clicks, too.

The ability to determine the energy of incident photons is the real kicker here, though. Pomelo can detect energies from 50 keV all the way up to 3 MeV, and display them as graphs using linear or log scales. The short video below shows the Pomelo in use on samples of radioactive americium and thorium, showing different spectra for each.

[mihai.cuciuc] took inspiration for the Pomelo from this DIY spectrometer as well as the CosmicPi.

Continue reading “Gamma Ray Spectroscopy The Pomelo Way”

Displays We Like Hacking: HDMI

I don’t like HDMI. Despite it being a pretty popular interface, I find crucial parts of it to be alien to what hackers stand for. The way I see it, it manages to be proprietary while bringing a lot of the old cruft in. It doesn’t have a native alternative like DisplayPort, so portable implementations tend to suffer power-wise; the connector situation is interesting, and the HDMI Foundation has been doing some weird stuff; in particular, they are pretty hostile to open-source technology.

This article is not the place for such feelings, however, especially since I’ve expressed them enough in the DisplayPort article. We the hackers deserve to be able to handle the interfaces we stumble upon, and I firmly believe in that way more than in my right to animosity towards HDMI.

The HDMI interface is seriously prominent wherever you look, in part because it’s the interface created by the multimedia-involved companies for the multimedia-involved companies. Over the years we’ve had it, it’s been more than sufficient for basically everything we do video-wise, save for the highest resolutions.

It’s also reasonably simple to wire up, hack on, and even bitbang. Let’s go through what makes it tick.

The Core

HDMI is, at its core, three differential pairs for data, plus one pair to clock them and in the darkness bind them. It’s a digital interface, though it is a fun one. This makes it way more suitable for higher-distance video transmissions than interfaces like VGA, and as long as you stick to relatively low resolutions, HDMI won’t have as many asks in terms of PCB layout as DisplayPort might, thanks to HDMI link speeds scaling proportionally with the display resolution.

Continue reading “Displays We Like Hacking: HDMI”

Fourier, The Animated Series

We’ve seen many graphical and animated explainers for the Fourier series. We suppose it is because it is so much fun to create the little moving pictures, and, as a bonus, it really helps explain this important concept. Even if you already understand it, there’s something beautiful and elegant about watching a mathematical formula tracing out waveforms.

[Andrei Ciobanu] has added his own take to the body of animations out there — or, at least, part one of a series — and we were impressed with the scope of it. The post starts with the basics, but doesn’t shy away from more advanced math where needed. Don’t worry, it’s not all dull. There’s mathematical flowers, and even a brief mention of Pink Floyd.

The Fourier series is the basis for much of digital signal processing, allowing you to build a signal from the sum of many sinusoids. You can also go in reverse and break a signal up into its constituent waves.

We were impressed with [Andrei’s] sinusoid Tetris, and it appears here, too. We’ve seen many visualizers for this before, but each one is a little different.