After 6 months of thinking and overthinking, making layouts, changing schematics, making simulations, remaking layouts, making some more simulations, looking for components, making prototypes, breaking prototypes, making more prototypes I decided it's time to take everything good and bad in the project so far and start over, once again.
Here's a list of the good parts:
- CORE : the screw terminal for the external power is really useful, the jumpers to select which of the 2 Teensy I2S channels to connect the AK4558 to make this setting really straighforward, the LC filter on the external power supply seems to act really well in suppressing high frequency noise on the supply
- IN : the Baxandall works well, the switch to select between the provided jack and the external input works well too thanks to the dual caps used on the switch pins, the use of an instrumentation opamp as a line receiver is a must, channel independent volume control is also a must
- OUT : the Baxandall works well, the driving capabilities of the out amp used are amazing (the headphone gets reaaaally loud)
- IN HI-Z : it works really well and requires just a couple of components
- PSU D : the dual supply is stable
Now the bad parts:
- CORE : after probing the in/out headers with the scope one too many times, they got loose and the modules won't stick as well as when I just made the protos; also, the connectors take some PCB real estate that could be used for something else; the I2S RX setting SMD jumper requires a wire to be soldered to it, which if pulled can lift the pad (I just did that); the 1.27 mm pitch headers with the breakout of the Teensy pins unused by the CORE are straight useless
- IN : the Baxandall adds too many components to the signal chain which could affect the overall signal quality (less is better); PCB real estate usage is not optimal; some components are WAY too expensive (read: precision thin film resistors) and could be unnecessary if using more integrated solutions (read: amps with laser trimmed resistors)
- OUT : Baxandall, same story as for the IN module; also, PCB real estate usage is even less optimal in this case; volume is WAY too high on the headphones, so I could use a less powerful amp while retaining signal quality; DAC filter could be useless since the passive low-pass mounted on the CORE should be enough already to achieve the AK4558 datasheet's specs (plus, the AK has cool programmable filters for both the ADC and DAC to reduce out-of-band noise and whatnots)
- IN HI-Z : the second opamp in the design (that is, the one that inverts the signal and adds gain) saturates easily and brings more troubles than benefits
- PSU D : it's an overall costly solutions, especially because the ultra-low-noise regulators that I picked up are rendered useless by the fact that the switching noise of the DC-DC converter I chose is out of their effective PSSR region; also, the terminal blocks I soldered on the proto, with a push lever instead of the screw, are too hard to push, I'll just stick to standard screw terminals
While the whole project seemed like a novel approach to audio applications with the Teensy, I think I started with the wrong foot; I focused on audio quality but I probably ended up ruining it in the first place adding way too many parts on the signal chain. Also, focusing on modularity I ended up stripping away the CORE of most stuff, leaving it to be just a fancy breakout board for the AK4558, not very different from my Hi-Fi CODEC module board I did a while ago.
With this in mind, I think that as it is right now the CORE is not really commerciable, because I think it doesn't add any added value to what's available for the Teensy (apart from the superior quality CODEC, that is). And the other modules kinda lose of sense without the CORE (apart for the PSU D which, with some modifications, could be a handy tool to have on a workbench).
So, that's why I started working on version 1.1 of the CORE. I will keep the CODEC, LDO, external power screw terminal, Teensy 3.2 connections, in/out filters, and configuration jumpers; I will definitely add a single-supply headphone/line-out amp, change the I2S RX SMD jumper to a more reliable connector (like a thru-hole pin) connection, remove the 1.27 pitch breakout headers, add a RAM chip, add an micro SD slot, add onboard input/output jacks, add an output volume pot; I will probably add a single supply line receiver (if I find a decent chip), a full connection to the Teensy 3.2 (that is a connection that takes all the pins, even the backside pins), an input volume pot for each channel (either with yet again a Baxandall approach using a 4-opamp-in-one-package to retain board space, or using two log pots, either directly between the line receiver and the ADC pins, or using them with a buffer made with 2-opamps-in-one-package), an instrument/guitar buffer for at least one channel.
A basic solution would be to have headphone/line-out on a 1/8 inch TRS jack, DAC volume control done digitally using the AK internal volume setting, and line-in on a 1/8 inch TRS jack with no attenuation/gain (that is, straight to the ADC pins);
A better solution would be the same as the previous but with analog gain/attenuation for the input;
A yet better solution would be to have headphones output on a 1/8 inch TRS jack, monitor output on 1/4 inch TRS jacks (in an impedance balanced configuration), independent volume control for the headphones and for the monitors (to be read as analog volume because using the digital DAC volume control would affect both outputs), inputs on two 1/4 inch TRS jacks (true balanced inputs) with independent gain/attenuation control
An even better solution would be same as before but with guitar/instrument buffers on the inputs, and a switch to select between line level and instrument level
The best solution would also have one input to be usable also as a microphone input through an XLR jack and with phantom power; the "bestest" would have both inputs with this option. Board real estate could be reduced by using combo XLR-TRS jacks.
Now I just have to pick one solution ... as if it was easy to choose :)
They're all good options because the first two will be cheaper and will be compact; the second two options will be more expensive, but will add a good amount of really useful features, especially for bigger or more pro-oriented projects; the last two will be surely the most expensive to build and more complex to design (i've been there already, lost a good couple of months), but users will have a full-fledged audio solution for ANY kind of project (the thing that comes first in my mind is: one Teensy + one CORE module like that = pro level, open source, USB Audio interface).
See you next update.