Bike Rides Played Back Via Aircraft Altitude Indicator

Any good bike ride should have a big climb to push your fitness, and a nice descent for the joy of careening down at high speed. [Glen Akins] has been recording his altitude during his mountain biking expeditions, and has now built a way to play them back on an aircraft altitude indicator.

A Python script is used to parse a recorded GPX file, which stores position and elevation data captured from a GPS device during [Glen]’s rides. The elevation data is then output to a Raspberry Pi Pico, which drives a set of three Microchip MCP4802 DACs and three TI OPA584 op-amps in order to create the necessary 400 Hz AC waveforms to drive the aircraft altitude indicator. One DAC and op-amp are used to generate 400 Hz AC to simply power the device, while the other two are used to generate synchro signals to actually drive the dial as needed. The maths involved is worth checking out, particularly if you’re into old-school instrumentation from the 20th century.

We’ve seen similar tinkering efforts from [Glen] before, too.

Continue reading “Bike Rides Played Back Via Aircraft Altitude Indicator”

Software Driving Hardware

We were talking about [Christopher Barnatt]’s very insightful analysis of what the future holds for the Raspberry Pi single board computers on the Podcast. On the one hand, they’re becoming such competent computers that they are beginning to compete with lightweight desktop machines, instead of just being a hacker curiosity.

On the other hand, especially given the shortage and the increase in price that has come with the Pi’s expanding memory endowments, a lot of people who would “just throw in a Raspberry Pi” are starting to think more carefully about their options. Five years ago, this would have meant looking into what you could whip together on an Arduino-based platform, either on actual Arduino hardware or on an ESP8266 or similar, but that’s a very different beast from a programmer’s perspective. Working with microcontrollers used to be very different from working with even the smallest Linux machines.

These days, there is no shortage of microcontrollers that have enough memory – both flash and RAM – to support a higher-level environment like MicroPython. And if you think about it, MicroPython brings to the microcontrollers a lot of what people were using a Raspberry Pi for in projects anyway: a friendly interactive programming environment that was free of the compile-here, flash-there debug cycle. If you’re happy coding Python on a single-board Linux computer, you’ll be more or less happy coding in MicroPython or Circuit Python on a microcontroller.

And what this leaves us with, as hackers, is a fantastic spectrum of choices. Where before there was a hard edge between programming C on an 8-bit PIC or an AVR and working with something that had a full Linux operating system like a Pi, it’s all blurry now. And as the Pis, the Jetson, and all the other Linux SBCs are blurring the boundary with more traditional computers as they all become more competent and gain more computer-like peripherals. Nowadays your choice is much freer, and the hardware landscape more fluid. You don’t have to let software development concerns drive your hardware choices, and we think that’s a great thing.

Hackaday Prize 2023: EyeBREAK Could Be A Breakthrough

For those with strokes or other debilitating conditions, control over one’s eyelid can be one of the last remaining motor functions. Inspired by [Jeremiah Denton] blinking in Morse code on a televised interview, [MBW] designed an ESP32-based device to decode blinks into words.

While an ESP32 offers Bluetooth for simulating a keyboard and has a relatively low power draw, getting a proper blink detection system to run at 20 frames per second in a constrained environment is challenging. Earlier attempts used facial landmarks to try and determine, based on ratios, whether an eye was open or closed. A cascade detector combined with an XGBoost classifier offered excellent performance but struggled when the eye wasn’t centered. Ultimately a 50×50, 4-layer CNN in TensorFlow Lite processes the camera frames, producing a single output, eye open or closed. For debugging purposes, it streams camera frames over Wi-Fi with annotations via OpenCV, though getting OpenCV to compile for ESP32 was also nontrivial.

[MBW] trained the model using the MRL dataset and then quantized to int8. Getting the Bluetooth and Wi-Fi stacks to run concurrently was a bit of a pain, as was managing RAM. After exhausting SRAM and IRAM, [MBW] had to move to PRAM. The entire system is built into some lightweight goggles and makes for a fairly comfortable experience.

While TensorFlow and microcontrollers might seem like a bit of an odd couple, at the end of the day, the inference engine is just doing some math on an array of inputs with some weights. We’ve even seen TensorFlow Lite on a Commodore 64. If you don’t know about [Admiral Jerimiah Denton] we can shed some light on it for you.

Continue reading “Hackaday Prize 2023: EyeBREAK Could Be A Breakthrough”

