About a week ago, I showed you pictures of my second prototype which wasn't 100% functional, at the time. Since then I speed a few days trying to get the SGTL5000 to work without any success.
I could talk to the chip via I2C, but the I2S output was both weird and unreliable no matter what I tried (I get either 0x00000000 or 0xFFFF8000 if I recall correctly).
I'm thinking that my SGTL5000 could be faulty (I won't blame it on NXP, my reflow job was ghetto-ish and frankly terrible) so I bought another one... and it turned out I mistakenly ordered the QFN-32 variant instead of the QFN-20.
Hopefully I *stiil* have the equipment at home to make PCBs, I drafted a breakout board directly in pcbnew (from KiCad) and etched the PCB in an afternoon. I got the occasion to try some new presensitized material from a local shop: the results were terrible (I tried multiple exposure times, etch times, etc.) and in the end I was glad that I had Bungard leftovers (this brand seems to make good presensitized boards).
I soldered the SGTL5000 on the breakout board and I still have to replace the SGTL5000 on the prototype PCB with the one from the breakout board.
Two months ago I sent Gerber files to the fab, and a couple of weeks later I received the PCBs. I was very busy so I barely got time to solder the PCB a month ago and only started the bring-up last week.
So far I only tested SD and OLED (which needed a fix on the PCB, CS was held high). The SGTL5000 is visible on the I2C bus (btw if you are using this chip, make sure you are sending MCLK before trying to communicate with I2C, otherwise this chip will stay silent!).
I would really like to add proper power management to this project soon. I am thinking of adding a low power MCU (I bought an STM8L101) to enable/disable an LTC3557 battery charger+buck IC.
I would also like to try using a Blackberry trackpad instead of a rotary encoder. I found some infos on the net on how to drive those and which connector I should buy.
I just received a notification that my PCBs are on their way to my desk. I made prototype PCBs to evaluate some parts, like NXP's SGTL5000 audio CODEC. I was originally planning on using TI's TLV320AIC3106 in BGA package, but the ball pitch is so small that you would need a costly PCB service with very good specs.
I haven't started working on the battery-oriented aspects at the moment. I'd like to use an integrated solution like Linear's LTC3557 Li-Ion charger+Buck solution.
Last week, I've been working on adding a vu-meter to my ESP32 audio recorder. Its update rate is slow as I am not using sliding window averaging. I will try to fix that some time soon.
I also added a lock switch like you find in iPods. It works great.
I will also consider implementing double buffering for the OLED display so that I can avoid pushing the whole framebuffer on the I2C bus.
Now for the hardware part: I am currently on working a PCB prototype. It won't be much portable but it will help me on testing components that I plan to integrate.
I bought some TLV320AIC3106 audio CODECs to replace the PCM1808 my prototype currently has. Its main avantages are: no 5V supply requirements (great for battery operated devices!), a built-in microphone preamp and an audio output (useful for headphone audio preview).
I hope to publish another update log before the end of the month!
I was supposed to upload gerbers of this project 2 years ago. The routing was almost done in Eagle, and... I went on with other interesting projects and left that one abandoned for a while.
I feel terrible for all the followers who were expecting updates. But luckily I've got motivated a few weeks ago to reboot this project. I'm proud to show you my first working prototype of the ESP32 audio recorder:
This time I started to work on the firmware before working on the hardware. It was built with parts I had lying around :
Generic ESP32 development board with integrated USB-serial interface
SSD1306 OLED display
PCM1808 breakout board from AliExpress
I tried both ESP-IDF and ESP-ADF to write the firmware. In the end I chose ESP-IDF because I get more control over the ESP32 and also because of compatibility issues with 24-bits ADCs like the PCM1808 I'm using.
Before going into details about my project, I wanted to show you what is inside other audio recorders. a week ago, I bought a Zoom Q2HD and a Zoom Q3HD, both in bad condition (the Q2HD had pretty bad battery corrosion, whereas the Q3HD had a burned PCB…).
There are 3 pcbs inside a Zoom Q3HD :
SD card slot + lens/sensor assembly
logic board (cpu+ram+flash) and lcd
I/O, audio CODEC and power supply (which has burned…)
The main chip here is an Ambarella A5s-CO-RH SoC. it features an ARM core (clocked at 528 Mhz), and all the bells and whistle you'd need to make a video camera (h264 encoder, i2s interface, video dsp). Next to the Ambarella chip, there is 1gbit of hynix DDR2 ram. On the other side of the logic board you can see 1gbit of st nand. Nice hardware here.
On the i/o board, we have a Wolfson WM8750 codec chip. this chip does the analog/digital conversions. I don't know which protocol is used for audio data in the Q3HD (the WM8750 handles i2s, left-justified and "dsp mode") as I can't boot it properly.
On the same board we'll also see a couple of JRC NJM2100 op-amps. I guess they are used to amplify the microphone capsules.
I bought quite a while ago a lavalier mic (rode lavalier). I've been using it directly plugged to my dslr mic input. As you may guess, this is a pain in the neck because I have to fiddle with meters of cable.
For a while, I was thinking about buying a second-hand audio recorder (e.g. zoom h1 or tascam dr-05), or a wireless mic solution. At some point, I realised that nobody has yet released an open source digital audio recorder. I took that as a challenge.
So here I am : I have not enough experience to build this and a huuuge goal. We'll see if it works, hopefully :)