A Bike-Friendly, DIY Action Cam Stereo Microphone

[DJJules] had two problems. Being an avid biker, recording audio on a bike-mounted action camera was less than ideal due to wind. In addition, the built-in microphone on action cameras is also just not as good as a dedicated stereo microphone setup. His solution: The Bike Mike.

The furry ends contain one mic each, mounted with foam.

The Bike Mike solves both problems at once by providing a windproof stereo microphone for [DJJules]’s bike-mounted action camera. It consists of a 3D printed frame and mount for two electret microphones. The mics each get a foam cover, and are surrounded by a cage upon which furry mic covers are applied.

The microphones are wired up to a 3.5 mm audio connector, which is a pretty straightforward soldering job. To make it compatible with the action camera, [DJJules] uses a super slim USB microphone adapter that accepts the 3.5 mm connector on one end, and provides a USB-C plug on the other. One can insert that directly into the camera and have it recognized as an external mic.

If this looks a bit familiar, it’s similar to his earlier design for a DIY external stereo mic for things like DSLR cameras. This one’s adapted for action cameras, integrating a USB adapter for a wider compatibility.

Embedded is a build video followed by sample footage, so give it a watch and listen for yourself.

Continue reading “A Bike-Friendly, DIY Action Cam Stereo Microphone” →

Automate That Halloween Treating

We live a Jetsons future of ubiquitous automation, in which the most trivial of human tasks has a machine to take the work out of it. Take doling out Halloween candy for example, why the effort of doing it by hand when a machine can take the  strain? [Christian] is here to show us the way with the Halloween Candy Mosnter. It’s a cardboard monster ehad that delivers candy when you press its nose, but there’s a bit more to it than that.

Behind the scenes there’s an ESP32 running the show, with the candy dispensed by a stepper motor with a finger wheel. An IR break beam detects candy dispensing, and an array of flashing lights and sounds complete the celebration. It’s a bit of fun, but with more substance than at first meets the eye. Everything sits in a GitHub repository should you wish to take a peek.

Halloween comes but once a year, and thus we only have a few days in which to show off these hacks. Oddly this one isn’t the first dispenser of candy we have brought you.

DIY Rooftop Tent Sets Up In A Jiffy

[CraftAndu] shares his DIY car rooftop tent design that looks like a pretty accessible build. It allowed him to test drive the concept to his satisfaction while spending a fraction of what a commercial unit would cost.

The rooftop tent consists of a folding platform of sturdy plywood bolted to the roof rack. The tent is attached, with the support rods cleverly anchored to the hinges so folding the platform stows the tent and mattress, and unfolding deploys it. Doing this in a way that also leaves suitable clearance between the sections when folded requires a special hinge design, but it’s mechanically straightforward. According to [CraftAndu], it’s also plenty strong and he never had any worries about stability. The final touch is a rain cover made from durable waterproof fabric that buckles around the whole thing.

There are a few nifty design elements we particularly like. The integrated aluminum ladder is a nice touch, as is the little folding table on the inside of the ladder. Also, since the platform folds out to the side, one can have a small roof overhead while sitting below. Hanging a tarp around the perimeter also creates a what he jokingly refers to as “the livingroom”.

[CraftAndu] also shares his thoughts after using it for a two-week trip. Chief among them is that while it worked very well and shows no signs of wear, it’s still just a tent. It’s a bit cramped, cold, and like any tent it needs to be dried out in the morning due to condensation even if there’s no rain. On the plus side, it’s ridiculously convenient and easy to set up. Check it out in the video, embedded just below.

If you want to see some other DIY vehicle-camper projects, don’t miss this DIY pop-up truck camper, the Toyota Corolla that sleeps two, and for a little something different here’s a van converted to off-grid camper-slash-remote office.

Continue reading “DIY Rooftop Tent Sets Up In A Jiffy” →

It’s Alpine Linux, On A Kindle Paperwhite 3

As computing power becomes cheaper and microprocessors become more capable, a steady trend over recent decades has been to see more everyday devices hiding Linux under the hood somewhere. Sadly in most cases that’s where it stays, but some such machines have a level of hackability. One such is the 7th generation Kindle PaperWhite 3, for which [pragyaangaur] has produced a distro that gives it the Alpine Linux userspace and a few other tricks.

As you might expect, the Kindle must be jailbroken, and is limited to the rather ancient Amazon kernel. The distro comes with a few extras for the custom front end. There’s a selection of games, a browser, an ArXiv search client, an ePub reader, and Quill, a local chatbot running SmolLM2 over llama.cpp on the Kindle’s own processor. At 1.7 words per second it may not be the fastest, but the important thing is that everything stays on the device. Best of all, it’s easy enough to return your Kindle to stock should you tire of the distro.

