Record individual ISO tracks and mixed tracks.
VU / ppm meters of each track and mix on low power screen or glasses??
EPROM to store learned control suface maps / templates
GPS UTC time and LTC timecode share over wifi
SDR multichannel radio mic reciever and uplink to cameras.

I might need to for the I2C readback from DSP if I start reading a lot of meters and LTC timecode etc.

I'm thinking I will make one large packet from all meter data. its 1 byte per meter with a few bytes for header info for each meter type. I think I can get all the useful data back to the android app in approx 45bytes per packet streaming at about 1kbps.

The main problem seams to be the app inventor app can't keep up with the speed of the packets being sent from the field recorder. I did slow down the TX rate so it could also be the way the individual screens are cleared.

I have to say a massive thanks to ABG on the MIT app inventor forum for helping me figure out a fast way to receive the 10 byte packets. My caveman code in app inventor was just not working quick enough :)

I thought my adaption of ABG 's example code was working at the end of the thread but I was wrong. I had to slow down the packet stream from the ARM since it was just way to fast.

I'll hopefully be able to clean up the glitches and move on from android app designer. Not my thing !!! If the gain peek metering works I will add metering to main faders and mix faders. There will also be a screen with all faders working at once!! if its fast enough !

I think I need to switch my BT dongle to BTLE 4. I read its better at streaming data.

I'm getting some great help on the MIT app inventor forum on the basic BT RX and drawing the meter levels.

I'm streaming 1 byte value per meter and a 2 byte header over BT to the android app. The 2 bytes just mark the beginning of a packet the 8 bytes meter values.

since I'm using every possible value of a byte for the meter value I had to go for a 2 byte header to mark the start of the packet.

As i'm typing this I've just realized I should maybe use meter values between values 0x00 and say 0xF9 and use the remaining values 0xFA , 0xFB up to 0xFF to mark the beginning of a packet / code for what kind of meter packets they are !

But sometimes I need to make 3 or 4 resets to make the DAC lock onto the

DSP TDM output. At least I think thats the issue.

I have set the DAC clock to devide/2 , its running a 24.576mhz clock , but

I still need to /2 on in the DSP sigma studio settings to make the outputs work.

I made one obvious mistake on this latest board that was no issue since all the stm32f7 pins are broken out anyway. the spi sclk pin was still hooked up to spi2 where i switch everything to spi1. It could have still worked anyway perhaps if I'd just fired up spi2 sck gpio but I just plugged in a jumper wire into PA5 instead :)

the SPI port is using DMA so you need to use the DMA enabled pins for corresponding Alternate Function mapping.

My next error was the lack of TP's (test points) on the main TDM IO lines between either the ARM or the ADC DAC module boards. I can easily sneak in wires into the module board connectors but it will be harder to find TP's between the DSP and the ARM SAI ports. I deliberately didn't break out these lines to connectors since they will be relatively high speed. TDM8. I'll probebly find some via's if I really need to test these lines, but they are very short traces so they should just work.

There is no micro NOISE and nearly no bluetooth noise detectable even though i'm running the analogue off the digi power supply for now. all good ! This will go away 100% with a bit of shield and separate Power from analogue.

My next analouge board will have the dual rail power board slotted in like the preamps. I will also separate Phantom power , digi power and dualrail power as I seam to becoming a fan of modular plugin board design !

I've changed all the GPIO pins for uSD cards SAI ports etc in the firmware and this begins to work. I want to dual record to the uSD cards for redundancy in recording.

Now I need work on the recorder app file manager and bluetooth app for the recorder player. I have the wav file names of recorded files coming back to the BT app but its very clunky !

and find out whats going on with the DAC /2 not working and check through the ADAU1467 startup procedure to make sure I got that correct.

Need to do more work on the firmware. After that i'll need to remake the 2 layer analogue board. It will be 10x10 cm and should go under the digital board with the 2 x ADC/DAC cards bridging them.

I need to make the power supply into cards to and separate the phantom power card. I like the system to be as modular as possible so I can upgrade designs in each card as I go. I need to start making all the cards 3cm high max so the final size of the box reduced. I'll probebly end up just using 2 x Dsub connectors for IO breakout cables.

Its really useful to check you solder traces with a proper gerber viewer and do a final check !

here you can see the DSP AUAU1467 and I'm checking some I2C lines that run between the GND pad and out through the top left corner. Not really pretty routing and I had to shrink the traces down to 6mil to get them through. you can toggle the layers on and off to get a proper idea of whats going on :)

Here I'm looking at the uSD cards and checking the new traces. I made this much more neat this time and made it obvious which resistor is the pullup for the slot populated switch this time.

Although your DRC should pick up any un-routed / shorted tracks its definitely worth checking the Gerber files. I had a few time submitted mechanical layers that were defined as copper layers by mistake and just shorted tons of tracks. lucky for me PCBway spotted the error but I could have save a lot of time by just checking the gerbers with this tool.

