The firmware for the MMDVM (Multi-Mode Digital Voice Modem)
Clone or download
phl0 Merge pull request #195 from shawnchain/master
Fixed the concat macro error if no GITVERSION is defined, which is in…
Latest commit 6563ee2 Sep 18, 2018
Permalink
Failed to load latest commit information.
STM32F4XX_Lib @ bcd346f Add submodules for F4/F7 libs Jun 23, 2018
STM32F7XX_Lib @ 2d5f423 Add submodules for F4/F7 libs Jun 23, 2018
system_stm32f1xx Adding conditional compilation for Arduino 1.6.7 fix Apr 3, 2017
.gitignore Add submodules for F4/F7 libs Jun 23, 2018
.gitmodules Add submodules for F4/F7 libs Jun 23, 2018
BUILD.txt More info on Linux & newer libraries OK Sep 14, 2016
CWIdTX.cpp Make modem debugging a run-time parameter, not compile-time. Apr 14, 2017
CWIdTX.h Small CW Id cleanups. May 10, 2016
CalDMR.cpp Add DMR 1031 Hz Test Pattern for DMO mode Feb 12, 2018
CalDMR.h Add DMR 1031 Hz Test Pattern for DMO mode Feb 12, 2018
CalDStarRX.cpp Add DMR calibration. Apr 14, 2016
CalDStarRX.h Add DMR calibration. Apr 14, 2016
CalDStarTX.cpp Add DMR calibration. Apr 14, 2016
CalDStarTX.h Add DMR calibration. Apr 14, 2016
CalNXDN.cpp Add NXDN 1031 Hz Test Pattern Feb 12, 2018
CalNXDN.h Add NXDN 1031 Hz Test Pattern Feb 12, 2018
CalP25.cpp Add comments Jan 7, 2018
CalP25.h Changing name DMR1KCAL to DMRCAL1K Jan 7, 2018
CalRSSI.cpp Small tweaks. Dec 30, 2016
CalRSSI.h Add the RSSI calibration mode. Dec 28, 2016
Config.h Generalize MODE_PINS (not F4 specific any more) Aug 1, 2018
DMRDMORX.cpp Remove any DC offset from before any further filtering takes place. Jul 16, 2017
DMRDMORX.h Remove the unused sample dumping code. Apr 10, 2017
DMRDMOTX.cpp Change 1.2 kHz fill tone by a pseudo random fill (DMR DMO) Jun 1, 2018
DMRDMOTX.h Revert the DMR DMO TX changes. Apr 17, 2017
DMRDefines.h Add new interpolation for most modes and start positioning for P25 an… Feb 6, 2017
DMRIdleRX.cpp Make modem debugging a run-time parameter, not compile-time. Apr 14, 2017
DMRIdleRX.h Remove the unused sample dumping code. Apr 10, 2017
DMRRX.cpp Add dummy RSSI sampling code. Oct 31, 2016
DMRRX.h Add dummy RSSI sampling code. Oct 31, 2016
DMRSlotRX.cpp Remove any DC offset from before any further filtering takes place. Jul 16, 2017
DMRSlotRX.h Remove the unused sample dumping code. Apr 10, 2017
DMRSlotType.cpp Initial commit Jan 14, 2016
DMRSlotType.h Initial commit Jan 14, 2016
DMRTX.cpp Fix Nucleo compiler issues. Apr 17, 2018
DMRTX.h Fix Nucleo compiler issues. Apr 17, 2018
DStarDefines.h Initial commit Jan 14, 2016
DStarRX.cpp Reducing the bit error number for the EOT sequence (D-Star) Jan 10, 2018
DStarRX.h Re-add the const qualifiers. Aug 18, 2017
DStarTX.cpp Fix -Wmisleading-indentation compiler warning Sep 18, 2018
DStarTX.h Using CMSIS FIR interpolator for all modulators Apr 1, 2017
Debug.h Add a ring buffer to the serial repeater. Uncompiled on the STM32 Apr 24, 2017
Globals.h Reduce buffer sizes for Teensy 3.2/3.1 Aug 19, 2018
I2CTeensy.cpp Add support VK6MST_Shield Serial pass-thru Jul 20, 2018
IO.cpp Rename MODE_PINS to MODE_LEDS Aug 1, 2018
IO.h Add the POCSAG transmitter. Jun 6, 2018
IODue.cpp Rename MODE_PINS to MODE_LEDS Aug 1, 2018
IOSTM.cpp Add support for RPT_HAT_TGO board by BG4TGO and BG5HHP Sep 15, 2018
IOSTM_CMSIS.cpp Only need rawRSSI variable if SEND_RSSI is defined Sep 18, 2018
IOTeensy.cpp Rename MODE_PINS to MODE_LEDS Aug 1, 2018
LICENCE Initial commit Jan 14, 2016
MMDVM.cpp Fix for missing POCSAG start tone Jul 20, 2018
MMDVM.ino Fix for missing POCSAG start tone Jul 20, 2018
MMDVM_STM32F4xx.coproj Rename MODE_PINS to MODE_LEDS Aug 1, 2018
Makefile Restore the DEFS_DVM for DVM board Sep 18, 2018
Makefile.Arduino Create .bin on compile target instead of upload Sep 10, 2017
Makefile.CMSIS Add GitVersion target to Makefile.CMSIS Sep 18, 2018
NXDNDefines.h Add support for NXDN 4800. Feb 7, 2018
NXDNRX.cpp Make NXDN sync detection more lenient when receiving a transmission. Feb 8, 2018
NXDNRX.h Revert "Start work on 4800 baud NXDN support." Feb 7, 2018
NXDNTX.cpp Fix for STM32F105 startup hang Aug 6, 2018
NXDNTX.h Add SINC filter for NXDN modulator and new deviation values Feb 9, 2018
P25Defines.h Fix commit with bad line endings. May 14, 2018
P25RX.cpp Correctly use the CORRELATION_COUNTDOWN constant vs magic number of 5U. May 15, 2018
P25RX.h Fix commit with bad line endings. May 14, 2018
P25TX.cpp Fix for STM32F105 startup hang Aug 6, 2018
P25TX.h Fixing inverse SINC TX filter for P25 Feb 10, 2018
POCSAGTX.cpp Additional check to transmit all POCSAG buffer Jul 21, 2018
POCSAGTX.h Fix for missing POCSAG start tone Jul 20, 2018
README.md Update the README file. Jun 26, 2018
RSSIRB.cpp Fix Nucleo compiler issues. Apr 17, 2018
RSSIRB.h Removing cstddef include for better toolchain compatibility (F4 & F7 … Sep 23, 2017
RingBuff.h Added STM32F1 support to Serial module using CMSIS driver Mar 30, 2017
STM32Utils.h Added STM32F1 and mmdvm_pog board support to IO module using CMSIS dr… Mar 30, 2017
SampleRB.cpp Fix Nucleo compiler issues. Apr 17, 2018
SampleRB.h Removing cstddef include for better toolchain compatibility (F4 & F7 … Sep 23, 2017
SerialArduino.cpp Add support for VK6MST_Shield Jul 19, 2018
SerialPort.cpp Fixed the concat macro error if no GITVERSION is defined, which is in… Sep 18, 2018
SerialPort.h NXDN first cut, not working yet. Jan 10, 2018
SerialRB.cpp Fix Nucleo compiler issues. Apr 17, 2018
SerialRB.h Reduce buffer sizes for Teensy 3.2/3.1 Aug 19, 2018
SerialSTM.cpp Add support for RPT_HAT_TGO board by BG4TGO and BG5HHP Sep 15, 2018
SerialSTM_CMSIS.cpp Move host communication port from USART2 to USART1 May 31, 2017
Utils.cpp Initial commit Jan 14, 2016
Utils.h Removing cstddef include for better toolchain compatibility (F4 & F7 … Sep 23, 2017
YSFDefines.h Add new interpolation for most modes and start positioning for P25 an… Feb 6, 2017
YSFRX.cpp Re-add the const qualifiers. Aug 18, 2017
YSFRX.h Refactor variable initialization in YSFRX.h Aug 28, 2017
YSFTX.cpp Fix for STM32F105 startup hang Aug 6, 2018
YSFTX.h Add YSF TX hang. Jun 4, 2018
mmdvmmenu.sh Rename MODE_PINS to MODE_LEDS Aug 1, 2018
openocd.cfg Added Makefile for STM32F1 with CMSIS Mar 30, 2017
stm32f4xx_link.ld New linker script file for SMT32F4XX, some minor changes on Makefile Nov 13, 2016
stm32f722_link.ld Separating linker script for F722 and F767 Nov 4, 2017
stm32f767_link.ld Separating linker script for F722 and F767 Nov 4, 2017

README.md

This is the source code of the MMDVM firmware that supports D-Star, DMR, System Fusion, P25, NXDN, and POCSAG modes.

It runs on the Arduino Due, the ST-Micro STM32F1xxx, STM32F4xxx and STM32F7xxx processors, as well as the Teensy 3.1/3.2/3.5/3.6. What these platforms have in common is the use of an ARM Cortex-M3 or M4 processor with a clock speed greater than 70 MHz, and access to at least one analogue to digital converter and one digital to analogue converter.

In order to build this software for the Arduino Due, you will need to edit a file within the Arduino GUI and that is detailed in the BUILD.txt file. The STM32 support is being supplied via the Coocox IDE with ARM GCC. The Teensy support uses Teensyduino.

This software is licenced under the GPL v2 and is intended for amateur and educational use only. Use of this software for commercial purposes is strictly forbidden.