A quick look at everyone’s favourite auction site finds these readers available for well under $100, so should you wish to join the fun it at least shouldn’t cost an arm and a leg. Meanwhile, Kindle hacking is somewhere we’ve taken you before.

MousePods Reverse Engineers Head Tracking Data From Stubborn AirPods

[Matteo Gaudioso] released MousePods, a Python tool which accesses the motion sensors in Apple AirPods on Linux, turning them into mouse input. No Apple host required. Doing this required reverse-engineering how the devices work and communicate, because it turns out the AirPods 3 do things differently than other models.

Everything runs in a single Linux app, no Apple host involved.

Head tracking with AirPods has been around for years. Apple uses the motion data for spatial audio and gesture detection, and there are a number of open source tools to access that data. But there was always a blind spot: no one could figure out how to talk to the AirPods 3.

[Matteo] enlisted the help of Claude Code in digging out what was different, and found Claude pretty useful for running hundreds of probes and tests to the AirPods to eventually tease out what was going on, among other things. The findings are nicely summarized here. One interesting one is how the sensor data was indirectly hidden by the fact that on Linux the default MTU (Maximum Transmission Unit) is too small to hold the whole payload complete with motion sensors. Once the Linux MTU is increased to match the considerably larger iOS default, everything appears.

There’s one other feature we like: the ability to send the data to opentrack to use as head tracking input to things like flying or racing simulators. We’ve seen this done with flight sims using headphones for head tracking, which is a great way to use sensor data that already exists without impacting the audio functionality.

Some features are still experimental, but MousePods is confirmed to work with the Apple AirPods 3 and AirPods Pro 2. Check out the MousePods website for a bit more info if you’d like to give it a try.

Using Halftone Images In QR Codes Without Upsetting Scanners

Although quick-response (QR) codes are rather simple monochrome affairs, adding embellishments to them is a popular activity, if only to make QR codes not stick out like a sore thumb in e.g. flashy marketing flyers. The most simple approach here is to put any regular graphic in e.g. the center of said QR code and lean on the scanner’s error-correcting features to route around the damage, but a more sophisticated approach uses halftone images that are blended with the QR code, as first demonstrated in 2013 by [Hung-Kuo Chu] et al.

A number of online halftone image QR generators exist that use the methodology in said 2013 paper to allow you to generate any mesh-up you like. Here [Jorge C. Lucero] provides a JavaScript-based version written from scratch that can run client-side. According to [Jorge] this was a weekend’s project created out of sheer curiosity.

The basic way that this algorithm works is by using each of the data modules of the QR code as a 3×3 grid of submodules, using only the center sub-module as the module’s color. The other sub-modules are thus free to be assigned a halftone color grade that creates the final module’s appearance.

Although this should generally work without leaning on the scanner’s error-correction features, an ‘enhancement’ mode is possible that enhances the image clarity at the cost of introducing some scanning errors that will require correction. Overall it provides a pretty clear improvement over simple binary image embedding, especially when higher resolution QR codes are used.

Why The ULC Audio Codec Is A Perfect Fit For The N64

Although the Nintendo 64 could deliver solid 3D graphics with assets loaded at a blistering speed from the game cartridge, audio-wise it was a bit more hampered. The main challenge here was that streaming PCM audio data from a roomy CD as on the PlayStation wasn’t an option, and using compressed audio samples was impaired by Nintendo’s refusal to open up more than the CPU for third-party codecs, leading to most N64 games using so-called ‘sound fonts’ that use sample-based tracks.

Once the N64’s RSP vector processor became available for use by developers it became possible to use MP3s without clobbering the CPU, but this was still an imperfect solution. In a recent article by [Dominic Szablewski] it is thus argued that the Ultra Low Complexity (ULC) codec might be a match made in haven for the N64 hardware.

This still uses the same modified discrete cosine transform (MDCT) as many lossy audio codecs including MP3 do, but the ULC code is designed to be extremely light-weight for decoding. [Dominic] first came across it in the form of an old Game Boy Advance demo that played a 70 kbps file with no issues on the 16 MHz ARM CPU.

Naturally the ULC codec’s creator [Aikku93] didn’t employ any unusual black magic to achieve this feat, mostly just foregoing some of the heavier elements of e.g. MP3 like splitting the signal into bands, and using a light-weight syntax to store transformed coefficients.

Here [Dominic]’s goal was to port the ULC code to work with the N64’s RSP so as to offload as  much of the decoding as possible. This required becoming extremely intimate with MIPS assembly, with [Dominic] eventually giving up and asking an LLM coding chatbot to translate bits of ULC C code to [Max Bebök]’s RSP language (RSPL) syntax instead.

The good news here is thus that the open source N64 SDK libDragon now has ULC support, just in case you want more than simple tracker-based music for your homebrew N64 game and do not feel like clobbering the RSP and CPU at the same time with something like MP3 or Ogg Vorbis.