The firmware for the MMDVM (Multi-Mode Digital Voice Modem)
Go to file
Steve N4IRS 0736a5cbe8 RB STM32_DVM_F7 support 2021-04-18 09:50:46 -04: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 Revert "Change emphasis time constant to 750µS" 2020-04-30 11:23:19 +01:00
pins RB STM32_DVM_F7 support 2021-04-18 09:50:46 -04: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
BUILD.txt More info on Linux & newer libraries OK 2016-09-14 22:57:34 +01:00
CWIdTX.cpp Add the dot to the CW Id. 2020-05-05 21:00:36 +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
CalFM.cpp Rescale the FM calibration output. 2020-05-10 17:31:21 +01:00
CalFM.h Add FM Cal modes 2020-04-27 14:18:42 +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
CalPOCSAG.cpp Do the POCSAG calibration in a different way. 2019-01-30 14:31:15 +00:00
CalPOCSAG.h Simplify the POCSAG calibration code. 2019-01-30 11:18:16 +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 Use COS As Lockout a run-time parameter and allow for different access modes. 2020-07-13 17:13:01 +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 Simplify the D-Star fast data support. 2020-12-14 09:45:53 +00:00
DStarRX.h Simplify the D-Star fast data support. 2020-12-14 09:45:53 +00:00
DStarTX.cpp Fix -Wmisleading-indentation compiler warning 2018-09-18 10:17:51 +02: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
FM.cpp Improve the code efficiency slightly. 2020-07-14 14:54:47 +01:00
FM.h Test the use of a reverse burst at the end of a transmission. 2020-07-14 12:20:42 +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 Add CTCSS hysteresis. 2020-05-12 13:55:30 +01:00
FMCTCSSRX.h Add CTCSS hysteresis. 2020-05-12 13:55:30 +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 Add de and pre emphasis 2020-04-29 20:42:20 +02:00
FMDownsampleRB.cpp Add Downsampling 2020-04-28 21:37:06 +02:00
FMDownsampleRB.h Buffer output after adding some initial silence. 2020-05-08 15:48:03 +01:00
FMDownsampler.cpp Add Downsampling 2020-04-28 21:37:06 +02:00
FMDownsampler.h Buffer output after adding some initial silence. 2020-05-08 15:48:03 +01:00
FMKeyer.cpp Try and make the closing callsign appear. 2020-05-18 11:09:56 +01:00
FMKeyer.h Try and make the closing callsign appear. 2020-05-18 11:09:56 +01:00
FMRB.cpp Buffer output after adding some initial silence. 2020-05-08 15:48:03 +01:00
FMRB.h Buffer output after adding some initial silence. 2020-05-08 15:48:03 +01: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
Globals.h Add FM Cal modes 2020-04-27 14:18:42 +01:00
I2CTeensy.cpp Add support VK6MST_Shield Serial pass-thru 2018-07-20 21:00:09 +10:00
IO.cpp Fix the self-test LEDs. 2020-09-01 13:27:29 +01:00
IO.h Change the handling of the mode LEDs. 2020-08-31 16:06:59 +01:00
IODue.cpp Set up the FM mode pins, partially. 2020-04-18 14:31:21 +01:00
IOPins.h RB STM32_DVM_F7 support 2021-04-18 09:50:46 -04:00
IOSTM.cpp Init FM led/mode GPIO pin 2020-05-13 16:28:05 +08:00
IOSTM_CMSIS.cpp Add alternate FM LEDs for the POG board. 2020-06-01 16:55:13 +01:00
IOTeensy.cpp Set up the FM mode pins, partially. 2020-04-18 14:31:21 +01:00
LICENCE Initial commit 2016-01-14 18:57:21 +00:00
MMDVM.cpp Add FM Cal modes 2020-04-27 14:18:42 +01:00
MMDVM.ino Add FM Cal modes 2020-04-27 14:18:42 +01:00
Makefile RB STM32_DVM_F7 support 2021-04-18 09:50:46 -04:00
Makefile.Arduino Create .bin on compile target instead of upload 2017-09-10 14:04:41 +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 Fix the TX Hang handling. 2020-05-20 15:16:12 +01:00
NXDNTX.h Add transmit hangs to NXDN and P25. 2020-05-06 17:42:46 +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 Fix the TX Hang handling. 2020-05-20 15:16:12 +01:00
P25TX.h Add transmit hangs to NXDN and P25. 2020-05-06 17:42:46 +01:00
POCSAGTX.cpp Additional check to transmit all POCSAG buffer 2018-07-20 20:31:38 -04:00
POCSAGTX.h Do the POCSAG calibration in a different way. 2019-01-30 14:31:15 +00:00
README.md Update the README file. 2020-05-21 11:11:19 +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 Revert "Merge pull request #204 from shawnchain/support_udid" 2019-06-04 10:12:53 +01:00
SerialPort.cpp RB STM32_DVM_F7 support 2021-04-18 09:50:46 -04:00
SerialPort.h Beginnings of FM controller support. 2020-04-11 22:08:17 +01:00
SerialRB.cpp Fix Nucleo compiler issues. 2018-04-17 22:32:39 +01:00
SerialRB.h Restore ring buffer default size 2018-10-07 21:10:34 -03:00
SerialSTM.cpp Add support for WA0EDA MTR2000 & MASTR3 boards 2020-07-20 17:11:29 -05:00
SerialSTM_CMSIS.cpp Revert "Merge pull request #204 from shawnchain/support_udid" 2019-06-04 10:12:53 +01: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 Update YSFRX.cpp 2020-08-03 09:17:07 +02:00
YSFRX.h Refactor variable initialization in YSFRX.h 2017-08-28 07:48:25 +02:00
YSFTX.cpp Fix the TX Hang handling. 2020-05-20 15:16:12 +01:00
YSFTX.h Add YSF TX hang. 2018-06-04 20:50:43 +01: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.