Ham Radio Mini Beam

Years ago, ham radio operators more often than not had land, and usually there weren’t any restrictions on what kind of antenna they could erect on that land. These days you are more likely to live with less or no land, and even if you do own property, you might have restrictions that prevent you from putting up any kind of visible antenna.

But even if that’s not the case, you might not have room for an old-fashioned “tri-bander” or “cubical quad” that the hams of old preferred. [Waters & Stanton] has a 65-year-old design for a miniature beam that he explains, and it produces a good beam antenna in a reduced amount of space. You can watch a video about the antenna below.

The design uses a doublet — a dipole fed with a balanced line and tuned at the feed point. A 22-foot doublet can cover 20 meters down to 10 meters without traps. Adding a director and reflector element provides directionality and gain. A unique arrangement allowed a 12-foot boom to support multiple elements on some bands by introducing a central coil on some elements. For example, the director is tuned to 15 meters using a center coil. But the coil is shorted with a 10 meter quarter stub that acts as a short on that band. You can see a complete explanation in the video.

We were hoping to see a build and some on-the-air testing, but, apparently, that is left as an exercise for the viewer. We imagine that 65 years ago, you’d use a grid dip oscillator to tune the stubs. Today, an antenna analyzer would do the job easily.

Continue reading “Ham Radio Mini Beam”

Hackaday Podcast 237: Dancing Raisins, Coding On Apples, And A Salad Spinner Mouse

This week, Editor-in-Chief Elliot Williams and Kristina Panos gathered over the Internet and a couple cups of coffee to bring you the best hacks of the previous week. Well, the ones we liked best, anyhow.

First up in the news, we’ve got a brand-spankin’ new Halloween Hackfest contest running now until 9AM PDT on October 31st! Arduino are joining the fun this year and are offering some spooky treats in addition to the $150 DigiKey gift cards for the top three entrants.

It’s a What’s That Sound Results Show this week, and although Kristina actually got into the neighborhood of this one, she alas did not figure out that it was an MRI machine (even though she spent a week in an MRI one day).

Then it’s on to the hacks, which had a bit of a gastronomical bent this week. We wondered why normies don’t want to code on their Macs, both now and historically. We also examined the majesty of dancing raisins, and appreciated the intuitiveness of a salad spinner-based game controller.

From there we take a look at nitinol and its fun properties, admire some large, beautiful Nixie tubes, and contemplate a paper punching machine that spits out nonsensical binary. Finally we talk about rocker bogie suspensions and the ponder the death of cursive.

Check out the links below if you want to follow along, and as always, tell us what you think about this episode in the comments!

Download and savor at your leisure.

Continue reading “Hackaday Podcast 237: Dancing Raisins, Coding On Apples, And A Salad Spinner Mouse”

This Week In Security: WebP, Cavium, Gitlab, And Asahi Lina

Last week we covered the latest 0-day from NSO group, BLASTPASS. There’s more details about exactly how that works, and a bit of a worrying revelation for Android users. One of the vulnerabilities used was CVE-2023-41064, a buffer overflow in the ImageIO library. The details have not been confirmed, but the timing suggests that this is the same bug as CVE-2023-4863, a Webp 0-day flaw in Chrome that is known to be exploited in the wild.

The problem seems to be an Out Of Bounds write in the BuildHuffmanTable() function of libwebp. And to understand that, we have to understand libwebp does, and what a Huffman Table has to do with it. The first is easy. Webp is Google’s pet image format, potentially replacing JPEG, PNG, and GIF. It supports lossy and lossless compression, and the compression format for lossless images uses Huffman coding among other techniques. And hence, we have a Huffman table, a building block in the image compression and decompression.

What’s particularly fun about this compression technique is that the image includes not just Huffman compressed data, but also a table of statistical data needed for decompression. The table is rather large, so it gets Huffman compressed too. It turns out, there can be multiple layers of this compression format, which makes the vulnerability particularly challenging to reverse-engineer. The vulnerability is when the pre-allocated buffer isn’t big enough to hold one of these decompressed Huffman tables, and it turns out that the way to do that is to make maximum-size tables for the outer layers, and then malform the last one. In this configuration, it can write out of bounds before the final consistency check.

An interesting note is that as one of Google’s C libraries, this is an extensively fuzzed codebase. While fuzzing and code coverage are both great, neither is guaranteed to find vulnerabilities, particularly well hidden ones like this one. And on that note, this vulnerability is present in Android, and the fix is likely going to wait til the October security update. And who knows where else this bug is lurking. Continue reading “This Week In Security: WebP, Cavium, Gitlab, And Asahi Lina”

WhisperFrame Depicts The Art Of Conversation

At this point, you gotta figure that you’re at least being listened to almost everywhere you go, whether it be a home assistant or your very own phone. So why not roll with the punches and turn lemons into something like a still life of lemons that’s a bit wonky? What we mean is, why not take our conversations and use AI to turn them into art? That’s the idea behind this next-generation digital photo frame created by [TheMorehavoc].
Essentially, it uses a Raspberry Pi and a Respeaker four-mic array to listen to conversations in the room. It listens and records 15-20 seconds of audio, and sends that to the OpenWhisper API to generate a transcript.
This repeats until five minutes of audio is collected, then the entire transcript is sent through GPT-4 to extract an image prompt from a single topic in the conversation. Then, that prompt is shipped off to Stable Diffusion to get an image to be displayed on the screen. As you can imagine, the images generated run the gamut from really weird to really awesome.

