Rpt linking using CODEC2

The PCB is designed for linking  analog radio repeaters by  using David Rowe’s CODEC2  speech codec codec2. It takes audio from an analog repeater audio output (ideally the FM detector so that it can  measure SNR) , and encodes this into digitized speech, then sends to via a link radio as FSK  – using a the mic or ‘packet’ input.

It also has an analog input from the link radio, and performs the reverse function- decodes  CODEC2 FSK data, turns it into analog and drives the repeater audio input.

It also will perform the usual repeater control and repeater audio turnaround and ident.

The plan is to use Codec2 at 3200 bps  to start with, but an an option incorporate my own extensions (and increased codec2 bitrate) by increasing both numerical and temporal precision.

On the modem, AC coupling will  used and  8b10b encoding (or something else when I get into the modem ) will ensure no LF/DC issues at a 20% bit rate cost. My experience is stay away from the LF with stock PLL radios. Don’t try and modulate much under 250Hz from the mic/VCO mod input. The newer fractional mod radios are a bit different. Brady O Brien commented on the error propagation issues of 8b10b, and he is right, I will certainly have to come up with something better. I have a green field.
Maybe I’ll go DQPSK OFDM if there is enough horsepower left over… dunno.

There is a ‘link’ SPI port on the PCB so that multiple PCBs can be linked together and share compressed data for a ‘system’.


I wanted to make this cheap . Basic BOM should be less than $30 …So it is a little modular- you can put everything on or very little on.  I have used nothing smaller than 0603 size , and I also have landed it on a double sided PCB to return proto and pcb costs.  Having a fast processor on a double sized board takes alot of care with bypassing and ground bounce, and putting too many breaks in the ground plane in critical spots.  In fact in commercial world it would be false economy to spend 4 hours extra painstaking time  dealing with the 2 sided approach when I could spend an extra $150 during proto and use a 4 layer… I would be happier on 0.8mm FR4 but I think 1.6mm FR4 will be better suited to the audience.  The 0.8mm thick PCB would be about half the via inductance.

I am using the Cortex M7 (STM32F) as it is a real ‘ball tearer’ in the processor department . It is a little more complex to use in the memory department than the ‘F4 oh but the speed… Also the usual stuff is there- USB programming, JTAG, opto isolated interfaces for PTT/ signalling, GPO. A few extra jumpers, pins brought out, 8x LEDs.

It is designed to fit in an off the shelf Hammond extrusion box # 1455J1202 box

I started off with using the internal ADC, DACs for all the analog IO. I used  Cauer filters to get nice flat group delay over the passband, while giving me just the right amount of aliasing protection.  I used a 5 section on the analog inputs because these could see up to 8-10kHz of audio with relatively low sample rates (32k),
The Cauer (Elliptic filter) enables me to get a nice flat group delay and passband, important. A butterworth or cheby wouldnt cut the mustard.

But as I started laying out the PCB with all those filters (4 x quad opamps) , wow that’s alot of passives…. So I went down an alternative route.

I used a cheap $3 codec chip . Why ? Well they have a sigma delta stereo ADC/DAC, and the sigma-delta converter means I can essentially forget about the need for aliasing filters.  Viola nearly no analog circuitry !
This also means I have lots and lots of SNR and dynamic range which is better to handle the various IO….

The STM32F7 processor has a really nice new peripheral- a ‘proper’ audio codec interface, – the SAI. … not the half baked I2S like it used to have. Now DMA is easy, 24 bit audio is easy etc etc.

There is the option for using the switched mode supply or an analog LDO for the 3.3V.

So I spent a full day and a half on it and it is ready to go… (yes I do this for a living).

Tooling strips are on it if anyone wants to have them machine loaded but I will just put them components on myself for the two I need.


Now I have thought of one more thing to add….

A GPS receiver might be handy for those that want it… So that, there is the potential for time-stamping received audio so that at the other end, multiple signals can be voted upon with different link latencies. OK I will try and jam one of those on one corner.

(updated) GPS receiver now in…..






About glenenglish

electronics, bikes, mountains, propagation, RF systems, modems,
This entry was posted in comms. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s