The firmware for the MMDVM (Multi-Mode Digital Voice Modem)
Go to file
phl0 fd8bc07b61 Merge branch 'master' into F7hat 2018-07-18 22:30:34 +02:00
STM32F4XX_Lib@bcd346f530 Add submodules for F4/F7 libs 2018-06-23 22:40:13 +02:00
STM32F7XX_Lib@2d5f4236fa Add submodules for F4/F7 libs 2018-06-23 22:40:13 +02:00
system_stm32f1xx Adding conditional compilation for Arduino 1.6.7 fix 2017-04-02 22:17:09 -03:00
.gitignore Add submodules for F4/F7 libs 2018-06-23 22:40:13 +02:00
.gitmodules Add submodules for F4/F7 libs 2018-06-23 22:40:13 +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 1031 Hz Test Pattern for DMO mode 2018-02-11 21:37:54 -03:00
CalDMR.h Add DMR 1031 Hz Test Pattern for DMO mode 2018-02-11 21:37:54 -03: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
CalNXDN.cpp Add NXDN 1031 Hz Test Pattern 2018-02-12 10:34:49 -03:00
CalNXDN.h Add NXDN 1031 Hz Test Pattern 2018-02-12 10:34:49 -03:00
CalP25.cpp Add comments 2018-01-07 09:48:30 -03:00
CalP25.h Changing name DMR1KCAL to DMRCAL1K 2018-01-07 00:24:58 -03: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 Allow for alternative LEDs for NXDN and POCSAG. 2018-07-04 18:40:54 +01:00
DMRDMORX.cpp Remove any DC offset from before any further filtering takes place. 2017-07-16 18:57:15 +01:00
DMRDMORX.h Remove the unused sample dumping code. 2017-04-10 17:51:44 +01:00
DMRDMOTX.cpp Change 1.2 kHz fill tone by a pseudo random fill (DMR DMO) 2018-06-01 14:39:02 -04:00
DMRDMOTX.h Revert the DMR DMO TX changes. 2017-04-17 09:25:38 +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 Remove any DC offset from before any further filtering takes place. 2017-07-16 18:57:15 +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 Fix Nucleo compiler issues. 2018-04-17 22:32:39 +01:00
DMRTX.h Fix Nucleo compiler issues. 2018-04-17 22:32:39 +01:00
DStarDefines.h Initial commit 2016-01-14 18:57:21 +00:00
DStarRX.cpp Reducing the bit error number for the EOT sequence (D-Star) 2018-01-10 20:04:29 -03:00
DStarRX.h Re-add the const qualifiers. 2017-08-18 10:57:47 +01: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 Add a ring buffer to the serial repeater. Uncompiled on the STM32 2017-04-24 18:02:36 +01:00
Globals.h Add the POCSAG transmitter. 2018-06-06 20:27:46 +01:00
IO.cpp Rename ARDUINO_MODE_PINS to MODE_PINS. 2018-06-19 18:01:24 +01:00
IO.h Add the POCSAG transmitter. 2018-06-06 20:27:46 +01:00
IODue.cpp Add an mode output pin on the STM32-F7M board as suggested by Tom BG4TGO. 2018-07-05 18:29:18 +01:00
IOSTM.cpp Merge branch 'master' into F7hat 2018-07-18 22:30:34 +02:00
IOSTM_CMSIS.cpp Add an mode output pin on the STM32-F7M board as suggested by Tom BG4TGO. 2018-07-05 18:29:18 +01:00
IOTeensy.cpp Add an mode output pin on the STM32-F7M board as suggested by Tom BG4TGO. 2018-07-05 18:29:18 +01:00
LICENCE Initial commit 2016-01-14 18:57:21 +00:00
MMDVM.cpp Add the POCSAG transmitter. 2018-06-06 20:27:46 +01:00
MMDVM.ino Add the POCSAG transmitter. 2018-06-06 20:27:46 +01:00
MMDVM_STM32F4xx.coproj Rename ARDUINO_MODE_PINS to MODE_PINS. 2018-06-19 18:01:24 +01:00
Makefile Merge branch 'master' into F7hat 2018-07-18 22:30:34 +02:00
Makefile.Arduino Create .bin on compile target instead of upload 2017-09-10 14:04:41 +02:00
Makefile.CMSIS Change port definition for bootloader (BL_PORT) in Makefile.CMSIS 2017-05-31 15:04:00 +02:00
NXDNDefines.h Add support for NXDN 4800. 2018-02-07 20:25:16 +00:00
NXDNRX.cpp Make NXDN sync detection more lenient when receiving a transmission. 2018-02-08 18:40:23 +00:00
NXDNRX.h Revert "Start work on 4800 baud NXDN support." 2018-02-07 18:07:51 +00:00
NXDNTX.cpp Increasing ring buffer lengths 2018-05-14 22:41:26 -04:00
NXDNTX.h Add SINC filter for NXDN modulator and new deviation values 2018-02-08 21:31:45 -03:00
P25Defines.h Fix commit with bad line endings. 2018-05-14 10:11:58 -04:00
P25RX.cpp Correctly use the CORRELATION_COUNTDOWN constant vs magic number of 5U. 2018-05-15 12:30:15 -04:00
P25RX.h Fix commit with bad line endings. 2018-05-14 10:11:58 -04:00
P25TX.cpp Increasing ring buffer lengths 2018-05-14 22:41:26 -04:00
P25TX.h Fixing inverse SINC TX filter for P25 2018-02-10 14:44:30 -03:00
POCSAGTX.cpp Recalculate the TX delay for POCSAG. 2018-06-26 18:16:13 +01:00
POCSAGTX.h Recalculate the TX delay for POCSAG. 2018-06-26 18:16:13 +01:00
README.md Update the README file. 2018-06-26 18:18:43 +01:00
RSSIRB.cpp Fix Nucleo compiler issues. 2018-04-17 22:32:39 +01:00
RSSIRB.h Removing cstddef include for better toolchain compatibility (F4 & F7 devices). Please update the Lib. 2017-09-23 12:47:43 -03: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 Fix Nucleo compiler issues. 2018-04-17 22:32:39 +01:00
SampleRB.h Removing cstddef include for better toolchain compatibility (F4 & F7 devices). Please update the Lib. 2017-09-23 12:47:43 -03:00
SerialArduino.cpp Add a ring buffer to the serial repeater. Uncompiled on the STM32 2017-04-24 18:02:36 +01:00
SerialPort.cpp Bump the version date. 2018-07-05 18:44:31 +01:00
SerialPort.h NXDN first cut, not working yet. 2018-01-10 20:30:35 +00:00
SerialRB.cpp Fix Nucleo compiler issues. 2018-04-17 22:32:39 +01:00
SerialRB.h Increasing ring buffer lengths 2018-05-14 22:41:26 -04:00
SerialSTM.cpp Add missing ifdefines for F7Hat 2018-07-18 21:32:56 +02:00
SerialSTM_CMSIS.cpp Move host communication port from USART2 to USART1 2017-05-31 15:05:58 +02:00
Utils.cpp Initial commit 2016-01-14 18:57:21 +00:00
Utils.h Removing cstddef include for better toolchain compatibility (F4 & F7 devices). Please update the Lib. 2017-09-23 12:47:43 -03: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 Re-add the const qualifiers. 2017-08-18 10:57:47 +01:00
YSFRX.h Refactor variable initialization in YSFRX.h 2017-08-28 07:48:25 +02:00
YSFTX.cpp Add YSF TX hang. 2018-06-04 20:50:43 +01:00
YSFTX.h Add YSF TX hang. 2018-06-04 20:50:43 +01:00
mmdvmmenu.sh Rename ARDUINO_MODE_PINS to MODE_PINS. 2018-06-19 18:01:24 +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
stm32f722_link.ld Separating linker script for F722 and F767 2017-11-04 15:28:38 -03:00
stm32f767_link.ld Separating linker script for F722 and F767 2017-11-04 15:28:38 -03:00

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.