Audio On Pi: Here Are Your Options

There are a ton of fun Raspberry Pi and Linux projects that require audio output – music players, talking robots, game consoles and arcades, intelligent assistants, mesh network walkie-talkies, and much more! There’s no shortage of Pi-based iPods out there, and my humble opinion is that we still could use more of them.

To help you in figuring out your projects, let’s talk about all the ways you can use to get audio out of a Pi or a similar SBC. Not all of them are immediately obvious and you ought to know the ropes before you implement one of them and get unpleasantly surprised by a problem you didn’t foresee. I can count at least five ways, and they don’t even include a GPIO-connected buzzer!

Let’s rank the different audio output methods, zoning in on things like their power consumption, and sort them by ease of implementation, and we’ll talk a bit about audio input options while we’re at it.

Continue reading “Audio On Pi: Here Are Your Options”

ESP32 Powered Crunch-E Makes Beats On The Go

There’s no shortage of devices out there for creating electronic music, but if you’re just looking to get started, the prices on things like synthesizers and drum machines could be enough to give you second thoughts on the whole idea. But if you’ve got a well stocked parts bin, there’s a good chance you’ve already got most of what you need to build your own Crunch-E.

A Crunch-E built from stacked modules

Described by creator [Roman Revzin] as a “keychain form factor music-making platform”, the Crunch-E combines an ESP32, an MAX98357 I2S audio amplifier, an array of tactile buttons, and a sprinkling of LEDs and passives. It can be built on a perfboard using off-the-shelf modules, or you can spin up a PCB if you want something a bit more professional. It sounds like there’s eventually going to be an option to purchase a pre-built Crunch-E at some point as well.

But ultimately, the hardware seems to be somewhat freeform — the implementation isn’t so important as long as you’ve got the major components and can get the provided software running on it.

The software, which [Roman] is calling CrunchOS, currently provides four tracks, ten synth instruments, and two drum machine banks. Everything can be accessed from a 4 x 4 button array, and there’s a “cheat sheet” in the documentation that shows what each key does in the default configuration. Judging by the demo video below, it’s already an impressively capable platform. But this is just the beginning. If everything goes according to plan and more folks start jamming on their own Crunch-E hardware, it’s not hard to imagine how the software side can be expanded and adapted over time.

Over the years we’ve seen plenty of homebrew projects for producing electronic music, but the low-cost, simple construction, and instant gratification nature of the Crunch-E strikes us as a particularly compelling combination. We’re eager to see where things develop from here.

Continue reading “ESP32 Powered Crunch-E Makes Beats On The Go”

DIY Programmable Guitar Pedal Rocks The Studio & Stage

Ever wondered how to approach making your own digital guitar effects pedal? [Steven Hazel] and a friend have done exactly that, using an Adafruit Feather M4 Express board and a Teensy Audio Adapter board together to create a DIY programmable digital unit that looks ready to drop into an enclosure and get put right to work in the studio or on the stage.

The bulk of the work is done with two parts, and can be prototyped easily on a breadboard.

[Steven] also made a custom PCB to mount everything, including all the right connectors, but the device can be up and running with not much more than the two main parts and a breadboard.

On the inside, the Adafruit Feather M4 Express board works with the audio board over I2S, a standard for sending serial digital audio between chips. Working with the audio itself is done with the Teensy Audio Library, providing a fantastic array of easy-to-use functions for processing and manipulating digital audio streams.

Together, all the right pieces are in place and [Steven] provides the code for a simple tremolo effect as a glimpse of what’s possible with the unit. Interested in going a bit further? [Steven] shares additional details about what’s involved in writing a custom effect from scratch using the Teensy Audio Library.

As mentioned, I2S is where it’s at when it comes to working with digital audio at the chip level, and our own Jenny List can tell you everything you need to know about I2S, a useful protocol that has actually been around since 1982!

Modded See ‘N Say Teaches The Sounds Of City Life

The Fisher-Price See ‘n Say was introduced back in 1964, and since then has helped teach countless children the different sounds made by farm animals. But what about our urban youth? If they’re going to navigate a concrete jungle, why not prepare them to identify the sound of a jackhammer or the chime that plays before an announcement goes out over the subway’s PA system?

That’s the idea behind this hacked See ‘n Say [John Park] put together for Adafruit. Now we should note up front that no vintage toys were sacrificed during the production of this gadget — it seems Fisher-Price (predictably) dropped the tiny record player these toys used to use for a cheap electronic board sometime in the 90s. A quick check with everyone’s favorite A-to-Z megacorp shows you can pick up one of these new-school models for around $25 USD.

The modern electronic version of the toy is easy to mod.

Cracking open the electronic version of the See ‘n Say reveals a circular PCB with a series of membrane buttons that are pressed by the mechanics of the spinning pointer. As it so happens, there are handy test points next to each of these buttons, which makes it simple to wire up to a microcontroller.

In this case, it’s Adafruit’s KB2040, which is connected to a MAX98357A amplifier board over I2S. A small boost converter module is used to wring 5 volts out of the toy’s pair of AA batteries. The original speaker is repurposed, though [John] adds a physical power switch to keep the boost converter from flattening the alkaline batteries when not in use.

On the software side, all you’ve got to do is load the MCU with your sounds and write a bit of code that associates them with the button being pressed on the PCB. [John] gets his city sounds from Freesound, a community-maintained database of Creative Commons Licensed sounds, and provides the CircuitPython code necessary to tie everything together.