The natural lulls in conversation presented a bit of a problem in that the transcription was still generating during silences, presumably because of ambient noise. The answer was in voice activity detection software that gives a probability that a voice is present.

Naturally, people were curious about the prompts for the images, so [TheMorehavoc] made a little gallery sign with a MagTag that uses Adafruit.io as the MQTT broker. Build video is up after the break, and you can check out the images here (warning, some are NSFW).

Continue reading “WhisperFrame Depicts The Art Of Conversation”

Mosquito Laser Death Grid Is Just What It Sounds Like

Mosquitoes suck. Quite literally. [Allen Pan] lives in an area where they’re so thick in the air, regular methods of killing them fail to put a dent in their numbers. Thus, he set about building a solution so dangerous we wouldn’t want to be within a mile when it’s turned on. 

[Allen] was inspired by a TED talk from over a decade ago that involved targeting flying mosquitoes with high-powered scanning lasers. This technology never really came to fruition, and raised many questions about laser safety and effectiveness.

Testing the idea with only two mirrors installed.

This solution keeps the lasers, but goes a slightly different route — two 10-watt lasers bounced between multiple mirrors to create a laser death grid. It goes without saying that 10 watt lasers will blind you near instantly even at great range, and can burn skin and cause all manner of other horrors. Bouncing them around with mirrors and waving them about at mosquitoes is a really poor idea when even incidental exposure can do real harm.

Indeed, the laser is so powerful that it burns holes in the mirrors [Allen] used in early testing. It was around this time that [styropyro] was brought in to help ensure everyone involved got through the project with their eyesight intact.

[Allen]’s crew wears laser safety goggles when operating the horrifying handheld device, which mitigates some risk. The team also quickly notice beams escaping from various directions, due in part to the holes burned in their clothes. Electing to wrap the device in a heatproof blanket to avoid accidentally dazzling any nearby pilots was an obvious idea but turning the device off and destroying it would have been smarter.

Sadly, despite looking like the coolest cyberpunk weapon we’ve seen in years, the device doesn’t even kill mosquitoes very effectively. The bugs largely avoided the device, and only a few that flew directly into a beam ended up being cooked. The whole time watching the video, we feared someone dropping the rig, leading to a 10-watt beam bouncing off and striking some poor innocent bystander.

Powerful lasers are cool and useful things. Try and use them responsibly.

Continue reading “Mosquito Laser Death Grid Is Just What It Sounds Like”

The Loveliest Electronics Desk You’ll See Today

Does your electronics desk have a lap drawer? And is it filled with random, disorganized detritus? Well, [Handy Bear] is here to show you that you can put so much more in every drawer you’ve got if you do it right. And boy, it sure looks like [Handy Bear] did it right.

Hidden inside this beautiful antique desk is plastic storage compartment after plastic storage compartment, all situated inside custom dividers made painstakingly from 3mm MDF. The first iteration, a cubbyhole arrangement, was not modular and looked crappy by [Handy Bear]’s standards.

Back to the drawing board and the scroll saw. [Handy Bear] came up with a new scheme that mimics the dividers in the plastic storage boxes they’re using for components and more. In addition to the slotted parts are open-top boxes for things like the multimeter, helping hands, and the ever-important label maker.

[Handy Bear] used hot glue and simple joinery for everything, sealing all the seams with a mixture of glue and water to keep it from turning to dust. We especially like the caliper holder for the lap drawer. You’ll notice that not quite everything fits inside the desk, so [Handy Bear] put the bigger stuff on a couple of IKEA carts. Be sure to check out the short build video and take the desk tour after the break.

Don’t have room for a whole desk worth of stuff? Build an electronics lab in a box!

Continue reading “The Loveliest Electronics Desk You’ll See Today”

The Python documentation for str.strip().

Faster String Processing With Bloom Filters

At first, string processing might seem very hard to optimize. If you’re looking for a newline in some text, you have to check every character in the string against every type of newline, right? Apparently not, as [Abhinav Upadhyay] tells us how CPython does some tricks in string processing.

The trick in question is based on bloom filters, used here to quickly tell whether a character possibly matches any in a predefined set. A bloom filter works by condensing a set of more complex data to a couple of bits in an array. When an element is added, a bit is set, the index of which is determined by a hash function. To test whether an element might be in the filter, the same is done but by testing the bit instead of setting it. This effectively allows a fast check of whether an element might be in the filter.

CPython doesn’t stop optimizing there: instead of a complicated hash function, it simply uses the lowest 6 bits. It also has a relatively small bit array at only 64 bits which allows it to avoid memory all together, which in turn makes the comparisons much faster. [Abhinav] goes far into more detail in his article, definitely worth a read for any computer scientists among us.

Nowadays there is ever increasing amounts of talk about AI (specifically large language models), so why not apply an LLM to Python to fix the bugs for you?