Stereo guitar/bass cabinet emulation

Progress update:
populated two boards, one used as testing bed for each circuit block and the other as "final". No major hiccups so far, added only a few changes, nothing requiring board reorder (which was not cheap - 4 layers over 100mm). Also found a bug in KiCad component library in the process.
View attachment 34323
View attachment 34322
The analog power supply for the ADC/DAC is 5V, initially i thought the input gain x2 will be fine, but after testing it with different guitars the signal was clipped with a hard pluck on stronger humbuckers. The input gain is now set to 1.
Next step: write drivers for the AK4452 + AK5552 and get the I2S going.
Looking at the space allocation on the board, I have naive noise related questions to ask:
it seems the 9v power is very close to an output jack, similarly the T41 board is in the middle of the board, why not prefering a digital+power signals split from the audio signals (e.g. could the I/O jacks better on the other side closer from ADC/DAC sub-circuit layout) ?

I know you have great gnd planes as it is a 4-layer board, but I'm an audio circuit noob and I'm trying to learn something here so pardon my basic questions!
 
Last edited:
1590XX is a larger box compared to a typical stompbox sizes. For that reason i wanted to have the jacks on the top and leave the sides for any other connectors which might be added later (ie. MIDI).
9V input is not the noisiest point on the pcb. That would be the high (relatively speaking) current 5VDC switching regulator powering the Teensy and the display plus all the digital busses. With the Teensy's pinout, which can't be changed i've settled on this partitioning scheme:
TGX4pcbzones.png
The I2S signals have their series termination resistors to roll off the sharp edges and minimize crosstalk.

Still waiting for the missing parts for the Cabinet Simulator.
I decided to rebuild my old Cabsim box using T40 + SGTL5000 (used also in the Jaws FX). There's a 2nd pcb with bypass system and 4 pots.
tcab.jpg
Bypass is stereo and is using two single coil latching relays. The module is independent from the Teensy and can be used with other projects as an universal building block.
Front panel is a 0.8mm black PCB. All built into a Hammond 1590S box.
 
1590XX is a larger box compared to a typical stompbox sizes. For that reason i wanted to have the jacks on the top and leave the sides for any other connectors which might be added later (ie. MIDI).
9V input is not the noisiest point on the pcb. That would be the high (relatively speaking) current 5VDC switching regulator powering the Teensy and the display plus all the digital busses. With the Teensy's pinout, which can't be changed i've settled on this partitioning scheme:
View attachment 35584
The I2S signals have their series termination resistors to roll off the sharp edges and minimize crosstalk.

Still waiting for the missing parts for the Cabinet Simulator.
I decided to rebuild my old Cabsim box using T40 + SGTL5000 (used also in the Jaws FX). There's a 2nd pcb with bypass system and 4 pots.
View attachment 35585
Bypass is stereo and is using two single coil latching relays. The module is independent from the Teensy and can be used with other projects as an universal building block.
Front panel is a 0.8mm black PCB. All built into a Hammond 1590S box.
Thanks for the explanations, personally I would have liked to have the ouput in the rear, the high current digital signals shifted a bit on the right and the analog expression pedals on the left rear side, the midi on the middle right, but considering the size and and the four layer design as well as the aluminium box that may add a nice faraday cage ; it is probably overkill. The stereo cab looks great and will be a very useful box to add to an audio arsenal, well done!

Maybe I can do a relayout w/ midi myself when I get more skills. After all ; I designed few teensy based/kicad (mainly digital) 2-layer boards already: (I recommend the H11L1 schmitt trigger optocouplers BTW for these midi designs see pics below, they work well with 3.3v signals too, the midi only breakouts i made work with both 5V/3.3V btw)
IMG_1846-sml.JPG
IMG_1802-sml.JPG
 
Last edited:
I have used the H11L1 for MIDI too, however, the DIP6 packages on the Pot/Bypass board are not for MIDI. They are part of an optional anti-click system, that mutes the output during the relay switching.
Nice boards!
 