Horray the new 4 layer board is here from www.pcbway.com and I made tons of fixes :) + its got gold contacts !!! oooooohhhh :)

The quality of this board looks awsome. I checked the upgrade for free box if available and got what looks like gold contact for free, wow !

I have used smaller IO sockets , 1.27mm so I could free up some space for cool things like a 1" OLED screen to help with checking Bluetooth control is working properly. I managed to sneak on 2 I2C RF module sockets to. what are they for ?

Digital diversity audio uplink in the future I hope.

OK, heres what was wrong with the last prototype board...

The 1st thing to go was the debugger from VER1 ! it was a stupid idea to begin with :) I got the tag connect cable in the post and got using it right away ! SWD 6pin connector footprint on bottom right of board in pic above. The on board debugger did work well and had some nice flashing but it was just a wast of space ! I made quite a few errors on routing the pins from the STMF0 -> STM32f7 on the old board and that was fixed with a couple of bodge wires. the worst mistake was with the USB enumeration 1.5k resistor though. it was in series instead of pulling the DP line high. Also the resistor divider was wrong ! somehow I was using 100k instead of 10k. To be fair I didn't have a clue what at the time what USB enumeration was, I was just cobbling together whatever I could understand from the STMF7 discovery board schematic. the next best bit was that I had forgotten that i would need to flash the dubugger itself with STM-link firmware of some kind and had no pins for this ! so it was great fun taking on bodge wires to write the firmware! In the end it all worked and then I thought ... what a waste of board space :)

my next favourite mistake was the complete misunderstanding of the uSD populated switch. it really is just a switch with 2 pins. for some time saving reason I thought surely the switch pin just goes high when you insert a card. NO! the mechanical switch just bridges the 2 pins so you need to pull the line high with a resistor when connected or something similar.

WRONG!!! this just does nothing :)

Hopefully better !

insert the card and the detect line goes high through a 10k resistor. Do I need a week resistor to pull line low when no card is inserted so the detect pin is not floating on the ARM ? I'm hoping there is a week resistor in built on GPO pins for that!

Next favourite mistake , I had the Soft Start SS pin grounded and even more stupidly a second 3.3v power supply for the debugger. mmmm. It was one of those really hard to find shorts and hard to fix. I had to get a mini drill and cut the trace right next to the power IC.

This one was a pain to find. The 150pf cap should bridge PLLFILT and PVDD and not be in line with R10 !

Overall the new board quality seams A1 to me. I'm using the smallest drill hole sizes allowable for the vias and in many places i'm down to 6mil track spacing.

Most of the IC pads are 0.5mm which is pretty close!

I've been using PCBWAY.com mostly for my boards and sending them to Japan tax free. They don't charge import tax on electronics here on anything under 100$ value.

Theres one bad review on EEVBLOG about pcbway but I have never had any issues whatsoever ! They are super helpful in pointing out design mistake when I get a via to near something or have cutout marks that are just wrong daving me time and money. I have tried other PCB company's but I find PCBWAY to be the fastest cheapest and trouble free. I have uploaded project from both Kicad and Altium software and never had issues.

heres some basic point worth knowing and that have saved me quite a lot of money! In fact usually I end up paying more for shipping than the pcb !

PCB prototype service - Only $5 for 10 PCBs and every new member will get a $5...

Build Instructions

ARDUINO / NOVATION LanchControl midi knob controller that I found useful earlier on in the development of this mixer. I could control the ADC and DAC chips via midi / usb with the arduino and it helped me learn about I2C SPI UART bus etc

Instructions to hook up an arduino to Novation LaunchControl and get midi messages into your arduino.

As
of now the codec is noisey since I should have seperate ground planes
from analouge / digital .. I'm not bothered with noise for now since I'm
upgrading to an 8 channel DAC so I can mix 8 channels. the AIC3101
codec wa just a test to see how well the USBhost - midi cointroler would
work..

I remaped the numbers from the other way around since the codec volume was in reverse!

mute
was 127 and 0 was full volume 0db in the I2C register programming of
the codec. so this arduino instruction helped me out..

= map(volume1, 0, 127, 127, 0);

not
sure remaped is the correct description for map function in arduino
code.. anway , it might be useful if you want to reverse the values of
the faders etc.

I used a midi dump example to find the values of each midi knob etc.. its in the examples that come with the midi usb library.

here
is the arduino code for controling the TI AIC3101 audio codec. Its
setup to output incoming audio from I2S to Left and Right Line output.

I was thinking of selling the 4 layer digital main board and ADC-DAC card modules with the firmware / android app already populated later when I've properly got everything working and tested. I don't really want to sell a board with problems :) so far I only found one error and there was an easy work around on this revision of the 4 layer digi main board but there are loads of gremlins on the other 10 or so module boards!

