Building a bluetooth DAC with Raspberry Pi Zero W

bt-dac-final

Sami Pietikainen has written an article detailing the build of his Bluetooth DAC using Raspberry Pi Zero W:

My car comes with a built-in Bluetooth hands-free but unfortunately it does not support audio streaming. Luckily there is an AUX input available which uses a regular 3,5 mm jack. Perfect opportunity for a DIY project. I built the Bluetooth DAC using Raspberry Pi Zero W and a DAC hat. This post depicts the details of this project.

See the full post on Page Fault Blog.

App note: 3V DACs used in ±10V applications

an_maxim_AN2398

Boosting DAC’s output to drive larger voltage tackled in this app note from MAXIM Integrated. Link here (PDF)

Many modern systems have the majority of their electronics powered by 3.3V or lower, but must drive external loads with ±10V, a range that is still very common in industrial applications. There are digital to analog converters (DACs) available that can drive loads with ±10V swings, but there are reasons to use a 3.3V DAC and amplify the output voltage up to ±10V.

Simulating 3-phase AC for energy monitor testing

IMG_20170519_223255-600

Tisham Dhar blogged about his 3-phase synthesizer:

Finding 3-phase is difficult, convincing the owner of the said supply to test some home made hardware is even more so. After building a 3-phase energy monitor my testing options for it appeared very limited. So I set about making my own low-cost 3-phase energy monitor calibration system.

See the full post on his blog.

Check out the video after the break.

App note: DAC ICs: How many bits is enough?

an_ad_AN-327

A very old application notes from Analog Devices that tells about Nyquist Theorem, sampling rate and quantization used on DACs. Link here (PDF)

At the heart of every digital audio playback system lies the single-most critical component for high-fidelity audio: the digital-to-analog converter (DAC). These converters handle the delicate task of translating the 16-bit binary words encoded on the disc or tape into corresponding analog signals worthy of amplification and, ultimately, of the human ear.

MIDI DAC for Vintage Synth Hacks

A lot of classic synthesizers rely on analog control voltages to vary parameters; this is a problem for the modern musician who may want to integrate such hardware with a MIDI setup. For just this problem, [little-scale] has built a MIDI-controllable DAC for generating control voltages.

It’s a simple enough build – a Teensy 2 is used to speak USB MIDI to a laptop. This allows the DAC to be used with just about any modern MIDI capable software. The Teensy then controls a Microchip MCP4922 over SPI to generate the requisite control voltages. [little-scale]’s video covers the basic assembly of the hardware on a breadboard, and goes on to demonstrate its use with a performance using the MIDI DAC to control a Moog Mother 32 synth. [little-scale] has also made the code available, making it easy to spin up your own.

We can see this project being indispensable to electronic musicians working with banks of modular synths, making it much easier to tie them in with automation in their DAW of choice. This isn’t the first MIDI interfacing hack we’ve seen either – check out this setup to interface an iPad to guitar pedals.


Filed under: musical hacks

An Eye-Catching Raspberry Pi Smart Speaker

[curcuz]’s BoomBeastic mini is a Raspberry Pi based smart connected speaker. But don’t dis it as just another media center kind of project. His blog post is more of a How-To guide on setting up container software, enabling OTA updates and such, and can be a good learning project for some. Besides, the design is quite elegant and nice.

boombeastic_02The hardware is simple. There’s the Raspberry-Pi — he’s got instructions on making it work with the Pi2, Pi2+, Pi3 or the Pi0. Since the Pi’s have limited audio capabilities, he’s using a DAC, the Adafruit I2S 3W Class D Amplifier Breakout for the MAX98357A, to drive the Speaker. The I2S used by that part is Inter-IC Sound — a 3 wire peer to peer audio bus — and not to be confused with I2C. For some basic visual feedback, he’s added an 8×8 LED matrix with I2C interface. A Speaker rounds out the BoM. The enclosure is inspired by the Pimoroni PiBow which is a stack of laser cut MDF sheets. The case design went through four iterations, but the final result looks very polished.

On the software side, the project uses Mopidy — a Python application that runs in a terminal or in the background on devices that have network connectivity and audio output. Out of the box, it is an MPD and HTTP server. Additional front-ends for controlling Mopidy can be installed from extensions, enabling Spotify, Soundcloud and Google Music support, for example. To allow over-the-air programming, [curcuz] is using resin.io which helps streamline management of devices that are hard to reach physically. The whole thing is containerized using Docker. Additional instructions on setting up all of the software and libraries are posted on his blog post, and the code is hosted on GitHub.

There’s a couple of “To-Do’s” on his list which would make this even more interesting. Synced audio being one: in a multi-device environment, have the possibility to sync them and reproduce the same audio. The other would be to add an Emoji and Equalizer display mode for the LED matrix. Let [curcuz] know if you have any suggestions.


Filed under: digital audio hacks, Raspberry Pi

Hybrid Raspberry Pi + PIC32 = Oscilliscope and Function Generator

The PicBerry is a student final project by [Advitya], [Jeff], and [Danna] that takes a hybrid approach to creating a portable (and affordable) combination digital oscilloscope and function generator. It’s based on the Raspberry Pi, features an intuitive Python GUI, and can generate and measure simultaneously.

But wait! The Raspberry Pi is a capable little Linux machine, but meeting real-time deadlines isn’t its strong suit. That’s where the hybrid approach comes in. The Pi takes care of the user interface and other goodies, and a PIC32 over SPI is used for 1 MHz sampling and running a DAC at 500 kHz. The idea of combining them into PicBerry is to get the best of both worlds, with the Pi and PIC32 each doing what they are best at. The readings are sent in batches from the PIC32 to the Pi, where the plot is updated every 30 ms so that user does not perceive any visible lag.

The project documentation notes that improvements can be made, the speeds are a far cry from regular bench equipment, and the software lacks some typical features such as triggering, but overall not bad at all for under $50 of parts. In fact, there are hardly any components at all beyond the Raspberry Pi, the PIC32, and a MCP4822 digital-to-analog converter. A short demo video is embedded below.

Thanks to [Bruce Land] — who in the past created a zero CPU cycle function generator — for giving us a heads up!


Filed under: Raspberry Pi, tool hacks

App note: WM8731 Suggested power-On/Off sequence

an_cirrus_logic_WAN0111

Interesting app note from Cirrus Logic on how to minimize popping sound on the output when turning on/off the DAC on their WM8731 digital to analog converter. Link here (PDF)

As with any consumer audio product, it is important that any on/off power noise be kept to a minimum. Generally, this is done with some sort of external mute circuit at the output socket of the application. Although effective, this does increase the BOM (bill of materials) cost, which in many cases is a critical factor.

With this in mind, the WM8731 DAC signal path may be powered-on in such a way that power on/off noise is kept to a minimum with no need for an external muting circuit, reducing the BOM cost.

Output voltage control of DC/DC converters

ipp

Thomas Fischl writes:

Some applications needs to control the output voltage of a dc/dc converter instead using a fixed output voltage. For example battery chargers has to adjust the output voltage to the current battery level. This page shows how to add such a control function to a buck converter circuit.

Control output via external voltage source
Typically a voltage divider is used in dc converters to adjust the output voltage to the needed feedback voltage. To control the feedback signal by an external voltage source, a third resistor is added to the circuit.

More info at Fischl’s site.