The firmware for the MMDVM (Multi-Mode Digital Voice Modem)
Go to file
Jonathan Naylor dd5a465a39 Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00: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
STM32F10X_Lib@417e0c2f4a add STM32F10X_Lib 2019-05-13 21:59:32 +08:00
Tools Update filter generation script 2020-05-24 07:44:38 +02:00
pins Added pin assignment for FM mode LED (WA0EDA) 2020-07-21 08:19:18 -05: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 STM32F10X_Lib 2019-05-13 21:59:32 +08:00
AX25Defines.h Increase the maximum AX25 frame size. 2020-06-24 13:14:10 +01:00
AX25Demodulator.cpp Add DCD LED control. 2020-07-06 10:03:48 +01:00
AX25Demodulator.h Add AX.25 Slot Time and P-Persist processing for simplex work. 2020-07-01 12:33:08 +01:00
AX25Frame.cpp First version of the AX25 TX functionality. 2020-06-24 11:14:02 +01:00
AX25Frame.h First version of the AX25 TX functionality. 2020-06-24 11:14:02 +01:00
AX25RX.cpp Add DCD LED control. 2020-07-06 10:03:48 +01:00
AX25RX.h Add DCD LED control. 2020-07-06 10:03:48 +01:00
AX25TX.cpp Add AX.25 Slot Time and P-Persist processing for simplex work. 2020-07-01 12:33:08 +01:00
AX25TX.h Simplify the pre-emphasis code for AX.25. 2020-06-29 15:59:46 +01:00
AX25Twist.cpp Add the twist processing to the AX25 RX. 2020-06-21 21:40:40 +01:00
AX25Twist.h Add the twist processing to the AX25 RX. 2020-06-21 21:40:40 +01:00
BUILD.txt More info on Linux & newer libraries OK 2016-09-14 22:57:34 +01:00
CWIdTX.cpp Handle extended packet lengths. 2020-06-19 13:16:47 +01:00
CWIdTX.h Handle extended packet lengths. 2020-06-19 13:16:47 +01:00
CalDMR.cpp Handle extended packet lengths. 2020-06-19 13:16:47 +01:00
CalDMR.h Handle extended packet lengths. 2020-06-19 13:16:47 +01:00
CalDStarRX.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
CalDStarRX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
CalDStarTX.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
CalDStarTX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
CalFM.cpp Merge branch 'FM_Ext' into AX25_FM 2020-06-25 10:41:48 +01:00
CalFM.h Handle extended packet lengths. 2020-06-19 13:16:47 +01:00
CalNXDN.cpp Handle extended packet lengths. 2020-06-19 13:16:47 +01:00
CalNXDN.h Handle extended packet lengths. 2020-06-19 13:16:47 +01:00
CalP25.cpp Handle extended packet lengths. 2020-06-19 13:16:47 +01:00
CalP25.h Handle extended packet lengths. 2020-06-19 13:16:47 +01:00
CalPOCSAG.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
CalPOCSAG.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00: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 Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00: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 Merge branch 'FM_Ext' into AX25_FM 2020-06-25 10:41:48 +01:00
DMRDMOTX.h Merge branch 'FM_Ext' into AX25_FM 2020-06-25 10:41:48 +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 Merge branch 'FM_Ext' into AX25_FM 2020-06-25 10:41:48 +01:00
DMRTX.h Merge branch 'FM_Ext' into AX25_FM 2020-06-25 10:41:48 +01:00
DStarDefines.h Initial commit 2016-01-14 18:57:21 +00:00
DStarRX.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
DStarRX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
DStarTX.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
DStarTX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
Debug.h Add a ring buffer to the serial repeater. Uncompiled on the STM32 2017-04-24 18:02:36 +01:00
FM.cpp Simplify the CTCSS and Noise Squelch decoders and logic. 2020-07-31 09:20:55 +01:00
FM.h Add an experimental noise squelch. 2020-07-28 13:55:50 +01:00
FMBlanking.cpp Add optional over deviation blanking. 2020-04-25 22:32:10 +01:00
FMBlanking.h Add optional over deviation blanking. 2020-04-25 22:32:10 +01:00
FMCTCSSRX.cpp Simplify the CTCSS and Noise Squelch decoders and logic. 2020-07-31 09:20:55 +01:00
FMCTCSSRX.h Simplify the CTCSS and Noise Squelch decoders and logic. 2020-07-31 09:20:55 +01:00
FMCTCSSTX.cpp Test the use of a reverse burst at the end of a transmission. 2020-07-14 12:20:42 +01:00
FMCTCSSTX.h Test the use of a reverse burst at the end of a transmission. 2020-07-14 12:20:42 +01:00
FMDirectForm1.h Remove unneeded include 2020-05-23 15:30:00 +02:00
FMDownSampler.cpp Rename FMDownsampler to FMDownSampler. 2020-06-30 12:44:02 +01:00
FMDownSampler.h Rename FMDownsampler to FMDownSampler. 2020-06-30 12:44:02 +01:00
FMKeyer.cpp Try and make the closing callsign appear. 2020-05-20 23:11:22 +02:00
FMKeyer.h Try and make the closing callsign appear. 2020-05-20 23:11:22 +02:00
FMNoiseSquelch.cpp Remove unused variable 2020-08-05 21:17:05 +02:00
FMNoiseSquelch.h Add some delay to squelch 2020-08-05 21:11:32 +02:00
FMSamplePairPack.h Tighten incoming data, Add FM UpSampler 2020-05-12 22:06:26 +02:00
FMTimeout.cpp Fix the timeout tones. 2020-07-12 15:22:35 +01:00
FMTimeout.h Allow for two levels of the callsign. 2020-04-22 22:10:34 +01:00
FMTimer.cpp Add the timer class functionality. 2020-04-15 17:18:01 +01:00
FMTimer.h Add the timer class functionality. 2020-04-15 17:18:01 +01:00
FMUpSampler.cpp return space as number of bytes 2020-05-31 22:11:28 +02:00
FMUpSampler.h Ensure we have at least 75ms of audio before transmitting 2020-05-30 20:05:34 +02:00
Globals.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
I2CTeensy.cpp Add support VK6MST_Shield Serial pass-thru 2018-07-20 21:00:09 +10:00
IO.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
IO.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
IODue.cpp Merge branch 'AX25_FM' into M17_AX25_FM 2020-11-06 15:06:00 +00:00
IOPins.h Add support for WA0EDA MTR2000 & MASTR3 boards 2020-07-20 17:11:29 -05:00
IOSTM.cpp Merge branch 'AX25_FM' into M17_AX25_FM 2020-11-06 15:06:00 +00:00
IOSTM_CMSIS.cpp Merge branch 'AX25_FM' into M17_AX25_FM 2020-11-06 15:06:00 +00:00
IOTeensy.cpp Merge branch 'AX25_FM' into M17_AX25_FM 2020-11-06 15:06:00 +00:00
LICENCE Initial commit 2016-01-14 18:57:21 +00:00
M17Defines.h Add the sync and RRC 0.5 data and code. 2020-10-14 13:29:23 +01:00
M17RX.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
M17RX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
M17TX.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
M17TX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
MMDVM.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
MMDVM.ino Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
Makefile Add support for WA0EDA MTR2000 & MASTR3 boards 2020-07-20 17:11:29 -05:00
Makefile.Arduino Update to SAM 1.6.12 2020-05-11 19:02:08 +02:00
Makefile.CMSIS Make STM32F1_POG as default type when Makefile.CMSIS is used 2019-05-14 11:53:21 +08: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 Merge branch 'FM_Ext' into AX25_FM 2020-06-25 10:41:48 +01:00
NXDNTX.h Merge branch 'FM_Ext' into AX25_FM 2020-06-25 10:41:48 +01:00
P25Defines.h fix proper PDU reception and processing; 2018-10-08 10:19:31 -04:00
P25RX.cpp fix proper PDU reception and processing; 2018-10-08 10:19:31 -04:00
P25RX.h Fix commit with bad line endings. 2018-05-14 10:11:58 -04:00
P25TX.cpp Merge branch 'FM_Ext' into AX25_FM 2020-06-25 10:41:48 +01:00
P25TX.h Merge branch 'FM_Ext' into AX25_FM 2020-06-25 10:41:48 +01:00
POCSAGTX.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
POCSAGTX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
README.md Update the README file. 2020-05-21 11:11:19 +01:00
RingBuff.h Added STM32F1 support to Serial module using CMSIS driver 2017-03-31 00:52:24 +02:00
RingBuffer.h Made Get volatile 2020-05-10 08:01:10 +02:00
RingBuffer.impl.h Made Get volatile 2020-05-10 08:01:10 +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
STMUART.cpp Remove UART habndling Copy/Paste code 2020-05-23 08:28:23 +02:00
STMUART.h Remove UART habndling Copy/Paste code 2020-05-23 08:28:23 +02:00
SerialArduino.cpp Remove SerialUSB for Arduino 2020-05-20 11:06:02 +02:00
SerialPort.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
SerialPort.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
SerialSTM.cpp Merge branch 'AX25' into AX25_FM 2020-07-28 12:40:42 +01:00
SerialSTM_CMSIS.cpp Revert "Merge pull request #204 from shawnchain/support_udid" 2019-06-04 10:12:53 +01:00
Utils.cpp Begin M17 support. 2020-10-14 10:52:30 +01:00
Utils.h Begin M17 support. 2020-10-14 10:52:30 +01: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 D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
YSFRX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
YSFTX.cpp Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
YSFTX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
mmdvmmenu.sh Rename MODE_PINS to MODE_LEDS 2018-08-01 21:09:57 +02: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, POCSAG, and FM 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, M4, or M7 processors 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 ARM GCC compiler. 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.