DIVINER: Occult Synth Firmware For The Cardputer

We see some strange software around these parts, but this is probably the strangest. DIVINER is a firmware for the M5 Cardputer, which is an interesting device in its own right, being essentially a tiny ESP32-S3 dev kit with an even tinier screen, keyboard, some GPIOs, I2C, and an audio jack for output. It is essentially a blank canvas that can do anything if you write the firmware for it.

And that’s what DIVINER does: a little of everything. It’s part standalone synthesizer and sequencer, taking advantage of the I2S audio out, part visualization engine, part WiFi and Bluetooth scanner and monitor (what?), with an LLM interface and an IR blaster thrown in for good measure. [voidrane Splicer] even explores the Channel-State Information to do presence detection, like we’ve seen recently elsewhere. Byte-beat player anyone?

The Hackaday.io page talks about the underlying system layer before it even gets to the applications, and we get the feeling that all of the different apps, called “rites”, were crammed in to exercise it and show off the “blood and ember”, Diablo-esque visual style. But that doesn’t stop us from enjoying the audio engine, demonstrated in the video below, or the awesome graphics.

Do these apps hang together more than visually? Do they need to? Is the sum of the parts so large that you don’t even worry about the whole? We don’t know, but it’s also got a simulator so you can try that out while your Cardputer is shipping.

Continue reading “DIVINER: Occult Synth Firmware For The Cardputer” →

Warm Analog DSP, On The ESP

We love audio, and we love messing around with it. So when [mircemk] wrote in with his latest audio-mangling device, we had to give it a look. It’s a tube-sound processor implemented in an ESP32 with a WM8960 handling the audio side of things. Tubes are expensive, power hungry, and a general pain in the posterior, so there is incentive to DIY it yourself with DSP. The whole setup is mounted in a Tektronix-inspired case that would be at home on the workbench or in the living room.

See? No tubes!

What’s ironic about the tube sound is that it’s essentially a nonlinear distortion of the audio, but it’s a distortion that can sound better than the undistorted signal. (Take that, engineering!) Push-pull transistor amplifiers tend to distort the top and bottom end of the signal similarly, while tubes round off the tops more than the bottoms. [mircemk] lets you tweak this transfer function, and displays it nicely on the screen.

But there’s one more important way that tubes color the sound — they respond slowly to rapidly changing signals — and [mircemk] says he implemented that as well.  We couldn’t find that part of the distortion accounted for in the code, but maybe you can?

Anyway, this is a fantastic audio project, and it just goes to show you how far you can go with some simple parts and clever programming. Indeed, we’ve seen this rig before, with different code that made it a parametric EQ. Once you’ve got the sound turned into numbers, you can math anything at it.

A Hazeltine 1420 Lives Again

There was a time when buying a computer also meant picking out a compatible terminal. There were many to choose from, some good and some bad. While we were partial to TeleVideo, other well-known names included Lear Siegler and ADDS. There was also Hazeltine, a well-known brand that could emulate many other terminals. [The Byte Attic] had an unusable Hazeltine 1420, and finally got around to getting it working again.

As you might expect, the old terminal was full of suspect capacitors. A power transistor was also missing, hinting that someone had been robbing this unit to fix another. In addition to fixing the device, the plan was to improve it with switching regulators. These old terminals generated a lot of heat with linear regulators.

The power supplies were often the major issue with these kinds of devices, and scorch marks under the bridge rectifiers didn’t bode well, either. Another concern: the chips that hold the character sets and some other logic are unobtainable. If they were dead, there would be virtually no way to replace them. The plan was to read them, if possible, and design replacements for the day they did fail. If it wasn’t already too late.

Continue reading “A Hazeltine 1420 Lives Again” →

IRis Learning Remote Has Five Buttons, Supports Thousands Of Devices

Universal IR remotes able to learn codes from existing devices were once popular consumer items as well as DIY projects, but they could become quite complex themselves, sometimes with a dizzying number of buttons. [Nicolas Ruiz Neiman]’s IRis project carries the concept further with features that leverage modern parts and tools to deliver a more focused end result.

IRis keeps things clean and simple with four directional buttons, a single OK key, and a small OLED screen. IRis can learn and save IR codes and is compatible with the .ir file format, meaning it can read from an absolutely massive collection of codes intended for the Flipper Zero.

There’s also a “Be Gone” feature that mass-sends a power signal for every device in a category, re-implementing the functionality of the classic TV-B-Gone.

Hardware consists of an ESP32-WROOM-32 board, the  aforementioned OLED, an IR receiver module, IR emitters, some switches, and a power supply integrating an 18650 lithium-ion cell and charger. One thing that’s pretty interesting is the detailed test suite, which runs simulated hardware via key presses on every screen to ensure the UI is working right. The enclosure also includes the CAD files in STEP format, which means modifications are a breeze.