DIY 3D Printed Rain Gauge Connects To Home Assistant

Measuring local rainfall has real practical uses, especially in agriculture, but most of us will have to admit that it’s at least partly about drawing cool graphs on a screen. Whatever your motivation, you can build this open source electronic rain gauge designed by [Sebastian] of Smart Solutions for Home, and integrate it with Home Assistant.

This 3D printed rain gauge is of the ubiquitous tipping bucket type and uses a magnet and hall effect sensor to detect every time the bucket tips out. The sensor is soldered to a custom PCB with ESP32 configured using ESP Home. By keeping it in deep sleep most of the time and only waking up when the tip of the bucket, [Sebastian] estimates it can run about a year on four AA batteries, depending on rainfall. The hinge mechanism is adjustable to ensure that both buckets will tip with the same volume of water.

FDM 3D printed enclosures are not known for being waterproof, so [Sebastian] coated the PCB with varnish to protect it from moisture. This worked well enough that he could leave it running in a bowl of water for a few hours without any ill effects. The end result looks good and should be able to handle the outdoors for a long time.

Building a weather station is a popular DIY project. Some of the interesting varieties we’ve seen are powered by supercapacitors, show readings on antique analog dials and convert parking distance sensor kit into a wind gauge.

Continue reading “DIY 3D Printed Rain Gauge Connects To Home Assistant”

Macro Pad Cheap Enough To Give Away

Supercon 2022 showed that hackers are starting to come together again in Maker Faires, conventions, and festivals. [Toby Chui] plans to be one of those hackers and wants something to give to fellow attendees. Thus, the $3 Macro Pad was born.

We’ve seen our fair share of macro pads, so a simple four-key pad isn’t exactly novel. However, the focus on size and cost makes it stand out. The pad is the size of a business card, making it easy to give away. For a microcontroller, [Toby] used a CH552G, which is cheap and compatible with the Arduino IDE. Although, with 10 GPIO, a matrix layout could have supported a full-sized number pad, the diodes required would have added to the cost significantly. A cheap PCB and 3d-printed base make up the device’s bulk.

[Toby] provides a handy tool for assigning keys from your browser without coding. However, the source code is on GitHub if you want to develop a more complicated scheme. This isn’t the first time we’ve featured the CH552 chip, and it likely won’t be the last.

Continue reading “Macro Pad Cheap Enough To Give Away”

Hackaday Prize 2023: Hearing Sirens When Drivers Can’t

[Jan Říha]’s PionEar device is a wonderful entry to the Assistive Tech portion of the 2023 Hackaday Prize. It’s a small unit intended to perch within view of the driver in a vehicle, and it has one job: flash a light whenever a siren is detected. It is intended to provide drivers with a better awareness of emergency vehicles, because they are so often heard well before they are seen, and their presence disrupts the usual flow of the road. [Jan] learned that there was a positive response in the Deaf and hard of hearing communities to a device like this; roads get safer when one has early warning.

Deaf and hard of hearing folks are perfectly capable of driving. After all, not being able to hear is not a barrier to obeying the rules of the road. Even so, for some drivers it can improve awareness of their surroundings, which translates to greater safety. For the hearing impaired, higher frequencies tend to experience the most attenuation, and this can include high-pitched sirens.

The PionEar leverages embedded machine learning to identify sirens, which is a fantastic application of the technology. Machine learning, after all, is a way to solve the kinds of problems that humans are not good at figuring out how to write a program to solve. Singling out the presence of a siren in live environmental audio definitely qualifies.

We also like the clever way that [Jan] embedded an LED light guide into the 3D-printed enclosure: by making a channel and pouring in a small amount of white resin intended for 3D printers. Cure the resin with a UV light, and one is left with an awfully good light guide that doubles as a diffuser. You can see it all in action in a short video, just under the page break.

Continue reading “Hackaday Prize 2023: Hearing Sirens When Drivers Can’t”

DSP PAW Hardware Platform

Hackaday Prize 2023: Learn DSP With The Portable All-in-One Workstation

Learning Digital Signal Processing (DSP) techniques traditionally involves working through a good bit of mathematics and signal theory. To promote a hands-on approach, [Clyne] developed the DSP PAW (Portable All-in-one Workstation). DSP PAW hardware and software provide a complete learning environment for any computer where DSP algorithms can be entered as C++ code through an Arduino-like IDE.

Continue reading “Hackaday Prize 2023: Learn DSP With The Portable All-in-One Workstation”