A UI-Focused Display Library For The ESP32

If you’re building a project on your ESP32, you might want to give it a fancy graphical interface. If so, you might find a display library from [dejwk] to be particularly useful.

Named roo_display for unclear reasons, the library is Arduino-compatible, and suits a wide range of ESP32 boards out in the wild. It’s intended for use with common SPI-attached display controllers, like the ILI9341, SSD1327, ST7789, and more. It’s performance-oriented, without skimping on feature set. It’s got all kinds of fonts in different weights and sizes, and a tool for importing more. It can do all kinds of shapes if you want to manually draw your UI elements, or you can simply have it display JPEGs, PNGs, or raw image data from PROGMEM if you so desire. If you’re hoping to create a touch interface, it can handle that too. There’s even a companion library for doing more complex work under the name roo_windows.

If you’re looking to create a simple and responsive interface, this might be the library for you. Of course, there are others out there too, like the Adafruit GFX library which we’ve featured before. You could even go full VGA if you wanted, and end up with something that looks straight out of Windows 3.1. Meanwhile, if you’re cooking up your own graphics code for the popular microcontroller platform, you should probably let us know on the tipsline!

Thanks to [Daniel] for the tip!

The clock and the rebuilt calculator from which its VFD was donated.

An RPN Calculator And A Bonus VFD Clock From Casio Revival

Have you heard the saying “the problem is the solution”? It seems to originate in the permaculture movement, but it can apply equally well to electronics. Take the problem [shiura] had: a Casio Mini CM-602 that had let out the magic smoke. The solution was a twofer: rebuild the Casio into a modern number cruncher with Reverse Polish Notation (RPN), and save the Vacuum Fluorescent Display (VFD) for a gorgeous WiFi clock.

[shiura]’s write-up includes a helpful guide for reverse engineering the pins on this sort of VFD, if you don’t happen to have the same model calculator (or VFD tube) they’re working with. If you’ve done this sort of thing, you know what to expect: power it up and kill power to the pins, one by one, to map out which segments or characters go out, thereby identifying the anodes and grid electrodes. The cathodes had already been ID’d from looking at the PCB. After that it’s just a matter of wiring the VFD to an ESP32 via a transistor array to get the voltages right, and voila! Clock. The code and case design files for this clock — including an editable .blend — are available via GitHub.

The calculator half of the project is an incredibly elegant hack that relies on the fact that the Casio’s CPU has the same pin pitch as modern micros: 2.54 mm, or 0.1″, so an RP2040 zero can sit in the footprint of the original CPU, scanning the keypads with its GPIO. Then an I2C display is separately wired up to replace the clockified VFD. Perhaps some driver circuitry for the VFD died, or [shiura] salvaged the display before deciding to save the calculator, because otherwise we see no reason why this brain transplant couldn’t be done while keeping the original display. Admittedly having two lines on the display instead of one make the “new” calculator a tad more usable. The code for that is also available on GitHub, and while the readme is in Japanese, machine translations have gotten pretty good and the code is quite readable on its own.

Longtime readers will likely be familiar with [shiura]’s work, with a number of finely crafted clocks having been featured from the Japanese maker, along with vintage pocket computer repairs. Bringing both together makes this twin hack particularly on-brand.

Continue reading “An RPN Calculator And A Bonus VFD Clock From Casio Revival”

Chamber-Master

Chamber Master: Control Your 3D Printer Enclosure Like A Pro

Having an enclosed 3D printer can make a huge difference when printing certain filaments that are prone to warping. It’s easy enough to build an enclosure to stick your own printer in, but it can get tricky when you want to actively control the conditions inside the chamber. That’s where [Jayant Bhatia]’s Chamber Master project comes in.

This system is built around the ESP32 microcontroller, which provides control to various elements as well as hosts a web dashboard letting you monitor the chamber status remotely. The ESP32 is connected to an SSD1306 OLED display and a rotary encoder, allowing for navigating menus and functions right at the printer, letting you select filament type presets and set custom ones of your own. A DHT11 humidity sensor and a pair of DS18B20 temperature sensors are used to sense the chamber’s environment and intake temperatures.

One of the eye-catching features of the Chamber Master is the iris-controlled 120 mm fan mounted to the side of the chamber, allowing for an adjustable-size opening for air to flow. When paired with PWM fan control, the amount of airflow can be precisely controlled.

