ESP8266 As A Networked MP3 Decoder

Support libraries, good application notes, and worked examples from a manufacturer can really help speed us on our way in making cool stuff with new parts. Espressif Systems has been doing a good job with their ESP8266 product (of course, it doesn’t hurt that the thing makes a sub-$5 IOT device a reality). Only recently, though, have they started publishing completed, complex application examples. This demo, a networked MP3 webradio player, just popped up in Github, written by the man better known to us as Sprite_tm. We can’t wait to see more.

The MP3 decoder itself is a port of the MAD MP3 library, adapted for smaller amounts of SRAM and ported to the ESP8266. With a couple external parts, you can make an internet-connected device that you can point to any Icecast MP3 stream, for instance, and it’ll decode and play the resulting audio.

What external parts, you ask? First is something to do the digital-to-analog conversion. The application, as written, is build for an ES9023 DAC, but basically anything that speaks I2S should be workable with only a little bit of datasheet-poking and head-scratching. Of course, you could get rid of the nice-sounding DAC chip and output 5-bit PWM directly from the ESP8266, but aside from being a nice quick demo, it’s going to sound like crap.

The other suggested external IC is an SPI RAM chip to allow for buffering of the incoming MP3 file. WiFi — and TCP networks in general — being what they are, you’re going to want to buffer the MP3 files to prevent glitching. As with the dedicated DAC, you could get away without it (and there are defines in the “playerconfig.h” file to do so) but you’ll probably regret it.

In sum, an ESP8266 chip, a cheap I2S DAC, and some external RAM and you’ve got a webradio player. OK, maybe we’d also add an amplifier chip, power supply, and a speaker. Hmmm…. and a display? Or leave it all configurable over WiFi? Point is, it’s a great worked code example, and a neat DIY device to show your friends.

The downsides? So far, only the mono version of the libMAD decoder / synth has been ported over to ESP8266. The github link is begging for a pull request, the unported code is just sitting there, and we think that someone should take up the task.

Other Resources

In our search for other code examples for the ESP8266, we stumbled on three repositories that appear to be official Espressif repositories on Github: espressif, EspressifSystems, and EspressifApp (for mobile apps that connect to the ESP8266). The official “Low Power Voltage Measurement” example looks like a great place to start, and it uses the current version of the SDK and toolchain.

There’s also an active forum, with their own community Github repository, with a few “Hello World” examples and a nice walkthrough of the toolchain.

And of course, we’ve reported on a few in the past. This application keeps track of battery levels, for instance. If you’ve got the time, have a look at all the posts tagged ESP8266 here on Hackaday.

You couldn’t possibly want more resources for getting started with your ESP8266 project. Oh wait, you want Arduino IDE support?

Thanks [Sprite_tm] for the tip.

Audio Algorithm Detects When Your Team Scores

[François] lives in Canada, and as you might expect, he loves hockey. Since his local team (the Habs) is in the playoffs, he decided to make an awesome setup for his living room that puts on a light show whenever his team scores a goal. This would be simple if there was a nice API to notify him whenever a goal is scored, but he couldn’t find anything of the sort. Instead, he designed a machine-learning algorithm that detects when his home team scores by listening to his TV’s audio feed.

goal[François] started off by listening to the audio of some recorded games. Whenever a goal is scored, the commentator yells out and the goal horn is sounded. This makes it pretty obvious to the listener that a goal has been scored, but detecting it with a computer is a bit harder. [François] also wanted to detect when his home team scored a goal, but not when the opposing team scored, making the problem even more complicated!

Since the commentator’s yell and the goal horn don’t sound exactly the same for each goal, [François] decided to write an algorithm that identifies and learns from patterns in the audio. If a home team goal is detected, he sends commands to some Phillips Hue bulbs that flash his team’s colors. His algorithm tries its best to avoid false positives when the opposing team scores, and in practice it successfully identified 75% of home team goals with 0 false positives—not bad! Be sure to check out the setup in action after the break.

Continue reading “Audio Algorithm Detects When Your Team Scores”

Logic Noise: Sequencing in Silicon

In this session of Logic Noise, we’ll combine a bunch of the modules we’ve made so far into an autonomous machine noise box. OK, at least we’ll start to sequence some of these sounds.

A sequencer is at the heart of any drum box and the centerpiece of any “serious” modular synthesizer. Why? Because you just can’t tweak all those knobs and play notes and dance around at the same time. Or at least we can’t. So you gotta automate. Previously we did it with switches. This time we do it with logic pulses.

Continue reading “Logic Noise: Sequencing in Silicon”

DIY Bass Drum Microphone Uses Woofer Cone As Diaphragm

Anyone into audio recording knows that recording drums is a serious pain. Mic setup and positioning can make or break a recording session. One particular hurdle is getting a great sound out of the bass drum. To overcome this, [Mike] has built a microphone using an 8″ woofer in an attempt to capture the low-end frequencies of his bass drum. Using a speaker as a microphone isn’t a new idea and these large diaphragm bass drum mics have taken commercial form as the DW Moon Mic and the now-discontinued Yamaha SubKick.

The project is actually quite simple. The speaker’s positive terminal is connected to Pin 2 of a 3-pin XLR microphone connector. The speaker’s negative terminal is connected to the connector’s Pin 1. [Mike] made a bracket to connect the woofer to a mic stand, which in turn was cut down to position the woofer at bass drum height. The setup is then plugged into a mixer or pre-amp just like any other regular microphone.

[Mike] has since made some changes to his mic configuration. It was putting out way too hot of a signal to the preamp so he added an attenuation circuit between the speaker and XLR connector. Next, he came across an old 10″ tom shell and decided to transplant his speaker-microphone from the open-air metal rack to the aesthetically pleasing drum shell. Check out [Mike’s] project page for some before and after audio samples.

Cyclist Pulled Over for Headphones Builds Neighborhood Shaking Bicycle Boombox

Riding around with headphones on is not the safest of things; those people are trying to could hit you! [Victor Frost] was actually pulled over for doing it. Although the bicycle police didn’t ticket him, they did push him over the edge to pursuing a compromise that lets him listen to tunes and perhaps still hear the traffic around him.

The build puts 200 Watts of audio on his rear luggage rack. He used a couple of file totes as enclosures, bolting them in place and cutting one hole in each to receive the pair of speakers. The system is powered by two 6V sealed lead-acid batteries which are topped off by a trickle-charger when the bike is parked.

Looking through this log we almost clicked right past this one. It wasn’t immediately apparent that this is actually version four of the build, and these are completely different spins each time. The top-down view of plastic-tacklebox-wrapped-v3 is sure to make you grin. Video overviews of the first two versions are linked in [Victor’s] details section of the project page linked at the top of this post. The progress is admirable and fun time digging through. They’re all quite a bit different but bigger, better, and more self-contained with each iteration.

Okay, okay, maybe this isn’t going to shake the neighborhood… until he adds a Bass Cannon to it.

Logic Noise: More CMOS Cowbell!

Logic Noise is an exploration of building raw synthesizers with CMOS logic chips. This session, we’ll tackle things like bells, gongs, cymbals and yes, cowbells that have a high degree of non-harmonically related content in them.

Metallic Sounds: The XOR

I use the term “Non-harmonic” in the sense that the frequencies that compose the sound aren’t even integer multiples of some fundamental pitch as is the case with a guitar string or even our square waves. To make these metallic sounds, we’re going to need to mess things up a little bit, and the logic function we’re introducing today to do it is the exclusive-or (XOR).

Continue reading “Logic Noise: More CMOS Cowbell!”

SNES Headphones Cry for Bluetooth Has Been Answered

A year and a half ago we ran a post about a SNES controller modified into a pair of headphones. They were certainly nice looking and creative headphones but the buttons, although present, were not functional. The title of the original post was (maybe antagonistically) called: ‘SNES Headphones Scream Out For Bluetooth Control‘.

Well, headphone modder [lyberty5] is back with a vengeance. He has heeded the call by building revision 2 of his SNES headphones… and guess what, they are indeed Bluetooth! Not only that, the A, B, X and Y buttons are functional this time around and have been wired up to the controls on the donor Bluetooth module.

To get this project started, the SNES controller was taken apart and the plastic housing was cut up to separate the two rounded sides. A cardboard form was glued in place so that epoxy putty could be roughly formed in order to make each part completely round. Once cured, the putty was sanded and imperfections filled with auto body filler. Holes were drilled for mounting to the headband and a slot was made for the Bluetooth modules’ USB port so the headphone can be charged. The headphones were then reassembled after a quick coat of paint in Nintendo Grey. We must say that these things look great.

If you’d like to make your own set of SNES Bluetooth Headphones, check out the build video after the break.

Continue reading “SNES Headphones Cry for Bluetooth Has Been Answered”