DSP / Digital Input to Tube Driven Surround Sound

This project is to create a proof-of-concept digital input for a tube-driven surround sound system. This is for a senior project.

Similar projects worth following
This project is using a Beaglebone's AM3358 processor as a DSP / Digital input for a proof-of-concept tube-driven surround sound system. The main design points here are:

- Using barebones programming of the beaglebone as a DSP to create an 8-band EQ with pre-sets, as well as volume control
- Designing and producing an effective audio DAC board to produce high SNR
- Include a bluetooth module for control and audio

This is my senior project for my degree in electrical engineering. It's very exciting for me, because I want to do DSP for my master's thesis. 

So this project came along as an idea between a few of my friends at school. One of them has a small business designing and building tube-amps for guitars, which I've helped him with a few times. As a musician myself, it's a pretty exciting business that I'm excited to be a part of in the future. 

He and I got together with another friend of ours to come up with an idea for a senior project. This other friend gave us the idea of doing a surround-sound amplifier, so we combined forces to do this tube-driven surround sound system, at least as a proof-of-concept. 

We divided this project into the amplifier section, the power section, and the input/DSP section. I'll occasionally mention the other two sections in the project logs, but the focus here is on my DSP/input section. 

I picked the BeagleBone Black because the AM3358 processor is very powerful and capable of handling DSP math, and because as a dev-kit for the AM3358, the BeagleBone is very cheap. Being a student with a small family, money is probably the most important design constraint here. 

I had already done a lot of research and some building before posting this project here on Hackaday, so if there are questions about what was done previously, or questions about the other sections and how they work, go ahead and ask in the discussion section below and I'll be happy to answer them.

  • 1 × BeagleBone Black
  • 1 × Blackhawk XDS100v2D JTAG emulator
  • 1 × TI PCM5122 DAC
  • 1 × Microchip BM64 Bluetooth Module

  • PCM5122 DAC Prototype Operational

    JangoJungle11/14/2017 at 04:03 0 comments

    I finally got the PCM5122 (prototype shown above) working with a beautiful 2.1Vrms (max) output. The image below is a scope capture of the BeagleBone outputting a signal via I2S into the PCM5122, and this is the output of the Right-side channel.

    All I did was get a protoboard from adafruit and solder the pcm5122 onto it along with the surrounding circuitry for the typical application in the datasheet. I configured the surrounding circuitry to work in hardwired mode, (the PCM5122 has an I2C mode and an SPI mode, both controlled as a slave) and was able to get a really nice output out of it. 

    This is simply for a prototype, as the circuit needs better circuitry like pull-up/pull-down resistors for the modes and ground separation for AGND and DGND, and there's a lot of problems with cross-talk from the input to the output. However, I'm really satisfied with the results here. 

    Just as a sort of ketchup, I've already configured the BeagleBone via Linux to play music from the SD card, and done a lot of research on all kinds of things. I listed a few of the components I've picked up so far in the components section of this project. I've also got ti's CCS and my JTAG emulator all set up and ready to go. 

    One of the concerns I had with this project is that I had heard that the I2S output of the BeagleBone was incorrectly set to start it's data stream on the rising edge of the clock, but the capture below shows it was since updated.

    Green is the L/R clock, blue is the bit clock, and pink is the bitstream. 

    So now that I have a working prototype of the DAC, I'm comfortable to start fiddling with the I2S on the BeagleBone The next step with is project is bare-bones programing the BeagleBone to read a .wav file from the uSD and output it over it's I2S. But I'll probably start with blinking an LED. Baby steps, people. Baby steps.

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates