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.

Borland C++ 2.0 Compiler Source Reconstructed

As the successor to Turbo C++, Borland C++ was a staple of professional IDEs for C and C++ development, starting with the initial 2.0 release in 1991. Being a commercial project the original source code for the toolchains were naturally not made available by Borland, but thanks to the efforts of [Abedegno] we have now got what is claimed to be a byte-perfect recreation, in the sense that the binaries compiled using the toolchain are identical to the original toolchain.

The process of creating the source from the original toolchain binaries is detailed in a separate document, including the use of [Abedgno]’s Claude Code-based Exhume tool to assist in the effort.

Having the source code for BC++ 2.0 available is probably most useful for projects that deal with DOS-based software from the same era, as well as for purely historic interest reason. When BC++ 2.0 was released, the C programming language had only just seen itself standardized in the form of C89, and C++’s initial standard in 1998 was still years away.

Thanks to [Stephen Walters] for the tip.

X Window System On The ESP32

There are a lot of things you can do with an Xserver, but run it on a microcontroller? Well, if that microcontroller is an ESP32-S3, [Sergey Zorin]– and Claude– have got you covered with Woodland X11, a full-featured port of everyone’s favourite XServer.

Now, it is just the core Xserver with no extensions, and currently targeted specifically at the Elecrow CrowPanel Advance 4.3″, a device that packages an ESP32-S3-N16R8 with an 800×480 RGB565 IPS panel and GT911 touch. In this implementation, your finger is the Xcursor. There’s even two-finger scroll implemented, though no keyboard. As you can see in the demo video embedded below, it works well enough for those oldschool X applications like xclock, xcalc and– crucially!– xeyes. What’s the point of an Xserver without googly eyes, anyway?

In reality, you’re not likely to set this up just for Xeyes, but the idea of having bringing Linux applications to a little display via WiFi or — as in the video– wired connection has no limit of use cases. Try that with Wayland!

Considering X11’s vintage, it is perhaps not surprising that it fits on the ESP32-S3, a chip we’ve seen emulate an entire 386 PC before– a PC that could run an Xserver, for you youngun’s.

Thanks to [Sergey] for the tip!

Continue reading “X Window System On The ESP32” →