Rob French (KC4UPR)
I'm looking to try making a DSP audio filter, for both transmit (e.g. compression) and receive (narrow, wide, notch filters) using a Teensy 3.2 and Teensy Audio Board. My plan for the receive audio is to put it inline in my uBITX v5 between the audio preamp and the volume control (i.e. before the volume control), and use a pair of 1:1 isolation transformers on the input/output to connect it to the preamp (input) and volume pot (output) respectively.
I would like to run the Teensy as both a standalone DSP filter in the uBITX, but also as the interface to the computer (i.e. as a combined USB audio/serial device).
My plan is to power the Teensy off the 5V from the Raduino, and also connect it to the Raduino via serial (D0/D1 pins on the Raduino) so that (a) I can pass thru CAT commands from the computer to the Raduino via the Teensy when applicable, and (b) control filter parameters from the Raduino when operating standalone.
My question is, what exactly needs to be isolated? I understand I need ground isolation between the Teensy audio I/O and the uBITX audio I/O, so I plan on 3 isolation transformers. But how does this really isolate the ground? If I'm running the Teensy off the Raduino 5V, there's a ground connection there presumably, and from what I can tell, all of the grounds on the Teensy Audio Adaptor are unified (except for the VGND for the headphones, which I'm not using). So I feel like all of the grounds are connected, and I'm not really sure what the isolation transformers are buying me.
Do I need to use a separate regulator for the Teensy? (Although that would still have a ground connection to the uBITX ground, so...)
I freely admit I don't know a lot here.
In my experience ground loops on transceiver to CPU based units are only an issue in TX when using "longer" wires.
For reference I used a second Arduino Nano mounted inside the uBitx and all signal cables not on the board, that is that are wired to other parts of the unit, are shielded audio cables (microphone type, 2mm or so diameter cables).
I used the Nano to inject an audio signal into the audio (after low pass filtering) for my auto tuner and no audio harmonics or hum was audible on another receiver in the SSB passband.
I also used an analog input connected to the microphone input as a VOX detector and again I can't hear anything on another radio at normal volume.
In RX it should not be an issue in any case if your device is mounted inside or connected via short cables to the unit.
I would use a separate supply voltage regulator for two reasons: the load on the existing regulator would be increased significantly requiring a good heatsink and this gives you the opportunity to ensure a good filtering between the Raduino and the Teensy supply and prevent any feedback/bleed through that way. It is what I did in my rig.
Regarding the usage of the Teensy USB that is a good idea. Just a reminder that some (most?) Nanos keep the USB chip powered up when supplied from the internal supply (that is even if the Nano's USB is not connected) and therefore inject a TTL logical zero (+5VDC) when idle. Therefore you need to make sure you pull the digital line D1 (Rx) to a low enough voltage to ensure you get a solid TTL logical one (0VDC) when communicating with the Teensy.
See an example of that issue on this post (and the previous posts in the thread): https://groups.io/g/BITX20/message/66289
Hope that helps.
All the best,
73, John (VK2ETA)
Rob French (KC4UPR)
Thank you very much for the very thorough reply. Mostly (!) very encouraging, as I think this will save me a lot of thinking and worrying about ground loops in my RX audio and transformers and high-impedance buffers and the list goes on... I will try just putting the Teensy/Audio Board combo into the receive audio path, and call it good (my thought is, that I should already have sufficient DC blocking in the form of the Audio Board's built-in blocking capacitors on the Line-In/Out lines, from what I can see on the schematic). Not sure if I need any other resistors for impedance matching or what not... I may just hook it up between the preamp and volume control, and cross my fingers...
I do have a decently beefy heatsink on my Raduino 5v regulator (had to bend the regulator IC "outboard", and then also bend a couple of the heatsink fins, to deconflict from the coils on the uBITX board). But, I will try to implement a separate 5V supply for the Teensy, and add some additional filtering.
I'll have to think about the D0/D1 thing with the TTL logic... so the way I read your description, D0/D1 and the USB are really not "interchangeable", rather they just happen to be linked to each other? Is that the case? I know that on Teensy, Serial and USB Serial are separate, but I thought that on Nano they are the same. Are you suggesting a pulldown resistor on D1?
Ok for the regulator, that should work just fine.
Regarding the place to insert the Teensy, here are my thoughts: If you have an AGC then before the volume control as you mentioned should be just fine.
But if you don't, you may have significant variations in signal levels. If placed after the volume control at least you apply some level control manually. Just a thought.
Also I would not worry about impedance matching until you test it. Just make sure it is AC coupled through capacitors.
For the serial part: in the Nano the USB chip's serial lines are connected via 1K Ohm resistors to the D0 and D1 lines. So you can hook up a TTL serial line there but you have to be mindful of the pull-up effect of the USB chip.
You can hook up the Teensy's RX and TX lines directly to the TX (D1) and RX (D0) lines (respectively) of the Nano since the Teensy 3.2 is 5v tolerant on its digital pins (which are shared with serial 1, 2 and 3). You may have to insert a 3.3V to 5V level converter for the Teensy's TX to the Nano's RX as the level may be on the low side of the specs for the Nano, but most of the time it just works. If you have an oscilloscope it is easy to see what the levels are when sending serial data.
But, keep in mind that as long as the Teensy is connected to the D0/D1 Nano lines it will prevent communicating to the Nano via the USB port (like for programming). Best would be a switch to disconnect at least the TX line from the Teensy or better both TX and RX just to make sure, although just powering down the Teensy may also do the trick (hoping all lines go to high impedance then).
So I would start simple and add extra hardware if you run into issues.
I like the idea of using the Teensy for microphone compression. Please share your results when you get it working.
All the best,