08/12/2015 at 16:19 •
I was finally able to (mostly) complete all three new prototypes Monday night, and started testing last night.
I powered up the first board with the Teensy all ready to go, and ... nothing. Turns out I had completely forgotten to load the I2C bus pull-up resistors (oops!). I loaded those on the boards, tried the first board again, and still nothing. The two other boards did communicate just fine, so I think that I broke something when I powered up the first board with no pullups (hopefully just the I2C isolator).
Unfortunately, this means that Hackaday is getting all three of my working prototypes!
I did do some quick tests with the two new boards to make sure that they were performing well. The first board had measured loopback THD+N of -98.945dB for the left channel and -98.837dB for the right. The second board measured -97.95dB for the left channel and -99.612dB for the right.
Here's a shot of one of the new boards under test with a Teensy:
I also finally tried actually playing music through the board hooked up to a Raspberry Pi. One thing that I didn't anticipate was the difficulty of finding an MP3 with a sample rate of 48kHz.
One of the design tradeoffs with using the digital isolators between the codec and the controller is that it's not possible to switch the codec between master and slave mode because the isolators are unidirectional. The isolators are set up such that all the I2S interface clocks are sent from the codec to the controller, and not the other way around, so the codec has to be the interface master, and can't be the slave.
One benefit of the codec being the master is that the interface clocks are generated directly from the crystal on the board, so there is very little jitter. The downside is that the board can only handle 48kHz, 96kHz, and 192kHz because the CS4272 doesn't have a PLL to generate other frequencies (like the normal consumer audio rate of 44.1kHz).
Anyway, I didn't have my Raspberry Pi set up with any audio tools that could re-sample normal 44.1kHz mp3's to the required 48kHz, so my wife and I scrambled to find a file that used right rate. The only one we could find happened to be "Party in the USA" by Miley Cyrus.
Here's a quick video clip of it playing out through some old computer speakers I had lying around. I didn't know my wife was filming, so I wasn't ready for her question. This is more of an outtake :) :
08/11/2015 at 02:11 •
Soldering the three prototype boards for the Best Product category deadline next week has taken up way more time than expected (of course), so now everything else is getting compressed into just this last week.
I've populated and tested the power supplies for all three boards, and should be able to finish up the boards with just a few more hours of soldering.
Then all three boards will need to be tested, packaged, and shipped off in a few days to make it in time.
Some shots of soldering in progress (with a shameless plug of the stickvise that the project won for using TI parts. Thanks Hackaday!):
Testing the final supply rails:
And the a quick shot of the boards just now, nearly complete:
07/23/2015 at 03:51 •
My original goal with this project was to give something back to the Teensy community that has been super helpful. I wanted the design to be open source so that people can learn from it and make their own fun creations, but I also wanted to see if there was a market for this kind of high quality audio board.
So I decided that it would be fun to try to go for the best product category. Unfortunately, the deadline is fast approaching, so I'm going to be working hard to get some much needed updates in before August 17th.
Here are my goals for the next few weeks:
- Get 3 more boards soldered up to submit.
- I only have the one set up at the moment, and 2 other bare boards, so hopefully my next order of boards from OSHPark will make it before the deadline.
- Add objects to the Teensy Audio library to support the board.
- This will only work in a 16 bit mode for the time being for compatibility with the rest of the library.
- Put together better documentation for the project. There are three things that I'd like to complete:
- A usage guide
- An assembly guide
- A design document going through the design of each block in detail.
Look forward to more updates soon!
- Get 3 more boards soldered up to submit.
07/06/2015 at 00:07 •
Finally got around to doing a few full 24 bit performance tests using the Raspberry Pi. Both THD+N and dynamic range were almost exactly what they had been using the Teensy as a test platform.
Measured THD+Ns were -100dB on the left channel and -101dB on the right:
Measured A-weighted dynamic range was -106dB on the left channel and -107dB on the right:
07/04/2015 at 17:31 •
After some kernel hacking, I was able to get the board to work with my Raspberry Pi!
I made some measurements using Room EQ Wizard with the board looping the outputs back to the inputs. REW only seemed to work in 16 bit mode, so the THD+N measurements are worse than what I measured with the Teensy. Looking at the CS4272 datasheet, the dynamic range is ~16dB worse using 16 bits, and the THD+N that I measured with REW in 16 bit mode is ~-84dB, so a 24 bit measurement should be right at what I measured with the Teensy (98-100dB).
The updated kernel code is in my fork of RaspberryPi's linux repo: here
06/08/2015 at 00:28 •
I updated the github repository to include code for a 1kHz sine wave loopback test as an example of getting the board up and running with the Teensy 3.1.