The last step is the artwork. For this project, [Brian Kesinger] provided some swanky vintage-looking imagery that perfectly fits the See ‘n Say style. The art is available under the NonCommercial-ShareAlike Creative Commons license, so you’re free to use it in your own version. Though naturally, that assumes you’ve decided to use the same sounds as [John] — the beauty of this project is that you could easily load it up with whatever sounds you’d like Hacker Junior to learn. Possibly a well-known Australian YouTuber?

If anyone feels inclined to build a Hackaday-themed See ‘n Say based on this project, we’ve love to see it.

Continue reading “Modded See ‘N Say Teaches The Sounds Of City Life”

Working With I2S-Compatible FM Tuners

While the Internet is a great place to get access to any music or audio you can dream of, there’s still a place for broadcast radio. [mit41301] has recently been exploring implementing a simple FM tuner chip in various projects.

The chip in question is the RDA7088, which is designed to require the bare minimum in external components, and is available in a compact SOP16 package. As per the datasheet, it was intended for use in applications like portable radios, PDAs, cell phones, and MP3 players.

[mit41301]’s first attempt involved using the chip as a simple tuner, hooked up to a PIC10F200 for control. Investigation revealed it was capable of outputting digital audio via I2S, while being commanded via I2C. By default, it spits out audio at a low sample rate of 8 kHz, but reconfiguration will jump that up to 44.1 or 48 kHz. Piping that digital I2S stream out to a DAC then delivers analog output that can be fed to an amplifier. The build also got remote control, with the PIC handling decoding IR signals and outputting commands to the radio chip.

Following this success, [mit41301] then went further, hooking up an ESP-01 to the chip to try and get RDS going. If you’re unfamiliar with the Radio Data System, it’s a way for short textual messages to be sent out by FM broadcasters. In addition to the duties carried out by the PIC module, the ESP-01 is also charged with receiving RDS data from the RDA7088, and outputting it to a display.

While using such chips is routine in industry, it’s always great to see a DIY guide to interfacing with specific hardware. If you want to integrate FM radio into your own projects, the RDA7088 is a simple and easy way to do so. We’ve seen similar work before, adding FM radio to the Raspberry Pi.

Continue reading “Working With I2S-Compatible FM Tuners”

Faux-Retro “Tape” Player Runs On ESP32 And 80s Vibes

At first glance, this gorgeous retro-styled audio player built by [Max Kern] could absolutely pass for the genuine article. But then you take a closer look and realize that the “tape” it’s playing is actually an animation running on a 320 x 240 IPS display, and the Play and Rewind buttons on the front aren’t the chunky electromechanical affairs of yesteryear but actually cleverly repurposed MX keyboard switches.

By now you’re probably realizing that this player is quite a bit smaller than you first imagined, which in turn, means that it even its case is a modern fabrication. While it might perfectly encapsulate the look and feel of a piece of 1980s consumer electronics, it was squirted out on a thoroughly modern desktop 3D printer.

Even so, [Max] made sure to include draft angles in the CAD design and and a distinctive separation line so the case looked like it was injection molded. Following similar logic, he decided against using a modern rechargeable battery pack to power the electronics, opting instead for a more era-appropriate set of AA batteries.

In terms of hardware, the custom PCB is home to an ESP32 WROOM, a MAX98357A I2S audio amplifier, a FT231XS USB-to-serial chip, with enough passives and regulators to keep them all well fed and happy. The ESP32 has more than enough computational horsepower to chew through MP3 files, which are conveniently loaded via an SD slot built into the side of the player. As the player was actually intended for audio books, onboard playback is limited to a mono speaker; though there is a 3.5 mm audio jack to plug in a pair of headphones for when the built-in speaker isn’t up to the task.

Check out the video after the break to see how the player is assembled, as well as a demonstration of its simple three-button user interface. It looks like a joy to use, though the lack of fast forward and rewind sound effects took us a bit by surprise given the otherwise impeccable attention to detail. We’ll assume there’s some technical limitation that makes this particularly difficult to implement, and that their absence is currently keeping [Max] up at night.

As impressive as the final product is, we can’t say it’s a surprise. Frankly, we wouldn’t expect anything less from [Max] at this point. His adaptive OLED macro pad wowed us back in 2020, and his ZeroBot is still one of the slickest designs for a DIY two-wheeled robots we’ve ever seen.

Continue reading “Faux-Retro “Tape” Player Runs On ESP32 And 80s Vibes”

Adding Optical Audio To The Raspberry Pi With One Chip

In the home theater space most people would tell you the age of optical audio, known officially as TOSLINK, is over. While at one time they were the standard for surround sound systems, the fiber cables with their glowing red tips have now been largely supplanted by the all-in-one capabilities of HDMI on new TVs and audio receivers. But of course, that doesn’t mean all that TOSLINK-compatible hardware that’s in the field simply disappears.

If you’re looking to connect a Raspberry Pi to the optical port of your AV system, [Nick Sayer] has you covered. His “TOSLINK Transceiver Hat” utilizes a WM8804 chip from Cirrus Logic to go from the Pi’s I2S audio output to S/PDIF. From there the signal goes directly into the TOSLINK input and output modules, which have the appropriate fiber optic hardware and drivers built-in. All you have to do from a software standpoint is enable a boot overlay intended for a digital-to-analog converter (DAC) from HiFiBerry.

Continue reading “Adding Optical Audio To The Raspberry Pi With One Chip”