Close

Hardware choices

A project log for digital-walkie-talkie

long range, low power, modular

christoph-tackChristoph Tack 09/15/2020 at 18:090 Comments

Platform

Flash size requirements

The codec2 library needs about 87KB, while the RadioLib needs about 10KB.  Then, there's also the base Arduino libraries.  And we still need to add our own code.  To be on the safe side, a device with at least 256KB of flash will be needed.

ESP32

Test application built, based on Arduino codec2 library, but it crashed.  This has been solved with esp32-codec2.

Some presumably also got it to work before I did, but they are unwilling to share their source code:


STM32

STM32F4Discovery

Rowetel/Dragino Tech SM1000

NUCLEO-L432KC

Runs only on 80MHz, might be an option to shrink size.

More info on STM32 development

nRF52

64MHz

github : Implements codec2 on a Adafruit Feather nRF52 Bluefruit LE.

Codec2 has been modified so that it can be built using Arduino framework.  I doubt this implementation is working correctly.

Audio IO

I²S

On ESP32, using I²S is definitely advantageous because it can use DMA, which off-loads the reading and writing audio data from the processor.

As we're only processing low quality 8kHz speech here, a high-end audio codec like the SGTL5000 is not necessary, but it might be a good choice after all:

  1. open source support (pjrc)
  2. I²S sink & source in a single device.
  3. High quality audio might be useful for other projects and designs.
  4. Extra features:
    1. Input: Programmable MIC gain, Auto input volume control
    2. Output: 98dB SNR output, digital volume
  5. Development board price is acceptable.

A cheaper alternative is the Waveshare WM8960 Audio HAT (technical info).

PWM-DAC & ADC

The SM1000 and NucleoTNC contain the analog circuitry we need.

Adafruit Voice Changer also features some form of audio pass-through

Discussions