The SD card expansion boards for the Teensy4.0 arrived. I think i missed some kind of discount, because the price for the flex boards suddenly jumped 3x up. In the end i went with a 0.6mm dual layer pcb. Installing it is a bit finicky, but all went good, SD card is detected and works.
t4_sd_1.jpgt4_SD_2.jpg
t4_SD_3.jpg

Why no castellated holes? The minimum diameter at JLC is 0.5mm, with that the annular ring would be too small giving the minimum clearance. I've used 0.4mm plated holes. A bit of flux + larger soldering tip made the solder flow and connect with the pads underneath. If it didn't work, i could always cut the edge of the board with a diamond disc cutter and make the castellations myself. Luckily it wasn't necessary.

TGX4 got a new front plate:
TGX4_Front_2.jpg
 
Teensy 4.0 Cabsim project update.
Hardware tested successfully. I had to bodge in a few changes, the final pcb will have all of them updated.

Main PCB:
t40IR_10.jpg
In the final version i made both, the Teensy and the display pads offset, so they can be plugged in while testing and troubleshooting the hardware.
Nice thing about the AK4558 it has the default register values exactly matching the required config, Mclk=256Fs, BICK=64Fs, 32bit, Normal speed mode. Startup is just enabling power for ADC+DAC.

SD card:
t40IR_12.jpg
I was afraid it will be protruding out of the enclosure too much, risking ripping the pads on the Teensy off. Turned out to be quite ok, about 1mm only, enough to grab it and pull it out without any tool.

Pots + Bypass module:
t40IR_8.jpgt40IR_9.jpg
The connectors should be vertical, but the seller sent them all wrong. Didn't want to wait for the new ones, horizontal works, too.
This is an independent module with 4 pots and a stereo true bypass made with two latching relays. The controller (footsw. debounce, driving the single coil relays) is a cheap Padauk PFS154, realys are driven with also cheap 8pin H-bridge chip/motor controller. A pink led completes the system.

With all these boards, lots of wiring and space constrains putting it all together was a real 3d puzzle.
t40IR_13.jpg
I'm using a stacked 2x TRS jacks for in and out configured for various plug types:
Input: mono 1x TS, Stereo 2x TS or a single TRS
Output: Single TRS or two TS

The side potentiometer is for Headphone volume (optional). Headphone amp: PAM8908. Really like this chip. It has an internal charge pump to create bipolar supply. No need for huge DC blocking capacitors, plus the output is GND referenced, can be used as 2nd line out.

t40IR_14.jpg
 
Thanks! Slowly getting there.
Mouser and Digikey have the AK4558 (and others) in stock at about 5€ in single quantities.
 
1728197127531.png


After removing most of the "I think this file isn't used in the code" files, now arduino IDE can compile this. I only tested this on USB audio loop back, so if someone willing to test this on real guitar, send me DM, i'll send you the files if I am online, and even better if you can fix my code, because my code is a mess.

edit: should I start new thread instead? I don't want to spam an already established thread.
 
I think the T-CAB is almost finished, at least with the dedicated hardware. As with TGX4 i'd like to add an option to compile it for the Teensy4 + Audio Adapter board, with a slower SD (SPI only) interface.

T-CAB_1.jpg

The LOAD button will be renamed into ALT. Initially i thought the Up/Down will browse the IR files on the SD card and the LOAD will - load the chosen file, but ended up with simpler way of just loading the IR on each Up/Down press.

On power up the SD card is scanned for valid IR wav files (16 or 24bit, 44.1kHz). Since the DSP code is limited to reverb, cabsim and filters only i extended the max IR length to 8192 (8K) samples, this allows loading a shorter room type reverb impulses.
This wouldn't be possible without rewriting the LVGL lib to have the functions run from FLASHMEM, otherwise it would occupy too much RAM1 space.

Holding the LOAD(ALT) down while adjusting the knobs is used to control input channel selector and a few plate reverb parameters, which are then saved in EEPROM.
STEREO and REVERB state can also be saved in EEPROM by holding down the button or the footswitch for ~2 seconds. If enabled the pedal will turn them on on each power up.

There will be a new repo for the T-CAB once i clean up the files, fix the pcb bodges and write documentation.
 
Back
Top