Audio Spectrum Analyzer On An ESP32 Display Board

A slick spectrum analyzer used to be the kind of thing that would have been tricky to include in a DIY project, but as [Mirko “mircemk” Pavleski] demonstrates, a modern microcontroller like the ESP32 can handle the task with nothing more than a display panel and a few passives.

This particular example is built around the CrowPanel 3.5, which combines the powerful microcontroller with a 480×320 touch screen LCD. But there’s nothing inherently special about the CrowPanel, and you could get similar results with whatever display you might have kicking around the parts bin — albeit potentially with some code changes to account for the different hardware.

Beyond the microcontroller and the display, all you need to recreate what [mircemk] has done here is a handful of passives to tame the incoming analog audio signal so it can be piped into one of the analog-to-digital converter (ADC) pins on the MCU.

This project is fairly simple, but if you’re looking for something a little more advanced from [mircemk], don’t worry. The more daring home players can try their hand at recreating this high-voltage X-ray machine made from an old TV vacuum tube.

Continue reading “Audio Spectrum Analyzer On An ESP32 Display Board”

A Tiny Toy Synth For Smaller Computers

Even for the non-musical among us there is a lot of fun to be had with a simple synthesiser and sequencer, as the different controls can be manipulated to show their effect on the sound. Beeper, from [Valentyn Danylchuk] is just such a synth, and with only built-in loops, it has a focus on the instrument rather than the arrangement. What you get are a simple set of controls, from which you can modify the sound to your liking. We’ve been playing with it here, and it’s surprisingly addictive.

The target for Beeper is ESP32 microcontrollers, with builds for the S3 and P4, but there’s also a web version and one for the Mac. It’s operated using the arrow keys on your keyboard, and  the web one at least isn’t the most responsive piece of software. Below the break you can see (and hear) it on a Tanmatsu ESP32-P4 based handheld computer.

It’s certain that there are more accomplished synthesisers and sequencers to be found, but there’s still a place for one that’s simply a musical toy like this. Sometimes playing with something is more important than achieving something with it.

Continue reading “A Tiny Toy Synth For Smaller Computers”

A JavaScript OS For The ESP32

Given the incredible power of modern microcontrollers, we’ve seen quite a few attempts to turn them into more general purpose computers over the years. KryonOS from [Haris] is the latest, and it takes a slightly different path from the norm in that it’s a JavaScript based operating system for the ESP32.

It takes the form of an OS with a simple GUI and graphics library, and a built-in JavaScript runtime interpreter. It runs on a wide variety of ESP32 boards with screens, including the ubiquitous Cheap Yellow Display. It has full access to the SD card filesystem, and an API for using the hardware. Perhaps most interestingly it has an app store for downloadable software, which immediately reminds us of Europe’s Badge.Team. Their SHA2017 badge spawned a succession of devices that continues to this day, and offered a similar experience using Python.

We like this project, and think it has potential due to the ease of JavaScript development for so many people used to working with the web. There was a time when Python running on microcontrollers sounded pretty far fetched, and look where we are now.

ESP32 Replacement For Lighting Display Controller

As a company, NanoLeaf has been producing modular lights that can be easily snapped together into various geometric shapes for around a decade. Similar to the addressable LED light strips many of us are familiar with that also became popular around a decade ago, these modular lights are supposed to be easy to configure, customize, and program. But their controllers are notoriously finicky according to [Myrik] who found that a simple ESP32 could be used to replace them when they eventually fail.

Part of the reason [Myrik] found this to be straightforward is that the company publishes their firmware and makes it essentially available to anyone. Whether or not this was purposeful is not clear; but in either case it only requires slight modification to run on the ESP32. When plugged into an existing string of panels, the panels themselves report their positions and orientations over a single data bus which the ESP32 has no problem interpreting. The ESP32 can also communicate its status over the network, meaning that it can in turn be controlled by any other lighting software a user might have.

