The firmware for the MMDVM (Multi-Mode Digital Voice Modem)
Go to file
Jonathan Naylor 6ffb68450c Allow for hex dumps of modem data by the host. 2021-04-11 18:15:19 +01:00
STM32F4XX_Lib@18aeb6ea3a Add I2C support. 2020-12-14 09:46:53 +00:00
STM32F7XX_Lib@6241f7c05e Add I2C support. 2020-12-14 09:46:53 +00: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 Merge branch 'master' into M17_AX25_FM 2021-01-01 13:01:56 +00: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 Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
AX25Demodulator.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
AX25Frame.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
AX25Frame.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
AX25RX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
AX25RX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
AX25TX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
AX25TX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
AX25Twist.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
AX25Twist.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00: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 Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
CalDMR.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
CalDStarRX.cpp Use the D-Star correlator receiver. 2020-11-09 11:50:02 +00:00
CalDStarRX.h Use the D-Star correlator receiver. 2020-11-09 11:50:02 +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 Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
CalFM.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
CalNXDN.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
CalNXDN.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
CalP25.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
CalP25.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00: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 Increase serial speed to 460800. 2020-11-24 16:22:14 +00:00
DMRDMORX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRDMORX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRDMOTX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRDMOTX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00: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 AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRIdleRX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRRX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRRX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRSlotRX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRSlotRX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRSlotType.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRSlotType.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRTX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DMRTX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
DStarDefines.h Use the D-Star correlator receiver. 2020-11-09 11:50:02 +00:00
DStarRX.cpp Merge branch 'master' into M17_AX25_FM 2020-12-14 09:53:38 +00:00
DStarRX.h Merge branch 'master' into M17_AX25_FM 2020-12-14 09:53:38 +00:00
DStarTX.cpp Use the D-Star correlator receiver. 2020-11-09 11:50:02 +00:00
DStarTX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
Debug.h Allow for hex dumps of modem data by the host. 2021-04-11 18:15:19 +01:00
FM.cpp Change the FM serial block size to 80. 2021-03-07 19:01:46 +00:00
FM.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMBlanking.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMBlanking.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMCTCSSRX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMCTCSSRX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMCTCSSTX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMCTCSSTX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMDirectForm1.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMDownSampler.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMDownSampler.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMKeyer.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMKeyer.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMNoiseSquelch.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMNoiseSquelch.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMSamplePairPack.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMTimeout.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMTimeout.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMTimer.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMTimer.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMUpSampler.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
FMUpSampler.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
Globals.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
IO.cpp Add the boxcar filter as an option for NXDN. 2020-11-09 11:25:03 +00:00
IO.h Add the boxcar filter as an option for NXDN. 2020-11-09 11:25:03 +00:00
IODue.cpp Fixing Arduino Unique Identifier byte order 2020-11-28 16:25:08 +01:00
IOPins.h Add DRCC_DVM_HHP446 board support 2021-01-01 19:48:07 +08:00
IOSTM.cpp Add UDID support. 2020-11-09 10:23:57 +00:00
IOSTM_CMSIS.cpp Add UDID support. 2020-11-09 10:23:57 +00:00
IOTeensy.cpp Add UDID support. 2020-11-09 10:23:57 +00:00
LICENCE Initial commit 2016-01-14 18:57:21 +00:00
M17Defines.h Update the M17 sync vectors. 2020-12-26 12:42:16 +00:00
M17RX.cpp Disable packet mode in M17. 2021-04-07 19:02:04 +01:00
M17RX.h Simplification of the M17 receiver. 2021-03-14 18:24:30 +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 DRCC_DVM_HHP446 board support 2021-01-01 19:48:07 +08: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 AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
NXDNRX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
NXDNTX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
NXDNTX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
P25Defines.h fix proper PDU reception and processing; 2018-10-08 10:19:31 -04:00
P25RX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
P25RX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
P25TX.cpp Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00:00
P25TX.h Make AX.25, DMR, P25, NXDN and FM selectable at compile time. 2020-11-08 22:23:27 +00: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 Fix bugs. 2020-11-18 20:35:07 +00: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 Allow serial data to be sent back to the host. 2020-11-13 12:09:10 +00:00
SerialPort.cpp Allow for hex dumps of modem data by the host. 2021-04-11 18:15:19 +01:00
SerialPort.h Allow for hex dumps of modem data by the host. 2021-04-11 18:15:19 +01:00
SerialSTM.cpp Allow serial data to be sent back to the host. 2020-11-13 12:09:10 +00:00
SerialSTM_CMSIS.cpp Fix bugs. 2020-11-18 20:35:07 +00:00
SerialTeensy.cpp Allow serial data to be sent back to the host. 2020-11-13 12:09:10 +00: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
Version.h Disable packet mode in M17. 2021-04-07 19:02:04 +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.