The rust language logo being branded onto a microcontroller housing

C++ Encounters Of The Rusty Zig Kind

There comes a time in any software developer’s life when they look at their achievements, the lines of code written and the programming languages they have relied on, before wondering whether there may be more out there. A programming language and its associated toolchains begin to feel like familiar, well-used tools after you use them for years, but that is no excuse to remain rusted in place.

While some developers like to zigzag from one language and toolset to another, others are more conservative. My own journey took me from a childhood with QuickBasic and VisualBasic to C++ with a bit of Java, PHP, JavaScript, D and others along the way. Although I have now for years focused on C++, I’m currently getting the hang of Ada in particular, both of which tickle my inner developer in different ways.

Although Java and D never quite reached their lofty promises, there are always new languages to investigate, with both Rust and Zig in particular getting a lot of attention these days. Might they be the salvation that was promised to us C-afflicted developers, and do they make you want to zigzag or ferrously oxidize?

Continue reading “C++ Encounters Of The Rusty Zig Kind”

Adding Assistive Technology To A Doorbell

The advent of affordable computing over the last few decades has certainly been a boon for many people with disabilities, making it easier to access things like text-to-speech technology, automation, or mobility devices, and even going as far as making it easier to work in general by making remote work possible. Some things still lag behind, though, like user interfaces that don’t take the colorblind into account, or appliances that only use an audio cue to signal to their users. This doorbell, for example, is one such device and [ydiaeresis] is adding features to it to help their mother with some hearing issues.

The first thing up for this off-the-shelf remote doorbell is a “brain transplant” since the built-in microcontroller couldn’t be identified. There are only a few signals on this board though so an ATtiny412 made for a suitable replacement. A logic analyzer was able to decode the signals being fed to the original microcontroller, and with that the push of the doorbell can be programmed to do whatever one likes, including integrating it with home automation systems or other assistive technology. In [ydiaeresis]’s case there’s an existing LED lighting system that illuminates whenever the phone rings.

Although it would be nice if these inexpensive electronics came with the adaptive features everyone might need from them, it’s often not too hard to add it in as was the case with this set of digital calipers. To go even further, some other common technology can be used to help those with disabilities like this hoverboard modified to help those with mobility issues.

Thanks to [buttim] for the tip!

ESPer-CDP Plays CDs And Streams In Style

What do you get when you combine an ESP32, a 16-bit DAC, an antique VFD, and an IDE CD-ROM drive? Not much, unless you put in the work, which [Akasaka Ryuunosuke] did to create ESPer-CDP, a modern addition for your hi-fi rack.

It plays CDs (of course), but also can also scrobb the disks to Last.fm, automatically fetch track names and lyrics for CDs, and of course stream internet radio. It even acts as a Bluetooth speaker, because when you have an ESP32 and a DAC, why not? Of course we cannot help but award extra style points for the use of a VFD, a salvaged Futaba GP1232A02.  There’s just something about VFDs and stereo equipment that makes them go together like milk and cookies.

close up of front of machine showing VFD.
Between the panel and the VFD, this could almost pass as vintage Sony.

In terms of CD access, it looks like the IDE interface is being used to issue ATAPI commands to the CD-ROM drive to get audio out via S/PDIF.  (Do you remember when you had to hook your CD drive to your sound card to play music CDs?) This goes through a now-discontinued WM8805 receiver — a sign this project has been in the works for a while — that translates S/PDIF into an I2S stream the ESP32 can easily work with.

Work with it it does, with the aforementioned scrobbing, along with track ID and time-sinked lyrics via CDDB or  MusicBrainz. The ESP32 should have the computing power to pull data through the IDE bus and decode it, but we have to admit that this hack gets the job done — albeit at the expense of losing the ability to read data CDs, like MP3 or MIDI. [Akasaka Ryuunosuk] has plans to include such functionality into v2, along with the ability to use a more modern SATA CD-ROM drive. We look forward to seeing it, especially if it keeps the VFD and classic styling. It just needs to be paired with a classic amplifier, and maybe a DIY turntable to top off the stack.

Thanks to [Akasaka Ryuunosuke] for the tip. If you also crave our eternal gratitude (which is worth its weight in gold, don’t forget), drop us a tip of your own. We’d love to hear from you.

Tidy LED Matrix Displays GIFs On Demand