I am also working towards a final bluetooth only field recorder in a waterproof box that I want to give away to sound recordist friends that work in TV film etc. Idea being they could help me fine tune the thing and eventually get some kind of useful thing to sell ! no idea of the channel count or anything yet until I get the timecode / realtime metering working on the app. I got the test tone and test sweep 20hz -> 20khz working today :) pretty cool !

The sound quality is awsome from the preamps / headphone combination. better than my sound devices mixer. One thing though. I'm not using differential op amp buffer between ADC and PGA2500's ( just Panasonic FC DC blocking caps as in datasheet ) but this might not suite other preamp designs. usually you would have the op amp buffer to protect you ADC inputs from DC bias. So that might be annoying for people that want to add there own analogue hardware.

on a plus side the ADC/DAC cards have split ground plane and there is really no noise coming across into the analogue from digital which I'm really happy about.

If I sell the mainboards I suppose I'll just do that here though hackaday but no idea how that works :)

have you seen this site ? http://www.freedsp.cc/ I think they have some pretty cool DSP boards that are open source and one that works with rasbery pi ? that might also work as an audio recorder although i'm not sure.

Hi Ben, i have a question for you. I'm working on a similar project, taking a lot of inspiration from yours. You say you're controlling the ADAU1446 with arduino via i2c. I didn't find any specification about it, the datasheet only says "program it with sigmastudio" without giving any information about i2c via an external controller. Did you found some more information? Or do you have any tip for me, how to do it?

You create files from sigmastudio when you have made your design. you need to add macros to SigmaStudioFW.h so that that the code can write / read to I2C depending on the platform you are using. So in arduino that would be Wire.beginTransmission(44); // transmit to device #44 (0x2c)// device address is specified in datasheet

Wire.write(val); // sends value byte

Wire.endTransmission(); // stop transmitting

sorry , I have no idea how hackaday does the formating , if I try and paste code into this box I get some rediculas things happening including user names poping up ?

I switched to intel edison recently and so I'm adding mraa I2C macros to SigmaStudioFW.h now since I need a micro that can record / playback TDM 8 channel audio. I could not find any way to record high quality multichannel audio in arduino. Not to say there is'nt a way. everyone points to teensy but I am interested in 24bit 96khz 8 channel audio etc..In fact I never added the macros for arduino athough I did get arduino & bluetooth controlling the preamp with SPI and of course controlled the DSP basic initialize power on to get the board working with I2C. I had some confussion with I2C in the begining but it turned out to be a faulty board ( heat damaged by myself ) . I have the board working in selfboot mode also now with eprom :)

First of all, many many thanks for your answer, that's exactly what i was looking for and i simply missed it. Now everything is much more clear for me :)

My project is very similar to yours, i'm not interested in recording but in general my goal is to build a digital audio mixer. At the moment, it's only theoretical, i'm waiting for the components i ordered some weeks ago from china. My choices are an ADAU1442 (pretty much the same as your 1446) and your same ADC/DAC. I was interested in 8 ch TDM converters and this two are the most common. For example, the "behringher x32" mixer uses those converters as well, they are perfect for the purpose. But I use self puilt preamps, from old projects of analog mixers.My project is different from yours because i will use rotary encoders, motorized faders, screens and so on.... like i said, the intention is to build my own digital mixing consolle. When i'll begin to build things i will create a project page somewhere :) Maybe i will find something usefull to you too :DAgain, thanks for your advices and your help! Will keep you updated.- Francesco

interesting to know behringher x32 uses the same convertors. I would say that if your going for the highest dynamic range possible there are better ADC's. but I think you would need to use more chips and expense goes up dramitically. I also got my chips from china and managed to keep the cost down a bit. You will need to buffer your preamps with opamps to remove the 2.5v bias on the ADC or use AC coupling capacitors to remove ADC DC bias. There is an APP note from cirrus logic with 50khz corner freqnency filter and DC bias removal. I'm using PGA2500 so had to use AC coupling caps for increased dynamic range. PGA2500 only +-5v swing. anyway , if you get stuck your welcome to ask questions here. the shared clock and fanout buffer is working well for me. keep the clock line traces short and try to keep them equal leaghth. use split ground planes to sepperate analouge and digital ground return paths. I'm using I2C logic level translator as isolator to help keep noise away from preamp / analouge parts of the board. you could quite easily add 2 or more CS5386 ADC's by setting unique I2C addresses. ADAU1442 has 8 stereo asynchronous sample rate converters where the ADAU1446 does not. I did'nt need sample rate convertion and the adau1446 uses less power. same pinouts so you can change between them I think. I put ground pad on the pcb in case i wanted to use ADAU1442. I bought the cirrus logic programmer but I think there is a cheaper one out there.. might be an idea to build the programmer into your board? that way you could just plug your desk into sigmastudio and do realtime DSP from there software also. or just makes it look tidy.

