Hi,

Just a quick report on a recent project I built: A low bandwidth/duty cycle 
Codec2 packetised Walkie Talkie

It implements a Codec2 (http://www.rowetel.com/blog/codec2.html) encoded
walkie-talkie on an STM32F4 Discovery board
http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419

Each station has:
STM32F4 Discovery board (using onboard MEMS microphone and Audio out chip to 
headphone, and user button as PTT) and ST Firmware
Codec2 in CODEC2_MODE_3200
Optional HopeRF RFM22 radio module (connected to SPI1) at 434MHz
RadioHead (http://www.airspayce.com/mikem/arduino/RadioHead) drivers and 
Arduino compatibility code
The free pdm_fir FIR filter from volkov.oleg

The MEMS Microphone is sampled at 1024kHz and FIR filtered to 4kHz bandwidth 
(this all happens in an interrupt handler).

When the PTT button is pressed, microphone samples (160x16bits at a time = 
20ms of voice) are compressed with Codec2 MODE_3200, producing 8 bytes of 
compressed voice. These 8 bytes are then sent by RadioHead::RH_RF22 driver 
(sent using the broadcast address).

When the PTT is not pressed, it listens for 8 byte messages received from 
RadioHead::RH_RF22. Each one is decompressed with Codec2 and the resulting 
160x16bit = 20ms samples are duplicated to stereo and sent to the output DAC 
by DMA, and can be heard through headphones.

The RF22 modem is configured for GFSK_Rb125Fd125 (125kHz bandwidth, 125kHz 
deviation GFSK), which gives good quality sound and plenty of extra air space 
for interleaved transmitters (possibly privately addressed).

Over the air, by analog radio, it just sounds like 50Hz buzz.

Lower data rates also work. Min workable RF22 modulation is prob about 9.6kbps 
(based on RadioHead addressing/preamble/header/crc overheads etc)

You can also use RadioHead's RH_Serial driver for transmitting fair
quality voice over 9600 baud serial.

Should also (courtesy of RadioHead) be able to support the very interesting 
RFM95 LoRa family of radios, with long range and spread spectrum.

Or, using the RadioHead RH_RFM69 driver, you could also have AES encryption of 
the radio data for extra security.

Or, switch between all types of RadioHead driver.

Latest version and build instructions etc can be found at
http://www.airspayce.com/mikem/Codec2WalkieTalkie

This is NOT a finished product. It is intended to be a proof-of-concept for
further experimentation by other amateurs.



-- 
Mike McCauley           VK4AMM                   [email protected]
Airspayce Pty Ltd 9 Bulbul Place Currumbin Waters QLD 4223 Australia   
http://www.airspayce.com
Phone +61 7 5598-7474


------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to