There’s a separate Reddit post about this build as, with other users offering other potential solutions to the controller issue. But we are always happy to see more open solutions to hardware failures which keep interesting things like these out of the e-waste pile, or simply building NanoLeaf-inspired replicas from the ground up in the first place.

Your CYD Is Now A Telly

The Cheap Yellow Display is an all-in-one ESP32 board with a touchscreen, that’s as the name suggests, cheap. It’s appeared in a great many projects since it emerged from the depths of AliExpress, and today thanks to [Nickm324] it takes the turn of becoming a mini TV.

The tiny TV project world is one of successive developers building on previous works to deliver their own refinements on the idea, so this one borrows heavily from an earlier ESP32 project. Its twist on the idea is a single button interface using the CYD’s BOOT button. It supports a range of “channels” of which each one is a different piece of media played from the SD card. As far as we can see it’s only able to play synchronised .mjpeg and audio files, probably a shortcoming of the older ESP32 found on the CYD. The photo features a rather cutesy retro 3D printed TV case which annoyingly isn’t linked from the repository at the time of writing.

It’s a nice idea, and the CYD makes it as easy as possible with minimal wiring. Yes it’s a novelty, but we’re guessing there could be many non-novelty applications for it too. It’s certainly not the first such project we’ve seen, here’s an earlier one.

A 3D Rasterizer For Embedded Devices

Once upon a time, doing graphics on a microcontroller was challenging, to say nothing of the concept of going into three dimensions. But modern microcontrollers are far more powerful, and you might find yourself wanting to do all sorts of graphical wizardry with one. To that end, you might find Jet useful.

Created by [CubeCoders], Jet is a compact 3D rasterizer built for modern chips like the ESP32 and STM32. It’s dependency free, relatively tiny, and is written in C++17 with an eye towards working well on memory-limited platforms. It runs entirely in software, uses only integer arithmetic, and is built around 16-bit RGB565 color — intended to make it easy to use with parts like the ST7796, ILI9488, and other similar displays interfaced via SPI.

As a point of reference, on a ESP32-S3 Jet can render around 650 on-screen triangles (post-culling) at 60 frames per second on a 480×320 display, or 1300 triangles at 30 FPS. The developers note that 3D performance lands somewhere between the Sega 32X and Sega Saturn — not bad for a microcontroller you can buy for under $20. The Wipeout-like demo shows off the capabilities of Jet rather fantastically, we think.

You’d be foolish to expect your next microcontroller project to render Crysis. However, if you want some retro 3D graphics for your next ESP32-based build, you might just consider exploring what Jet can do for you.

Continue reading “A 3D Rasterizer For Embedded Devices”

A Cheap And Easy Control Screen For Home Assistant

Home Assistant is a great way to rig up and manage your smart home and its many and varied devices. You can of course control the system from your smartphone or a computer, but you might like to have a dedicated interface too. In that regard, [Max Gramser]’s project may come in handy.

At heart, it’s a Home Assistant control screen that you can lay out yourself. It’s intended to run on ESP32 hardware. Most specifically, it’s built to run on the Cheap Yellow Display which combines an ILI9341 display with an XPT2046 resistive touchscreen, or a Guition ESP32-S3-4848S040, which has a ST7701S RGB display combined with a capacitive GT911 touchscreen. You merely need to load the firmware on to one of these units, and you’ll have a configurable and customizable touchscreen interface for your own Home Assistant setup.

The GUI used is clean, attractive, and flexible. You can have it display weather, time, and date widgets, populate the screen with buttons for activating lights and appliances, or even command a compatible robot vacuum. Whatever you might want to do with Home Assistant, you can almost certainly create a quick control for it on the display so it’s always on the wall, ready to go when you need it.

If you’ve always dreamed of your house having a futuristic control panel like we used to dream of in the 1980s, well… now it’s a reality. You just need to drop a few bucks on a touchscreen ESP32 rig and you’re ready to go. There’s plenty more you can do with a Cheap Yellow Display, too, so don’t hesitate to check out some of the previous builds we’ve featured with it!