Audio Playback Toy For DSP Adventures

The declining costs of single-board computers has made serious computing power available for even the most trivial of tasks. It’s easy enough to slap a Raspberry Pi onto almost anything for nearly the same cost as a powerful 32-bit microcontroller platform, but this takes some of the fun out of projects for a few of us. Looking to get into the weeds can be a challenge as well, as [Michal Zalewski] demonstrates in this audio playback device he built from a simple 8-bit microcontroller.

The small toy takes audio input from a microphone through an op-amp and feeds this signal to an ADC within the AVR128DA28 microcontroller. The data is then stored on a separate memory chip ready to be played back through another op-amp paired with a speaker. This is where being familiar with the inner workings of the microcontroller comes in handy. By manipulating the interrupt routines in specific ways, the audio stored in memory can be played back at various speeds.

[Michal] intended this build to be a toy for one of his younger relatives, and for the price of a few ICs and buttons it does a pretty good job of turning a regular voice into a chipmunk voice like some commercial children’s toys some of us might remember. If the design aesthetics of this gadget look familiar, you may be thinking of his minimalist gaming device which we recently featured.

A wooden box sits on a darker wooden table. The box has a red, glowing number 8 on it.

Ambient Display Tells You If Borealis Is Coming To Town

For those times when you’d rather not get sucked down another internet rabbit hole when you really just wanted the weather, an ambient display can be great. [AlexanderK106] built a simple ambient display to know the probability the Northern Lights would visit his town.

Starting with a NodeMCU featuring the ESP8266, [AlexanderK106] walks us through a beginner-friendly tutorial on how to do everything from configure the Arduino IDE, the basics of using a breadboard. finding a data source and parsing it, and finally sticking everything into an enclosure.

The 7-segment display is taped and set into the back of the 1/4″ pine with enough brightness to shine through the additional layer of veneer on top. The display is set to show one digit and then the next before a three second repeat. A second display would probably make this easier to use day-to-day, but we appreciate him keeping it simple for this tutorial.

Looking for more ambient displays? Checkout the Tempescope or this clock that lets you feel the temperature outside!

A grid of 5 3D Printed projects with ESP-32 microcontroller boards

ESP32 Projects From Northwestern University’s Embedded Electronics Class

Northwestern University’s Embedded Electronics Class delivered a bumper crop of ESP-32 projects this year. The student teams recorded their progress on hackaday.io with project descriptions, logs, BOMs, diagrams, photos, and videos to share with other makers. While all utilized the web connection that the ESP32 offers some teams chose to use ESP32 Cams to incorporate photos, video, and computer vision. We love the variety of projects the teams created, some customized versions of consumer products and others new types of smart-devices. Continue reading “ESP32 Projects From Northwestern University’s Embedded Electronics Class”

Lisp Runs This Microcontroller Pendant

As a programming language, Lisp has been around longer than any other active language except for Fortran. To anyone who regularly uses it, it’s easy to see why: the language allows for new syntax and macros to be created fluidly, which makes it easy to adapt it to new situations, like running it on a modern Atmel microcontroller to control the LEDs on this star pendant.

The pendant has simple enough hardware — six LEDs arranged around the points of the star, all being driven by a small ATtiny3227 operating from a coin cell battery. This isn’t especially spectacular on it’s own, but this particular microcontroller is running an integer version of a custom-built Lisp interpreter called uLisp. The project’s creator did this simply because of the whimsy involved in running a high-level programming language on one of the smallest microcontrollers around that would actually support the limited functionality of this version of Lisp. This implementation does stretch the memory and processing capabilities of the microcontroller quite a bit, but with some concessions, it’s able to run everything without issue.

As far as this project goes, it’s impressive if for nothing other than the ‘I climbed the mountain because it was there’ attitude. We appreciate all kinds of projects in that same vein, like this Arduino competitor which supports a programming language with only eight commands, or this drone which can carry a human.

ESP8266 Web Server Saves 60% Power With A 1 Ms Delay

Arduino has a library for quickly and easily setting up a simple web server on an ESP8622-based board, and [Tomaž] found that power consumption on an ESP-01 can be reduced a considerable amount by simply inserting a 1 ms delay in the right place. The reason this works isn’t because of some strange bug or oddball feature — it’s really just a side effect of how the hardware operates under the hood.

