The firmware for the MMDVM (Multi-Mode Digital Voice Modem)
 
 
 
 
 
 
Go to file
Andy CA6JAU f31cceac18 Fixing TX inverse SINC filter for P25, and change TX filters for gain=1 2017-04-15 13:44:00 -03:00
system_stm32f1xx Adding conditional compilation for Arduino 1.6.7 fix 2017-04-02 22:17:09 -03:00
.gitignore Add build/ dir for Arduino Makefile to .gitignore 2017-04-12 22:31:59 +02:00
BUILD.txt More info on Linux & newer libraries OK 2016-09-14 22:57:34 +01:00
CWIdTX.cpp Make modem debugging a run-time parameter, not compile-time. 2017-04-14 14:19:00 +01:00
CWIdTX.h Small CW Id cleanups. 2016-05-10 06:35:53 +01:00
CalDMR.cpp Add DMR calibration. 2016-04-14 17:42:38 +01:00
CalDMR.h Add DMR calibration. 2016-04-14 17:42:38 +01:00
CalDStarRX.cpp Add DMR calibration. 2016-04-14 17:42:38 +01:00
CalDStarRX.h Add DMR calibration. 2016-04-14 17:42:38 +01:00
CalDStarTX.cpp Add DMR calibration. 2016-04-14 17:42:38 +01:00
CalDStarTX.h Add DMR calibration. 2016-04-14 17:42:38 +01:00
CalRSSI.cpp Small tweaks. 2016-12-30 11:34:31 +00:00
CalRSSI.h Add the RSSI calibration mode. 2016-12-28 18:07:31 +00:00
Config.h Remove the optional wide filters for C4FSK modes. 2017-04-14 14:22:47 +01:00
DMRDMORX.cpp Make modem debugging a run-time parameter, not compile-time. 2017-04-14 14:19:00 +01:00
DMRDMORX.h Remove the unused sample dumping code. 2017-04-10 17:51:44 +01:00
DMRDMOTX.cpp Fixing TX inverse SINC filter for P25, and change TX filters for gain=1 2017-04-15 13:44:00 -03:00
DMRDMOTX.h Put idle into the second DMO slot instead of the repeat of the data. MD380/390 bug workaround. 2017-04-05 14:19:25 +01:00
DMRDefines.h Add new interpolation for most modes and start positioning for P25 and YSF. 2017-02-06 21:02:45 +00:00
DMRIdleRX.cpp Make modem debugging a run-time parameter, not compile-time. 2017-04-14 14:19:00 +01:00
DMRIdleRX.h Remove the unused sample dumping code. 2017-04-10 17:51:44 +01:00
DMRRX.cpp Add dummy RSSI sampling code. 2016-10-31 19:39:32 +00:00
DMRRX.h Add dummy RSSI sampling code. 2016-10-31 19:39:32 +00:00
DMRSlotRX.cpp Make modem debugging a run-time parameter, not compile-time. 2017-04-14 14:19:00 +01:00
DMRSlotRX.h Remove the unused sample dumping code. 2017-04-10 17:51:44 +01:00
DMRSlotType.cpp Initial commit 2016-01-14 18:57:21 +00:00
DMRSlotType.h Initial commit 2016-01-14 18:57:21 +00:00
DMRTX.cpp Fixing TX inverse SINC filter for P25, and change TX filters for gain=1 2017-04-15 13:44:00 -03:00
DMRTX.h Using CMSIS FIR interpolator for all modulators 2017-04-01 01:29:35 -03:00
DStarDefines.h Initial commit 2016-01-14 18:57:21 +00:00
DStarRX.cpp Make modem debugging a run-time parameter, not compile-time. 2017-04-14 14:19:00 +01:00
DStarRX.h Improving DC filter for D-Star 2017-04-10 00:30:45 -03:00
DStarTX.cpp Fixing TX inverse SINC filter for P25, and change TX filters for gain=1 2017-04-15 13:44:00 -03:00
DStarTX.h Using CMSIS FIR interpolator for all modulators 2017-04-01 01:29:35 -03:00
Debug.h Make modem debugging a run-time parameter, not compile-time. 2017-04-14 14:19:00 +01:00
Globals.h Merge branch 'master' into c4fmdemod 2017-04-02 18:02:17 +01:00
IO.cpp Finish committing the last change. 2017-04-15 10:22:56 +01:00
IO.h Add an extra flter for P25 RX. 2017-04-14 14:47:37 +01:00
IODue.cpp Add RSSI reporting for all modes. 2017-01-05 18:59:15 +00:00
IOSTM.cpp Adding conditional compilation 2017-01-28 10:18:10 -03:00
IOSTM_CMSIS.cpp Corrected Makefile.CMSIS and IOSTM_CMSIS.cpp to enable compilation 2017-03-31 01:25:24 +02:00
IOTeensy.cpp Add RSSI reporting for all modes. 2017-01-05 18:59:15 +00:00
LICENCE Initial commit 2016-01-14 18:57:21 +00:00
MMDVM.cpp Merge branch 'master' into c4fmdemod 2017-04-02 18:02:17 +01:00
MMDVM.ino Remove the OscOffset parameter. 2017-03-07 20:41:54 +00:00
MMDVM_STM32F4xx.coproj Small tweaks. 2016-12-30 11:34:31 +00:00
Makefile Add define for default Makefile 2017-04-12 22:58:35 +02:00
Makefile.Arduino Cleanup Makefile.Arduino 2017-04-12 23:00:39 +02:00
Makefile.CMSIS Corrected Makefile.CMSIS and IOSTM_CMSIS.cpp to enable compilation 2017-03-31 01:25:24 +02:00
P25Defines.h Add new interpolation for most modes and start positioning for P25 and YSF. 2017-02-06 21:02:45 +00:00
P25RX.cpp Make modem debugging a run-time parameter, not compile-time. 2017-04-14 14:19:00 +01:00
P25RX.h Remove the unused sample dumping code. 2017-04-10 17:51:44 +01:00
P25TX.cpp Fixing TX inverse SINC filter for P25, and change TX filters for gain=1 2017-04-15 13:44:00 -03:00
P25TX.h Using CMSIS FIR interpolator for all modulators 2017-04-01 01:29:35 -03:00
README.md Update README.md 2017-01-03 16:36:34 +00:00
RSSIRB.cpp Add dummy RSSI sampling code. 2016-10-31 19:39:32 +00:00
RSSIRB.h Added includes and definitions to support STM32F1 2017-03-31 00:52:24 +02:00
RingBuff.h Added STM32F1 support to Serial module using CMSIS driver 2017-03-31 00:52:24 +02:00
STM32Utils.h Added STM32F1 and mmdvm_pog board support to IO module using CMSIS driver 2017-03-31 00:51:50 +02:00
SampleRB.cpp Sanity check the ring buffers. 2016-06-13 19:47:45 +01:00
SampleRB.h Added includes and definitions to support STM32F1 2017-03-31 00:52:24 +02:00
SerialArduino.cpp Abstract the serial port handling. 2016-11-01 18:01:22 +00:00
SerialPort.cpp Make modem debugging a run-time parameter, not compile-time. 2017-04-14 14:19:00 +01:00
SerialPort.h Make modem debugging a run-time parameter, not compile-time. 2017-04-14 14:19:00 +01:00
SerialRB.cpp Sanity check the ring buffers. 2016-06-13 19:47:45 +01:00
SerialRB.h Added includes and definitions to support STM32F1 2017-03-31 00:52:24 +02:00
SerialSTM.cpp New serial port buffer size for STM32F4 2017-04-01 15:04:05 -03:00
SerialSTM_CMSIS.cpp Added STM32F1 support to Serial module using CMSIS driver 2017-03-31 00:52:24 +02:00
Utils.cpp Initial commit 2016-01-14 18:57:21 +00:00
Utils.h Added includes and definitions to support STM32F1 2017-03-31 00:52:24 +02:00
YSFDefines.h Add new interpolation for most modes and start positioning for P25 and YSF. 2017-02-06 21:02:45 +00:00
YSFRX.cpp Make modem debugging a run-time parameter, not compile-time. 2017-04-14 14:19:00 +01:00
YSFRX.h Remove the unused sample dumping code. 2017-04-10 17:51:44 +01:00
YSFTX.cpp Fixing TX inverse SINC filter for P25, and change TX filters for gain=1 2017-04-15 13:44:00 -03:00
YSFTX.h Using CMSIS FIR interpolator for all modulators 2017-04-01 01:29:35 -03:00
mmdvmmenu.sh Add 12.288MHz TCXO to mmdvmmenu.sh 2016-11-10 16:48:52 +01:00
openocd.cfg Added Makefile for STM32F1 with CMSIS 2017-03-31 00:52:24 +02:00
stm32f4xx_link.ld New linker script file for SMT32F4XX, some minor changes on Makefile 2016-11-13 17:52:01 -03:00

README.md

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

It runs on the Arduino Due, the ST-Micro STM32F407-DISCO and STM32F446-NUCLEO, 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. A Cortex-M7 processor is also probably adequate.

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 is via the latest beta of 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.