Hi Josh,

Yes I am in general agreement with Bruce's comments.  Last I heard (about 1 month ago) the m17 project have put their own custom hardware development on hold and are focusing on ports to COTs HTs.

I'm quite keen on the custom open hardware approach because:

(i) re-use of COTS hardware involves a lot of pain, especially around licenses, closed firmware and not-quite-right, undocumented hardware.  I'd rather we design what we want, or at least a custom, open source radio deck that firmware developers can really run with.

(ii) I'm a modem nerd and we can get better performance with custom modem waveforms - many of the current crop of modems (DMR/Fusion) are 10dB off theory due to their waveform design. That's 10x the battery life or 10x the Tx power being thrown away.

But I digress.  To your questions:

1/ Re CPU load I haven't measured the codec alone but I estimate about half a floating point stm32, so 80 MHz or so.  We run the entire FreeDV stack (modem, codec, FEC, drivers, protocol) in a 168 MHz stm32f4 OK (half duplex).  It would be worth measuring this, we have quite a few tests in codec2/stm32.

2/ I'd suggest doing the protocol and DSP on one uC, save you a lot of interfacing hassles.  That's what we do. The chips are cheap.

3/ The codec DSP is all floating point, happy to work with you if you want to try some fixed point porting.  This would involve writing a bunch of tests to verify float versus fixed.  You might get some speed up by using SIMD instructions, but in general it takes more MIPS in fixed point than float, so it's likely the MIPS (and hence clock speed requirements) will go up.  As per (2), the chips are cheap, so might not be worth the bother.

4/ Another approach for a club project is to base in on a Rpi. Some UK Hams have built a neat HF FreeDV project:

    https://warc.org.uk/?page_id=123372

  and I've done some work with VHF data using RpiTx and RTLSDR, it could easily run voice too.  Battery consumption would be a bit high for a HT, but you get a lot of functionality quickly.

Cheers,
David

On 14/5/21 7:34 am, Josh Lloyd via Freetel-codec2 wrote:
Hi David & freetel-codec2,

Firstly I would like to express a great appreciation for Codec 2, it's excellent to see an open-source codec in this low bitrate space!

I have a question about the performance of the algorithm on embedded hardware. A collection of friends from the local amateur radio club have got together to try build a digital radio hand-held, essentially a walkie-talkie. This is to strengthen our understanding of digital radio, and to practice our electronics engineering.

I came across your algorithm when looking for free open-source codecs that could be used with a low bitrate, and I noticed that you already had this working on the SM1000 which runs an STM32F4. I understand that the CPU is also computing the baseband for TX and RX, so there is some spare headroom outside of the codec. My question is how much headroom is available, and what clock rate do you run the SM1000 at to get the necessary performance?

The team and I were postulating using an STM32L4 for our radio since it offers some very low power modes which are ideal for a battery powered device, but I am concerned that the 48MHz clock will be insufficient to run Codec 2. I intend to have a separate controller handle the packet radio, so that chore is lifted off the main processor.

Can you provide any insight into how Codec 2 currently performs and at which clock rate does it fail timing? Further, is there any reason to suspect that using fixed point or integer multiplication may increase the performance?

Thanks again to all those involved with Codec 2; and for your work on the thesis before it David, as well as the talks you've provided to the wider community.

Kind regards,
Josh


_______________________________________________
Freetel-codec2 mailing list
Freetel-codec2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freetel-codec2
_______________________________________________
Freetel-codec2 mailing list
Freetel-codec2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to