I recently developed support for nRF52840 boards in my nrf_to_nrf communication library as well as my AutoAnalogAudio libraries. In order to test it all out, I typically needed a giant mess of wires to connect everything.
With a recent sponsorship from PCBWay.com, I was able to design my own circuit board for wireless broadcast and reception of audio, as well as playback from SD card.
I’ve put together all the files at GitHub - TMRh20/FeatherAudio: Custom Audio Circuit Board for Feather 52840 so anybody with interest could possibly have their own circuit boards produced, as well as including some basic examples. I will continue to add documentation and examples over the next little while.
The main drawback right now, is that I chose the wrong I2S microphone, so I’m using the onboard PDM microphone of the Feather 52840 Sense, until I can work out how to drive the I2S mic or if its possible with the nRF52840. The circuitry seems to be all correct, its just a compatibility issue between the microphone and MCU.
It might seem a little weird, to design a board this way, but I wanted to use components that I already had on hand, as well as things I could integrate into the board. I had some I2S amplifier boards and Feather 52840 boards, so I put the circuit together around those.
Please don’t judge too harshly, this is my first real attempt at a proper PCB, and the thing actually worked the first time!
Your schematic shows SPI interface and I thought you mentioned I2C. Micro SD cards typically use the SPI (Serial Peripheral Interface) for communication with microcontrollers, not I2S. I2S is primarily used for transmitting digital audio data between devices. SPI does not need pull up resistors.
Ahh hehe thanks, I commonly get I2C and I2S backwards, it gets confusing but yeah, I’m using I2S for the audio amplifier and hopefully the custom-added microphone.
So far I’ve spotted in the schematic that I’ve used a 1uF capacitor instead of 0.1uF for C1 near the microphone. Guessing it won’t cause too much of a problem.
This is how they get you I guess hahaha, I’m already looking at possibilities for revisions. First I need to figure this microphone compatibility issue out, then write some more code and examples, then design and 3D-print some cases for at least a couple of these boards.
Kind of ridiculous all the time that goes into something like this, but it is a lot of fun.
It may be a little late in coming, but I’ve written the code etc to fully test all the components of the new PCBs including the buttons.
I’m using a PWM signal to drive the I2S microphone since the nRF52840 doesn’t seem to support it out of the box. That part was pretty challenging, but now everything works!
Here is a video showing transmission of audio via button press using the on-board I2S microphones and attached I2S amplifiers.