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