Cirrus logic programmer? you meant the analog devices one, right? I'm building the freeusbi programmer designed by freedsp.cc, total cost is about 6$ so it's much, much cheaper. I'm really trying to keep the cost as low as possible. Build the programmer into the board? Yes, it's one of my goals, it would be a very good thing.

I will for sure follow your advices about the wiring, at the moment de "pcb design" part is far away, i will first try things in some "breadbord version". At the moment one of my biggest concerns (like yours, i read) is if i will be able to solder the ICs, i'm not an expert with that kind of "small" soldering. Hopefully.......

wooops !!! yer , I should say usbi programmer ! only 6$ thats pretty cool .. I'll build the programmer into my next board I think. I first used ic adapter boards to test things out , but to be honest I think you might be better just going for it and drawing a pcb. even if you make a mistake on the pcb you could run a bodge wire or 5 !! I managed to fit ADC DAC and DSP on one 10cm x 10cm board and when I drew that board I did'nt even know how to make ground planes !! just a 4 layer board routed badly and it works really well.

you can get the ADC DAC and DSP working on adpater boards / bread boards, sort of. but it will be noisey and will probebly crash quite a bit. decoupling caps will be far away from pins on chip, ground plane will probebly be shared with digital etc.. you can download the Eval board guides for each IC and take a look at there schematics to get the idea of how to make the board.

I should'nt advise you to use naked DAC audio pins without buffering IC's, but I have to say I just hooked them up to my powered speekers for testing directly.. use some large 47uf 60WV electro AC coupling capacitors though if your going to do that since there is 2.5v bias ! don't blame me if you blow the IC's doing that also ;)

I found the ADC more tricky to get working than the DAC. theres a few traps in there , so ask me questions if you get stuck !! also I'm sure I could get ideas from your project to ! so would be great if you document it somewhere !

Hi Francesco , could you ask me the question about the DAC buffer stage again here? sorry , I tried looking for your comment somewhere in the logs and couldn't find it. In the mean time the output bias of the DAC is 2.5v which is incorrectly labeled VQ? instead of the normal Vcom ! you can AC couple the outputs to your buffer line driver or use an opamp. you can bias the OpAamp inputs so that the audio swings around the 2.5v on the buffer input and outputs the audio swinging around 0v, essentially removing the bias and protecting you DAC from unwanted current etc

I'm using a OPA1632 balanced op-amp which outputs the differential channel swinging around 0v to an audio line driver. you could just use AC caps maybe but you can add some filtering to the DAC output if you need it with an opamp. I'm running the DAC at 24.576mhz rather 12.288mhz so filtering is'nt really necessary as far as I can tell but I thought its good protection for the DAC since no nasty current can pass through the OpAmp. Personally if I did the design again I would go for a more basic OpAmp package that the OPA1632. something like the OPA4134 that I'm using on my headphone drivers as the buffer now maybe. Anyway , I'm no expert at opAmps but will try answer your question if you post it here.. I got My ADC DSP and DAC all working together really nicely with an ARM micro. started working on multi-channel recording and playback over 8 chnannel TDM. Looking hopeful :)

Hi Ben! Yesterday i wrote the comment, then had dinner, came back to pc and... "oh, that's how it works, what a stupid question" :D I figured out the answer, I only had some issues understanding the datasheet. Of course it works like you are saying here!! You didn't reply yet, the question was usefull, i simply removed the comment, that's why you can't find it :P

Let me use this comment to congrat again... This project looks amazing to me, I check this page almost everyday hoping for news. Can not wait to see how well this works once finished :D

P.S. I decided to follow your suggestion and go directly with pcbs... as you know, now seeedstudio offers 10pcbs 10x10 cm for less than 5$... it's not worth it to do tests via breadbords :D At the moment I have almost the whole project designed, only some parts already printed, thanks to your advices it works like a charm :)

OK , good to know your not wasting time with to much soldering :) take your time checking the circuits before you order boards. I usually leave it a day and check over again before ordering. I put a new pic up in the log of my 1st test backplane.. its only 4 channel. I'll make the final one and 8 channel :)

amazing thanks! looks like all the info is there! I Will code in some lights on / off after my holiday, off to see if I can stand on a surf board for more than 3 seconds in hawaii without midi assistance :)

great! Did'nt know you could get usbmidi - midi boxes! Just did a search and found midi - dmx controllers too for lighting! Awesome :)

Love the way 80's simple solid midi hardware lives on!Going to try and trigger the lights on the launch control next when you press the buttons.. Any idea where I download the midi map to trigger the lights? Oh, also love your use of the phone charger to power the launch control XL :)