When it comes to LED matrixes, building one is just the first step. Then you have to decide what to display on it. [panjanek] came up with a relatively flexible answer to this question, building an RGB LED matrix that can display the GIFs of your choice.

The web interface accepts GIFs for display.

[panjanek] grabbed WS2812B addressable LEDs for this project, assembling them into a 32 x 32 matrix that fits perfectly inside an off-the-shelf Ikea picture frame. The matrix is hooked up to an ESP8266 microcontroller, which acts as the brains of the operation. The WiFi-enabled microcontroller hosts its own web interface, with which the project can be controlled. Upon opening the page, it’s possible to upload a GIF file that will be displayed as an animation on the matrix itself. It’s also possible to stream UDP packets of bitmap data to the device to send real-time animations over a network.

It’s a neat build, and one that answers any questions of what you might display on your LED matrix when you’re finished assembling it. Code is on Github if you fancy implementing the GIF features in your own work. We’ve featured some unexpected LED matrix builds of late, like this innovative device for the M.2 slot. Meanwhile, if you’re cooking up your own creative LED builds, don’t hesitate to let us know on the tipsline!

Aquassist fish feeder

2025 Pet Hacks Contest: Aquassist Fish Feeder

This project submitted to the 2025 Pet Hacks Contest brings a bit of IoT to your finned friends. Aquassist is a fish feeder that is primarily 3D printed only requiring a servo and a microcontroller to give you remote control of feeding your fish.

The Aquassist consists of just six 3D-printed parts. At its core is an Archimedes screw, a mechanism that ensures consistent portions of fish food are dispensed into the fish tank. A small hopper on top holds the food, and to minimize the part count, all 3D-printed components are designed to be glued together.

The brains of the operation take place in a Wemos D1 mini, a compact ESP8266 board programed using the Arduino IDE. The feeding mechanism relies on an SG90 continuous rotation servo, which rotates the Archimedes screw to dispense food. Unlike standard servos, this model offers ample torque in a small package and can rotate continuously without hitting an angular limit.

The Aquassist is controlled via a web-based application accessible from any device. The D1 Mini connects to Firebase to check the feeding schedule or detect if the “Feed Now” button has been pressed. Users can set feeding times or trigger an immediate feeding through the app’s intuitive interface. Check out a video below to see the Aquassist in action, and check our our other entries into the 2025 Pet Hacks Contest.

Continue reading “2025 Pet Hacks Contest: Aquassist Fish Feeder”

pinout leaf

Pinoutleaf: Simplifying Pinout References

We all appreciate clear easy-to-read reference materials. In that pursuit [Andreas] over at Splitbrain sent in his latest project, Pinoutleaf. This useful web app simplifies the creation of clean, professional board pinout reference images.

The app uses YAML or JSON configuration files to define the board, including photos for the front and back, the number and spacing of pins, and their names and attributes.For example, you can designate pin 3 as GPIO3 or A3, and the app will color-code these layers accordingly. The tool is designed to align with the standard 0.1″ pin spacing commonly used in breadboards. One clever feature is the automatic mirroring of labels for the rear photo, a lifesaver when you need to reverse-mount a board. Once your board is configured, Pinoutleaf generates an SVG image that you can download or print to slide over or under the pin headers, keeping your reference key easily accessible.

Visit the GitHub page to explore the tool’s features, including its Command-Line Interface for batch-generating pinouts for multiple boards. Creating clear documentation is challenging, so we love seeing projects like Pinoutleaf that make it easier to do it well.

Revivification: a Room with cymbals and plinth

Posthumous Composition Being Performed By The Composer

Alvin Lucier was an American experimental composer whose compositions were arguably as much science experiments as they were music. The piece he is best known for, I Am Sitting in a Room, explored the acoustics of a room and what happens when you amplify the characteristics that are imparted on sound in that space by repeatedly recording and playing back the sound from one tape machine to another. Other works have employed galvanic skin response sensors, electromagnetically activated piano strings and other components that are not conventionally used in music composition.

Undoubtedly the most unconventional thing he’s done (so far) is to perform in an exhibit at The Art Gallery of Western Australia in Perth which opened earlier this month. That in itself would not be so unconventional if it weren’t for the fact that he passed away in 2021. Let us explain.

Continue reading “Posthumous Composition Being Performed By The Composer”