Continue reading “Chamber Master: Control Your 3D Printer Enclosure Like A Pro”

Xcc700: Self-Hosted C Compiler For The ESP32/Xtensa

With two cores at 240 MHz and about 8.5 MB of non-banked RAM if you’re using the right ESP32-S3 version, this MCU seems at least in terms of specifications to be quite the mini PC. Obviously this means that it should be capable of self-hosting its compiler, which is exactly what [Valentyn Danylchuk] did with the xcc700 C compiler project.

Targeting the Xtensa Lx7 ISA of the ESP32-S3, this is a minimal C compiler that outputs relocatable ELF binaries. These binaries can subsequently be run with for example the ESP-IDF-based elf_loader component. Obviously, this is best done on an ESP32 platform that has PSRAM, unless your binary fits within the few hundred kB that’s left after all the housekeeping and communication stacks are loaded.

The xcc700 compiler is currently very minimalistic, omitting more complex loop types as well as long and floating point types, for starters. There’s no optimization of the final code either, but considering that it’s 700 lines of code just for a PoC, there seems to be still plenty of room for improvement.

MQTT Pager Build Is Bringing Beepers Back

Pagers were once a great way to get a message to someone out in public; they just had to be cool enough to have one. These days, they’re mostly the preserve of doctors and a few other niche operators. [Kyle Tryon] is bringing the beeper back, though, with a custom ESP32-based build.

The ESP32 is a great microcontroller for this kind of project, because it’s got WiFi and Bluetooth connectivity built right in. This let [Kyle] write some straightforward code so that it could receive alerts via MQTT. In particular, it’s set up to go off whenever there’s an app or service notification fired off by the Sentry platform. For [Kyle]’s line of work, it’s effectively an on-call beeper that calls them in when a system needs immediate attention. When it goes off, it plays the ringtone of your choice—with [Kyle] making it capable of playing tunes in Nokia’s old-school RTTTL music format.

The code was simple enough, and the assembly wasn’t much harder. By starting with an Adafruit ESP32 Reverse TFT Feather, the screen and buttons were all ready to go right out of the box. [Kyle] merely had to print up a rad translucent case on a resin printer to make it look like a sweet fashionable beeper from the 90s.

It’s a fun little project that should prove useful, while also being nicely reminiscent of a technology that has largely fallen by the wayside. Continue reading “MQTT Pager Build Is Bringing Beepers Back”

DIY E-Reader Folds Open Like A Book

There are plenty of lovely e-readers out on the market that come with an nice big e-paper display. There aren’t nearly as many that come with two. [Martin den Hoed] developed the Diptyx e-reader with such a design in order to better replicate the paper books of old. 

The build is based around the ESP32-S3, a powerful microcontroller which comes with the benefit of having WiFi connectivity baked in. It’s hooked up to a pair of 648×480 e-paper displays, which are installed in a fold-open housing to create the impression that one is reading a traditional book. The displays themselves are driven with custom look-up tables to allow for low-latency updates when turning pages. The firmware of the device is inspired by the epub reader from [Atomic14], and can handle different fonts and line spacing without issue. Power is from a pair of 1,500 mAh lithium-polymer cells, which should keep the device running for a good long time, and they can be charged over USB-C like any  modern gadget.

You can follow along with the project on the official website, or check it out on Crowd Supply if you’re so inclined. The project is intended to be open source, with files to be released once the design is finalized for an initial production run.

We’ve seen some great DIY e-reader builds over the years, and we’re loving the development we’re seeing in the writer deck space, too. If you’re whipping up something fun in this vein, be sure to let us know on the tipsline!

A browser window is shown, in which a web page is displaying a green trace of a square wave.

A Compact, Browser-Based ESP32 Oscilloscope

An oscilloscope is usually the most sensitive, and arguably most versatile, tool on a hacker’s workbench, often taking billions of samples per second to produce an accurate and informative representation of a signal. This vast processing power, however, often goes well beyond the needs of the signals in question, at which point it makes sense to use a less powerful and expensive device, such as [MatAtBread]’s ESP32 oscilloscope.

Continue reading “A Compact, Browser-Based ESP32 Oscilloscope”