[Tomaž] uses the “hello world” example from ESP8266WebServer to explain. In it, the main loop essentially consists of calling server.handleClient() forever. That process checks for incoming HTTP connections, handles them, sends responses, exits — and then does it all over again. A simple web server like this one spends most of its time waiting.

A far more efficient way to handle things would be to launch server.handleClient() only when an incoming network connection calls for it, and put the hardware to sleep whenever that is not happening. However, that level of control just isn’t possible in the context of the Arduino’s ESP8266WebServer library.

So what’s to be done? The next best thing turns out to be a simple delay(1) statement right after each server.handleClient() call in the main loop.

Why does this work? Adding delay(1) actually causes the CPU to spend the vast majority of its time in that one millisecond loop. And counting microseconds turns out to be a far less demanding task, power-wise, than checking for incoming network requests about a hundred thousand times per second. In [Tomaž]’s tests, that one millisecond delay reduced idle power consumption at 3.3 V from roughly 230 mW to around 70 mW — about 60% — while only delaying the web server’s response times by 6-8 milliseconds.

For simple web server applications, this is is for sure a good trick to keep in mind. There are also much more advanced techniques for saving power on ESP8266-based boards; from boards that barely sip a single microamp while sleeping, to coin-cell powered boards that go so far as to modify the TCP/IP stack to help squeeze every bit of power savings possible.

This Snappy 8-Bit Microcomputer Brings The Speed To Retrocomputing

When the need for speed overcomes you, thoughts generally don’t turn to 8-bit computers. Sure, an 8-bit machine is fun for retro gameplay and reliving the glory days, and there certainly were some old machines that were notably faster than the others. But raw computing power isn’t really the point of retrocomputing.

Or is it? [Bernardo Kastrup] over at The Byte Attic has introduced an interesting machine called the Agon Light, an 8-bit SBC that’s also a bit like a microcontroller. The machine has a single PCB that looks about half as big as an Arduino Uno, and sports some of the same connectors and terminals around its periphery. The heart of the Agon Light is an eZ80 8-bit, 18.432 MHz 3-stage pipelined CPU, which is binary compatible with the Z80. It also has an audio-video coprocessor, in the form of an ESP32-Pico-D4, which supports a 640×480 64-color display and two mono audio channels. There’s no word we could find of whether the ESP32’s RF systems are accessible; it would be nice, but perhaps unnecessary since there are both USB ports and a PS/2 keyboard jack. There’s also a pin header for 20 GPIOs as well as I2C, SPI, and UART for serial communication.

The lengthy video below goes into all the details on the Agon Light, including the results of benchmark testing, all of which soundly thrash the usual 8-bit suspects. The project is open source and all the design files are available, or you can get a PCB populated with all the SMD components and just put the through-hole parts on. [Bernardo] is also encouraging people to build and sell their own Agon Lights, which seems pretty cool too. It honestly looks like a lot of fun, and we’re looking forward to seeing what people do with this.

Continue reading “This Snappy 8-Bit Microcomputer Brings The Speed To Retrocomputing”

You Can’t Be Too Rich Or Too Thin — A 2mm Thick Computer

We’ve seen credit card-sized computers before, but [Kn/vD] shows us a PIC18-based computer with 9 components that is only 2 mm thick! With 13 K of RAM and 128 K of flash, you can’t do much with it, but a built-in BASIC interpreter can use half the flash like a disk drive and operate with the 20×4 LCD display and the PCB touch-panel keyboard.

The whole thing only has eleven parts, but that’s only because it needed ancillary components like decoupling capacitors and the battery along with a physical reset switch. All the real functions are in the CPU and the LCD display. The schematic is online, but we didn’t see the files for the PCB or the interpreter yet, but it sounds like they are forthcoming. Meanwhile, we wonder if anyone is up to the challenge of going even thinner.

[Kn/Vd] loves small computers. There are plans for a few other versions of the board with AVR and PIC24 processors. The last time we saw a tiny module from [Kn/vD] it ran C. If you check out other Hackaday.io projects on the account, there are several tiny computers there. If you want a business card that can run Linux, you might need to go a little bit thicker.