Go to file
adrian 83a4a2dfa0 Change ZMQ TX socket to REP, fixes DMR timing issues 2023-03-19 15:42:41 +02: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 Added PB15 to comment with pins, changed STM32F4 to STM32F7 in line 23 2021-11-14 19:21:35 +01: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
CMakeLists.txt Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03: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
CalM17.cpp Add the transmit function. 2021-10-27 21:28:43 +01:00
CalM17.h Add the transmit function. 2021-10-27 21:28:43 +01: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 Enable some more modes in config 2022-08-17 18:05:15 +03: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 Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03: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 Fix DMRTX and Globals 2022-08-17 17:45:42 +03: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 Split the repeater and link mode audio paths. 2021-09-30 18:16:51 +01:00
FM.h Split the repeater and link mode audio paths. 2021-09-30 18:16:51 +01: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 Increase RX ringbuffer size to two slots 2022-12-13 16:43:59 +02:00
IO.cpp Revert "Major change: sample TX to ZMQ now happens in main thread" 2023-03-19 15:41:49 +02:00
IO.h Revert "Major change: sample TX to ZMQ now happens in main thread" 2023-03-19 15:41:49 +02:00
IODue.cpp Fixing Arduino Unique Identifier byte order 2020-11-28 16:25:08 +01:00
IOPins.h RB STM32_DVM_F7 support 2021-04-18 09:50:46 -04:00
IORPi.cpp Revert "Major change: sample TX to ZMQ now happens in main thread" 2023-03-19 15:41:49 +02: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
ISerialPort.cpp Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
ISerialPort.h Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
LICENCE Initial commit 2016-01-14 18:57:21 +00:00
Log.cpp Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
Log.h Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
M17Defines.h Change the EOF sync pattern for simplicity. 2021-08-26 16:50:18 +01:00
M17RX.cpp Squashed commit of the following: 2022-10-27 17:10:45 +03:00
M17RX.h Change the EOF sync pattern for simplicity. 2021-08-26 16:50:18 +01:00
M17TX.cpp Squashed commit of the following: 2022-10-27 17:10:45 +03:00
M17TX.h Squashed commit of the following: 2022-10-27 17:10:45 +03:00
MMDVM.cpp Lower sleep time in main loop 2022-12-14 12:23:56 +02:00
MMDVM.ino Add M17 calibration mode. 2021-10-27 19:37:58 +01:00
Makefile RB STM32_DVM_F7 support 2021-04-18 09:50:46 -04: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 Include the ARM copyright in the README file. 2021-12-18 22:38:26 +00:00
RingBuff.h Fix bugs. 2020-11-18 20:35:07 +00:00
RingBuffer.h Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
RingBuffer.impl.h Made Get volatile 2020-05-10 08:01:10 +02:00
STM32Utils.h Update STM32Utils.h 2021-12-18 22:31:48 +00: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
SerialController.cpp Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
SerialController.h Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
SerialPort.cpp Revert "Major change: sample TX to ZMQ now happens in main thread" 2023-03-19 15:41:49 +02:00
SerialPort.h Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
SerialRPI.cpp Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
SerialSTM.cpp Fix typo 2021-10-26 17:43:34 +01:00
SerialSTM_CMSIS.cpp Fix bugs. 2020-11-18 20:35:07 +00:00
SerialTeensy.cpp Update SerialTeensy.cpp 2021-12-18 22:34:24 +00:00
Utils.cpp Begin M17 support. 2020-10-14 10:52:30 +01:00
Utils.h Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
Version.h Bump the version date. 2021-12-20 23:00:13 +00: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 Squashed commit of the following: 2022-10-27 17:10:45 +03:00
YSFRX.h Make D-Star, System Fusion, M17, and POCSAG optional. 2020-11-08 21:28:26 +00:00
YSFTX.cpp Squashed commit of the following: 2022-10-27 17:10:45 +03:00
YSFTX.h Squashed commit of the following: 2022-10-27 17:10:45 +03:00
arm_math_rpi.cpp Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03:00
arm_math_rpi.h Merge lastet changes from master with mmdvm-sdr 2022-08-17 15:12:36 +03: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
start.sh Add the start script 2023-03-12 14:00:41 +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, M17, POCSAG, AX.25, 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 minimum clock speed greater of 70 MHz, and access to at least one analogue to digital converter, one digital to analogue converter, as well as a number of GPIO pins.

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 supplied via the ARM GCC compiler. The Teensy support uses Teensyduino.

This software is licenced under the GPL v2 and is primarily intended for amateur and educational use.

Portions of the ARM support code include the following copyright:

Copyright (c) 2011 - 2013 ARM LIMITED

All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of ARM nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.