Supercon 2024: Repurposing ESP32 Based Commercial Products

It’s easy to think of commercial products as black boxes, built with proprietary hardware that’s locked down from the factory. However, that’s not always the case. A great many companies are now turning out commercial products that rely on the very same microcontrollers that hackers and makers use on the regular, making them far more accessible for the end user to peek inside and poke around a bit.

Jim Scarletta has been doing just that with a wide variety of off-the-shelf gear. He came down to the 2024 Hackaday Superconference to tell us all about how you can repurpose ESP32-based commercial products.

Continue reading “Supercon 2024: Repurposing ESP32 Based Commercial Products”

Talking Tape dispenser

Bringing A Father Ted Joke To Life

Inspired by a gag from a mid-90s sitcom Father Ted, [Stephen] decided to create his own talking tape dispenser.

This project is a actually a follow-up to the first version of the dispenser he built back in 2022, and [Stephen] has documented the process thoroughly for anyone wanting to build their own. In the first version, he modified a tape dispenser to house a Raspberry Pi, enabling voice functionality. In the new version, he replaced the Raspberry Pi with a cheaper ESP8266 and designed an entirely 3D printed dispenser that looks closer to the screen-used version.

A clever change was replacing the rotary encoder with a custom encoder embedded in the printed parts. Using a photodiode and an LED, it measures the tape pulled from the spool. As you pull the tape, the encoder calculates the length and announces it through the speaker, just like in the show.

If you’re into prop recreations like this, be sure to check out the winners of our 2022 Sci-Fi Contest.

Continue reading “Bringing A Father Ted Joke To Life”

Banner for article: A Love Letter to Embedded Systems.

A Love Letter To Embedded Systems By V. Hunter Adams

Today we’re going to make a little digression from things that we do to look at perhaps why we do the things that we do. This one is philosophical folks, so strap yourselves in. We’ve had an interesting item arrive on the tips line from [Bunchabits] who wanted to let us know about a video, Love Letter to Embedded Systems, from [V. Hunter Adams].

[V. Hunter Adams] is Lecturer of Electrical Engineering at Cornell University and is on the web over here: vanhunteradams.com

In this forty three minute video [Hunter] makes an attempt to explain why he loves engineering, generally, and why he loves embedded systems engineering, specifically. He tries to answer why you should love engineering projects, what makes such projects special, and how you can get started on projects of your own. He discusses his particular interest in other unrelated subjects such as birds and birdsong, and talks a little about the genius of polymath Leonardo da Vinci.

Continue reading “A Love Letter To Embedded Systems By V. Hunter Adams”

Two hands soldering components on a purpble PCB

Vintage Intel 8080 Runs On A Modern FPGA

If you’re into retro CPUs and don’t shy away from wiring old-school voltages, [Mark]’s latest Intel 8080 build will surely spark your enthusiasm. [Mark] has built a full system board for the venerable 8080A-1, pushing it to run at a slick 3.125 MHz. Remarkable is that he’s done so using a modern Microchip FPGA, without vendor lock-in or proprietary flashing tools. Every step is open source.

Getting this vintage setup to work required more than logical tinkering. Mark’s board supplies the ±5 V and +12 V rails the 8080 demands, plus clock and memory interfacing via the M2GL005-TQG144I FPGA. The design is lean: two-layer PCB, basic level-shifters, and a CM32 micro as USB-to-UART fallback. Not everything went smoothly: incorrect footprints, misrouted gate drivers, thermal runaway in the clock section; but he managed to tackle it.

What sets this project apart is the resurrection of a nearly 50-year-old CPU. It’s also, how thoroughly thought-out the modern bridge is—from bitstream loading via OpenOCD to clever debugging of crystal oscillator drift using a scope. [Mark]’s love of the architecture and attention to low-level detail makes this more than a show-off build.
Continue reading “Vintage Intel 8080 Runs On A Modern FPGA”

Intercepting And Decoding Bluetooth Low Energy Data For Victron Devices

[ChrisJ7903] has created two Ardiuno programs for reading Victron solar controller telemetry data advertised via BLE. If you’re interested in what it takes to use an ESP32 to sniff Bluetooth Low Energy (BLE) transmissions, this is a master class.

The code is split into two main programs. One program is for the Victron battery monitor and the other is for any Victron solar controller. The software will receive, dissect, decrypt, decode, and report the data periodically broadcast from the devices over BLE.

The BLE data is transmitted in Link-Layer Protocol Data Units (PDUs) which are colloquially called “packets”. In this particular case the BLE functionality for advertising, also known as broadcasting, is used which means the overhead of establishing connections can be avoided thereby saving power.

Continue reading “Intercepting And Decoding Bluetooth Low Energy Data For Victron Devices”

Screen shot of Mongoose Wizard.

How To Build An STM32 Web Dashboard Using The Mongoose Wizard

Today from the team at Cesanta Software — the people who gave us the open-source Mongoose Web Server Library and Mongoose OS — we have an article covering how to build an STM32 web dashboard.

The article runs through setting up a development environment; creating the dashboard layout; implementing the dashboard, devices settings, and firmware update pages; building and testing the firmware; attaching UI controls to the hardware; and conclusion.

The web dashboard is all well and good, but in our opinion the killer feature remains the Over-The-Air (OTA) update facility which allows for authenticated wireless firmware updates via the web dashboard. The rest is just gravy. In the video you get to see how to use your development tools to create a firmware file suitable for OTA update.

Continue reading “How To Build An STM32 Web Dashboard Using The Mongoose Wizard”

The Need For Speed?

We wrote up a video about speeding up Arduino code, specifically by avoiding DigitalWrite. Now, the fact that DigitalWrite is slow as dirt is long known. Indeed, a quick search pulls up a Hackaday article from 2010 demonstrating that it’s fifty times slower than toggling the pin directly using the native pin registers, but this is still one of those facts that gets periodically rediscovered from generation to generation. How can this be new again?

First off, sometimes you just don’t need the speed. When you’re just blinking LEDs on a human timescale, the general-purpose Arduino functions are good enough. I’ve written loads of useful firmware that fits this description. When the timing requirements aren’t tight, slow as dirt can be fast enough.

But eventually you’ll want to build a project where the old slow-speed pin toggling just won’t cut it. Maybe it’s a large LED matrix, or maybe it’s a motor-control application where the loop time really matters. Or maybe it’s driving something like audio or video that just needs more bits per second. One way out is clever coding, maybe falling back to assembly language primitives, but I would claim that the right way is almost always to use the hardware peripherals that the chipmakers gave you.

For instance, in the end of the video linked above, the hacker wants to drive a large shift register string that’s lighting up an LED matrix. That’s exactly what SPI is for, and coming to this realization makes the project work with timing to spare, and in just a few lines of code. That is the way.

Which brings me to the double-edged sword that the Arduino’s abstraction creates. By abstracting away the chips’ hardware peripherals, it makes code more portable and certainly more accessible to beginners, who don’t want to learn about SPI and I2C and I2S and DMA just yet. But by hiding the inner workings of the chips in “user friendly” libraries, it blinds new users to the useful applications of these same hardware peripherals that clever chip-design engineers have poured their sweat and brains into making do just exactly what we need.

This isn’t really meant to be a rant against Arduino, though. Everyone has to start somewhere, and the abstractions are great for getting your feet wet. And because everything’s open source anyway, nothing stops you from digging deeper into the datasheet. You just have to know that you need to. And that’s why we write up videos like this every five years or so, to show the next crop of new hackers that there’s a lot to gain underneath the abstractions.