Sheet music is displayed on a screen, with the label "AIR" in the center top, and "Bach" to the right.

Reverse Engineering Score Perfect To Rescue Its Files

There are myriad challenges associated with data preservation – bit rot, loss of metadata, and hardware failures, among others – but one of the hardest is making sure that the data remains usable as software goes out of date. [Maarten Tromp]’s father, for instance, had been using the Score Perfect music notation program for years, but since development ceased in 2012, the files would eventually need to be transferred to more modern software. To do this, [Maarten] undertook a four-year project to reverse-engineer the structure of Score Perfect’s files.

Score Perfect was first released in 1990 for Atari and later ported to Windows, and after version four, it switched to a different file format. It had the option to export to MusicXML, but it only exported notes, not chords, lyrics, or other important details. [Maarten] first tried disassembling the program itself to find the file structure; he had hoped that the Visual Basic code might have been compiled to P-code, which is relatively easy to disassemble, but it had been compiled to native code. Interestingly, through version four, the program had been written for Atari and ran in Windows through a simple emulator. It wasn’t fully rewritten for Windows until later. After some investigation into the file-export function with Ghidra, he moved on to reverse-engineering the file format itself.

This consumed the majority of the project’s time. To investigate the file’s structure, [Maarten] would start by creating an empty file in the program, make one change, and compare the difference in the file written. This gradually revealed the organization of information — the file was arranged into blocks containing different kinds of information, such as measures and notes, and tags, which provided supplemental information. Once again, incremental changes revealed the function of most of these, and [Maarten] was eventually able to write a translation program to export Score Perfect files to MusicXML.

We’ve previously seen a similar effort to reverse-engineer the Altium file format. At least in these cases, though, all the necessary information is contained in the files, unlike the reverse-engineering often necessitated by STL files.

Making CO₂ Sensors Fail Visibly, Not Silently

CO₂ buildup in a living area can be a serious problem, and a sensor that fails quietly cannot be relied upon. [William Collis] addressed this important issue by creating CO₂ monitors built to fail visibly.

[William] has a nice home setup that can monitor CO₂ levels in two places, but noticed an important issue: the system always displayed the last known-good sensor reading. An unchanging, healthy-looking number is good! Unless it isn’t, because a flat unchanging number is also exactly what a dead sensor looks like.

The solution was for [William] to change how the sensors are treated so a faulty sensor isn’t hidden behind apparently-good values, and the sensor itself flashes a visible fault LED in the case of a problem.

Each monitor is a Sensirion SCD30 CO₂ sensor, paired with a Seeed XIAO ESP32-C3 running ESPHome to communicate with Home Assistant, an open-source home automation framework. There was no need to rewrite the ESPHome firmware; all his modifications fit within the context of a configuration file and certainly seem to be improvements over the original.

Sensors that can be relied on are important, but if the system itself needs some ruggedizing maybe consider a homebrewed UPS for Home Assistant.

ESP32 Flight Tracker On Apple CRT

Sometimes we’re most taken by what’s on the screen; sometimes the screen itself is the most interesting part of the project. In this case, it’s the latter. That’s no slight against [Virtual-Bet-4566], whose ESP32-based flight tracker looks very nice– but a big part of what it makes it so nice is that it’s displaying the ADS-B flight data on an old green-phosphor monitor from the Apple II days.

He’s using an ESP32-WROOM-32, which gives him both the wifi connection needed to grab aircraft locations and flight details– including photos of individual aircraft, when available from Planespotters.net– but crucially has an 8-bit digital-analong-converter that he’s using to drive the composite input on the old Apple monitor. Not all of the expansive ESP32 family have that feature, but at this point you might as well call ESP32 a brand of MCU than a family given the vast differences between them. Since composite video doesn’t need much power, he’s connected the dev board directly to the monitor. It’s that delicious combination of the old and new that really gets us vibing.

It can show you an image of the plane, but it’s not exactly high-def.

Speaking of vibing, yes, this whole thing was vibe-coded, as [Virtual-Bet] freely admits in the Reddit thread. LLMs seem to be really good at making these flight tracking apps, to judge from other posts on that site, but this one stands out for its display method. He’s also apparently got weather and his own local sensor data incorporated in the wifi-controlled display application, and isn’t interested in sharing the code since you could prompt it yourself. Fair enough.

We’ve seen composite-out from the ESP32 family before, more than once— which is probably how the LLM knew to pull it off–but there’s just something about that green glow.

Story via CircuitDigest.