The host program for the MMDVM
Go to file
Jonathan Naylor 3b365f4ce0 Fix a type and some type mismatches. 2019-03-24 12:19:05 +00:00
Images Better YSF image 2018-08-12 11:27:03 +02:00
Nextion_DB2OE Add DB2OE Nextion layouts. 2017-08-20 12:35:03 +01:00
Nextion_G4KLX Better YSF image 2018-08-12 11:27:03 +02:00
Nextion_ON7LDS Add more dynamic variables and fix command manging 2018-09-05 16:12:12 -04:00
RSSI Create RSSI_FC-302_RptrBldrV2.dat 2018-02-04 14:30:23 +01:00
TFTSerial Change the NXDN image to be less garish. 2018-01-22 20:17:47 +00:00
UMP nitial commit of POCSAG files. 2018-06-07 18:46:03 +01:00
linux Fix execute permissions on DMR ID updates from BM. 2018-10-03 09:04:51 +01:00
.gitignore Fix some bugs 2019-01-08 15:13:18 +01:00
AMBEFEC.cpp Re-add the audio blanking for too corrupt audio in DMR, NXDN and YSFDN 2018-03-07 20:14:07 +00:00
AMBEFEC.h Re-add the audio blanking for too corrupt audio in DMR, NXDN and YSFDN 2018-03-07 20:14:07 +00:00
BCH.cpp Change the semantics of the NID processor. 2016-09-19 22:26:42 +01:00
BCH.h Add the P25 NID BCH encoder. 2016-09-19 21:41:34 +01:00
BPTC19696.cpp Add new Hamming for YSF. 2016-04-19 06:50:51 +01:00
BPTC19696.h Initial commit 2016-01-14 18:45:04 +00:00
CRC.cpp Decode and encode the System Fusion FICH. 2016-02-23 19:30:35 +00:00
CRC.h Decode and encode the System Fusion FICH. 2016-02-23 19:30:35 +00:00
Conf.cpp Remove the old System Fusion SQL config option and processing. 2019-02-12 11:29:05 +00:00
Conf.h Remove the old System Fusion SQL config option and processing. 2019-02-12 11:29:05 +00:00
DMRAccessControl.cpp Cleanup the access control slightly. 2017-07-16 19:31:27 +01:00
DMRAccessControl.h Add RSSI display for all modes. 2017-01-05 19:15:10 +00:00
DMRCSBK.cpp Extend preamble length for network CSBK preamble 2018-09-23 11:11:44 -03:00
DMRCSBK.h Extend preamble length for network CSBK preamble 2018-09-23 11:11:44 -03:00
DMRControl.cpp Reset the mode's state machines when going to the disabled state. 2019-01-19 17:15:24 +00:00
DMRControl.h Reset the mode's state machines when going to the disabled state. 2019-01-19 17:15:24 +00:00
DMRData.cpp Roll back the jitter buffer changes. 2018-02-08 20:25:03 +00:00
DMRData.h Roll back the jitter buffer changes. 2018-02-08 20:25:03 +00:00
DMRDataHeader.cpp Remove unused code. 2017-05-19 08:35:14 +01:00
DMRDataHeader.h Remove unneeded code. 2017-05-15 22:12:39 +01:00
DMRDefines.h Change of the DMR Silence Data for AMBE+2 silence pattern 2018-02-09 14:57:09 -03:00
DMREMB.cpp Renamed DMR protocol files. 2016-02-15 18:45:57 +00:00
DMREMB.h Renamed DMR protocol files. 2016-02-15 18:45:57 +00:00
DMREmbeddedData.cpp Fixing last byte of Embedded Data 2017-04-04 23:02:19 -03:00
DMREmbeddedData.h Upgrade the Embedded Data regeneration. 2017-01-10 19:27:12 +00:00
DMRFullLC.cpp Finally fix the (re)generation of Full LC PDUs. 2016-02-22 22:27:03 +00:00
DMRFullLC.h Renamed DMR protocol files. 2016-02-15 18:45:57 +00:00
DMRIds.dat Update the DMR Ids. 2018-10-03 07:54:45 +01:00
DMRLC.cpp Add more asserts to catch bugs. 2016-03-07 20:21:55 +00:00
DMRLC.h Finally fix the (re)generation of Full LC PDUs. 2016-02-22 22:27:03 +00:00
DMRLookup.cpp Camel case findWithName() 2018-04-13 17:40:54 -04:00
DMRLookup.h Camel case findWithName() 2018-04-13 17:40:54 -04:00
DMRNetwork.cpp Fix a type and some type mismatches. 2019-03-24 12:19:05 +00:00
DMRNetwork.h Add the DMR Interrupt command. 2019-03-22 09:13:22 +00:00
DMRShortLC.cpp Add more asserts to catch bugs. 2016-03-07 20:21:55 +00:00
DMRShortLC.h Renamed DMR protocol files. 2016-02-15 18:45:57 +00:00
DMRSlot.cpp Stop any response from any mode when not enabled. 2019-01-20 17:09:40 +00:00
DMRSlot.h Reset the mode's state machines when going to the disabled state. 2019-01-19 17:15:24 +00:00
DMRSlotType.cpp Renamed DMR protocol files. 2016-02-15 18:45:57 +00:00
DMRSlotType.h Renamed DMR protocol files. 2016-02-15 18:45:57 +00:00
DMRTA.cpp Fixed incorrect DMRTA header packet length from RF side 2018-12-09 23:49:15 +08:00
DMRTA.h Fixed incorrect DMRTA header packet length from RF side 2018-12-09 23:49:15 +08:00
DMRTrellis.cpp Improve the FEC reconstruction a little. 2016-07-19 17:24:11 +01:00
DMRTrellis.h Improve the FEC reconstruction a little. 2016-07-19 17:24:11 +01:00
DMRplus_startup_options.md how to work with the Options-settings 2016-11-11 22:05:26 +01:00
DStarControl.cpp Remove redundant code. 2019-01-31 08:25:35 +00:00
DStarControl.h Reset the mode's state machines when going to the disabled state. 2019-01-19 17:15:24 +00:00
DStarDefines.h Remove more redundant code. 2019-01-31 08:29:31 +00:00
DStarHeader.cpp Remobe AMBE regeneration on data packets. 2016-10-05 07:42:41 +01:00
DStarHeader.h Remobe AMBE regeneration on data packets. 2016-10-05 07:42:41 +01:00
DStarNetwork.cpp Fix a type and some type mismatches. 2019-03-24 12:19:05 +00:00
DStarNetwork.h Changes for DVMega via the host. 2016-03-08 17:26:51 +00:00
DStarSlowData.cpp Fix the CCITT16 checksums for CSBK, DMR Data and D-Star Headers. 2016-02-18 21:56:26 +00:00
DStarSlowData.h Add the status ack to D-Star. 2016-02-01 20:49:52 +00:00
Defines.h Better way to send to display that MMDVMHost is quitting 2018-08-15 18:17:42 +02:00
Display.cpp Extract the DMR talker alias decode logic from Display.cpp 2018-12-08 22:09:59 +08:00
Display.h Better way to send to display that MMDVMHost is quitting 2018-08-15 18:17:42 +02:00
Dockerfile Remove Log repertory 2018-01-04 01:09:37 +01:00
Golay2087.cpp Initial commit 2016-01-14 18:45:04 +00:00
Golay2087.h Initial commit 2016-01-14 18:45:04 +00:00
Golay24128.cpp The beginnings of simple System Fusion support. 2016-02-04 19:17:39 +00:00
Golay24128.h The beginnings of simple System Fusion support. 2016-02-04 19:17:39 +00:00
HD44780.cpp Better way to send to display that MMDVMHost is quitting 2018-08-15 18:17:42 +02:00
HD44780.h Better way to send to display that MMDVMHost is quitting 2018-08-15 18:17:42 +02:00
HD44780.layouts D-Star: Redesign HD44780 layouts 2016-09-29 19:47:41 +01:00
Hamming.cpp More work with decoding and regenerating P25. 2016-09-13 18:27:50 +01:00
Hamming.h More work with decoding and regenerating P25. 2016-09-13 18:27:50 +01:00
I2CController.cpp I2C support is only Linux. 2019-03-13 20:30:49 +09:00
I2CController.h Clean up the code for Windows and style. 2018-07-30 18:19:46 +01:00
ISSUES.txt Update a bit of documentation. 2018-01-17 19:06:37 +00:00
LCDproc.cpp Better way to send to display that MMDVMHost is quitting 2018-08-15 18:17:42 +02:00
LCDproc.h Better way to send to display that MMDVMHost is quitting 2018-08-15 18:17:42 +02:00
LICENCE Initial commit 2016-01-14 18:45:04 +00:00
Log.cpp Increase log file path variable. 2016-10-13 18:12:27 +01:00
Log.h Modify the logging system greatly. 2016-03-07 18:42:05 +00:00
MMDVM.ini Add remote control interface. 2019-01-07 11:03:37 +00:00
MMDVMHost.cpp Add the DMR Interrupt command. 2019-03-22 09:13:22 +00:00
MMDVMHost.h Allow for optional fixed modes. Inspired by Adrian VK4TUX. 2019-01-22 14:38:38 +00:00
MMDVMHost.sln Add VS2017 files for Remote Command. 2019-01-19 17:27:41 +00:00
MMDVMHost.vcxproj Add remote control interface. 2019-01-07 11:03:37 +00:00
MMDVMHost.vcxproj.filters Add remote control interface. 2019-01-07 11:03:37 +00:00
Makefile Use system default compiler. At least there is no difference under Linux. 2019-03-13 20:33:02 +09:00
Makefile.Pi Roll through Makefile fixes. 2019-01-08 15:17:37 +00:00
Makefile.Pi.Adafruit Roll through Makefile fixes. 2019-01-08 15:17:37 +00:00
Makefile.Pi.HD44780 Roll through Makefile fixes. 2019-01-08 15:17:37 +00:00
Makefile.Pi.OLED Roll through Makefile fixes. 2019-01-08 15:17:37 +00:00
Makefile.Pi.PCF8574 Roll through Makefile fixes. 2019-01-08 15:17:37 +00:00
Makefile.Solaris Roll through Makefile fixes. 2019-01-08 15:17:37 +00:00
MobileGPS.cpp Fix Windows compile warnings. 2018-11-06 20:44:59 +00:00
MobileGPS.h Add MobileGPS support for DMR. 2018-11-06 12:14:57 +00:00
Modem.cpp Fix a type and some type mismatches. 2019-03-24 12:19:05 +00:00
Modem.h Add NullModem support 2018-12-07 17:36:11 +08:00
ModemSerialPort.cpp Allow the modem to host a serial display. 2016-10-06 18:38:16 +01:00
ModemSerialPort.h Allow the modem to host a serial display. 2016-10-06 18:38:16 +01:00
Mutex.cpp Add the Mutex class. 2016-10-06 20:06:57 +01:00
Mutex.h Add the Mutex class. 2016-10-06 20:06:57 +01:00
NXDN.csv Update the NXDN IDs from radioid. 2018-10-03 07:44:18 +01:00
NXDNAudio.cpp Simplify the NXDN audio decoding. 2018-03-07 20:24:32 +00:00
NXDNAudio.h Start on the NXDN Icom network audio handling. 2018-02-19 19:09:01 +00:00
NXDNCRC.cpp Revert "Rework the LICH parity." 2018-03-20 20:36:23 +00:00
NXDNCRC.h Revert "Rework the LICH parity." 2018-03-20 20:36:23 +00:00
NXDNControl.cpp Stop any response from any mode when not enabled. 2019-01-20 17:09:40 +00:00
NXDNControl.h Reset the mode's state machines when going to the disabled state. 2019-01-19 17:15:24 +00:00
NXDNConvolution.cpp Fix file attributes for source files. 2018-06-13 18:55:03 +01:00
NXDNConvolution.h Add more NXDN support files. 2018-01-17 21:21:25 +00:00
NXDNDefines.h Allow more control over NXDN networking. 2018-03-12 20:55:53 +00:00
NXDNFACCH1.cpp Add raw data accessors to the channel data classes. 2018-02-21 07:48:24 +00:00
NXDNFACCH1.h Add raw data accessors to the channel data classes. 2018-02-21 07:48:24 +00:00
NXDNLICH.cpp Simplify the LICH processing. 2018-03-21 18:44:33 +00:00
NXDNLICH.h Simplify the LICH processing. 2018-03-21 18:44:33 +00:00
NXDNLayer3.cpp Add correct LICH direction to match Icom repeaters. 2018-05-23 18:30:40 +01:00
NXDNLayer3.h Begin handling Icom format network frames. Work in progress. 2018-02-15 20:20:07 +00:00
NXDNLookup.cpp New NXDN Id lookup file. 2018-02-06 18:38:29 +00:00
NXDNLookup.h Add more NXDN support files. 2018-01-17 21:21:25 +00:00
NXDNNetwork.cpp Add more intelligence to the remote control. 2019-01-15 21:45:29 +00:00
NXDNNetwork.h Insert the correct bytes for data transmissions in the Icom protocol. 2018-05-17 19:23:01 +01:00
NXDNSACCH.cpp Fix file attributes for source files. 2018-06-13 18:55:03 +01:00
NXDNSACCH.h Add raw data accessors to the channel data classes. 2018-02-21 07:48:24 +00:00
NXDNUDCH.cpp Insert the correct bytes for data transmissions in the Icom protocol. 2018-05-17 19:23:01 +01:00
NXDNUDCH.h Add raw data accessors to the channel data classes. 2018-02-21 07:48:24 +00:00
NetworkInfo.cpp <netinet/in.h> of Linux automatically includes <sys/socket.h>, 2019-03-13 20:18:12 +09:00
NetworkInfo.h Reformat code and make small alterations. 2017-11-15 10:47:56 +00:00
Nextion.cpp Process data from display to MMDVMHost (serial pass-through & transparent data) 2018-09-13 20:35:12 +02:00
Nextion.h Clean up the code to remove warnings. 2018-09-06 17:10:58 +01:00
NullDisplay.cpp Better way to send to display that MMDVMHost is quitting 2018-08-15 18:17:42 +02:00
NullDisplay.h Better way to send to display that MMDVMHost is quitting 2018-08-15 18:17:42 +02:00
NullModem.cpp Add NullModem support 2018-12-07 17:36:11 +08:00
NullModem.h Add NullModem support 2018-12-07 17:36:11 +08:00
OLED.cpp Minor fix for status bar scrolling 2019-03-09 13:04:12 -05:00
OLED.h Integrate the new messages into the OLED display driver. 2018-10-31 16:54:57 +00:00
OLED.md Added manual for oled driver installation 2016-05-10 16:06:26 +00:00
P25Audio.cpp Fix obvious mistake in P25 network audio. 2016-10-03 19:28:01 +01:00
P25Audio.h Add the IMBE packing/unpacking code. 2016-09-21 07:04:12 +01:00
P25Control.cpp Stop any response from any mode when not enabled. 2019-01-20 17:09:40 +00:00
P25Control.h Reset the mode's state machines when going to the disabled state. 2019-01-19 17:15:24 +00:00
P25Data.cpp Revert "Merge pull request #462 from gatekeep/master" 2018-11-12 09:48:00 +00:00
P25Data.h Revert "Merge pull request #462 from gatekeep/master" 2018-11-12 09:48:00 +00:00
P25Defines.h Revert "Merge pull request #462 from gatekeep/master" 2018-11-12 09:48:00 +00:00
P25LowSpeedData.cpp Finish off the basics of the P25 network handling. 2016-09-22 19:39:19 +01:00
P25LowSpeedData.h Finish off the basics of the P25 network handling. 2016-09-22 19:39:19 +01:00
P25NID.cpp Fix other crashes 2018-08-20 00:47:45 -03:00
P25NID.h Oops! Forgot the P25 NID changes for the TSDU datatype. 2018-05-14 12:00:06 -04:00
P25Network.cpp Add more intelligence to the remote control. 2019-01-15 21:45:29 +00:00
P25Network.h Simplify the P25 protocol. 2016-11-01 07:42:34 +00:00
P25Trellis.cpp Fix P25 data reception, regeneration, and transmission. 2018-01-16 23:26:05 +00:00
P25Trellis.h Progress on P25 data. 2018-01-04 21:17:34 +00:00
P25Utils.cpp Fix the P25 PDU transmit length. 2018-01-17 07:59:40 +00:00
P25Utils.h Fix the P25 PDU transmit length. 2018-01-17 07:59:40 +00:00
POCSAGControl.cpp Fix silly bug. 2019-01-23 08:50:22 +00:00
POCSAGControl.h Restructure POCSAG code to allow for two input data streams. 2019-01-23 08:21:47 +00:00
POCSAGDefines.h Add POCSAG processing and display code. 2018-06-11 21:30:49 +01:00
POCSAGNetwork.cpp Add more intelligence to the remote control. 2019-01-15 21:45:29 +00:00
POCSAGNetwork.h nitial commit of POCSAG files. 2018-06-07 18:46:03 +01:00
QR1676.cpp Initial commit 2016-01-14 18:45:04 +00:00
QR1676.h Initial commit 2016-01-14 18:45:04 +00:00
README.HD44780 Fix README.HD44780 Backlight Power Supply 2016-12-26 00:51:30 +01:00
README.daemon Added reference to full path for DMRIds.dat 2016-05-05 10:52:58 +01:00
README.md Update README.md 2018-08-20 11:34:19 +02:00
RS129.cpp Initial commit 2016-01-14 18:45:04 +00:00
RS129.h Initial commit 2016-01-14 18:45:04 +00:00
RS241213.cpp Revert "Merge pull request #462 from gatekeep/master" 2018-11-12 09:48:00 +00:00
RS241213.h Revert "Merge pull request #462 from gatekeep/master" 2018-11-12 09:48:00 +00:00
RSSI.dat Use a linear interpolator for the reported RSSI values. 2016-12-21 19:58:46 +00:00
RSSIInterpolator.cpp Type correction. 2016-12-22 10:29:39 +00:00
RSSIInterpolator.h Use a linear interpolator for the reported RSSI values. 2016-12-21 19:58:46 +00:00
RemoteCommand.cpp Remove need for quotes around the command. 2019-01-10 08:05:33 +00:00
RemoteCommand.h Add example remote command program. 2019-01-07 13:23:11 +00:00
RemoteCommand.vcxproj Add VS2017 files for Remote Command. 2019-01-19 17:27:41 +00:00
RemoteCommand.vcxproj.filters Add VS2017 files for Remote Command. 2019-01-19 17:27:41 +00:00
RemoteControl.cpp Fix a type and some type mismatches. 2019-03-24 12:19:05 +00:00
RemoteControl.h Add the DMR Interrupt command. 2019-03-22 09:13:22 +00:00
RingBuffer.h Attempt to recover from ring buffer overflows (#141) 2016-09-23 14:48:44 +01:00
SHA256.cpp Initial commit 2016-01-14 18:45:04 +00:00
SHA256.h Use C++11 <cstdint> on Windows. 2016-01-14 23:25:52 +00:00
SerialController.cpp There is no I2C related code, <linux/i2c-dev.h> removed. 2019-03-13 20:29:45 +09:00
SerialController.h Extract I2C logic from SerialController to separate class 2018-07-30 21:58:35 +08:00
SerialPort.cpp Allow the modem to host a serial display. 2016-10-06 18:38:16 +01:00
SerialPort.h Allow the modem to host a serial display. 2016-10-06 18:38:16 +01:00
StopWatch.cpp Simplify the new stopwatch code. 2018-07-15 20:33:14 +01:00
StopWatch.h Simplify the new stopwatch code. 2018-07-15 20:33:14 +01:00
Sync.cpp More superficial NXDN work. 2018-01-11 20:59:32 +00:00
Sync.h More superficial NXDN work. 2018-01-11 20:59:32 +00:00
TFTSerial.cpp Better way to send to display that MMDVMHost is quitting 2018-08-15 18:17:42 +02:00
TFTSerial.h Better way to send to display that MMDVMHost is quitting 2018-08-15 18:17:42 +02:00
Thread.cpp Fix Linux threading compile issues. 2016-06-06 19:26:47 +01:00
Thread.h Fix Linux threading compile issues. 2016-06-06 19:26:47 +01:00
Timer.cpp Initial commit 2016-01-14 18:45:04 +00:00
Timer.h Initial commit 2016-01-14 18:45:04 +00:00
UDPSocket.cpp Fix bugs in NXDN networking. 2018-02-13 19:07:30 +00:00
UDPSocket.h Fix assert error. 2016-04-04 17:00:59 +01:00
UMP.cpp Add CD LED functionality to MMDVMHost 2016-11-17 11:48:42 +01:00
UMP.h Add CD LED functionality to MMDVMHost 2016-11-17 11:48:42 +01:00
Utils.cpp First attempt at detecting D-Star data frames, Kenwood and Icom. 2018-11-12 11:57:34 +00:00
Utils.h First attempt at detecting D-Star data frames, Kenwood and Icom. 2018-11-12 11:57:34 +00:00
Version.h Bump the version date. 2019-01-31 08:25:49 +00:00
YSFControl.cpp Fix compile issue. 2019-02-12 20:45:03 +00:00
YSFControl.h Remove the old System Fusion SQL config option and processing. 2019-02-12 11:29:05 +00:00
YSFConvolution.cpp Change M to improve the decoding. 2016-04-21 11:17:20 +01:00
YSFConvolution.h Add more NXDN support files. 2018-01-17 21:21:25 +00:00
YSFDefines.h Fix remote gateway for DR-1X 2018-10-23 21:59:10 -03:00
YSFFICH.cpp Remove the old System Fusion SQL config option and processing. 2019-02-12 11:29:05 +00:00
YSFFICH.h Remove the old System Fusion SQL config option and processing. 2019-02-12 11:29:05 +00:00
YSFNetwork.cpp Add more intelligence to the remote control. 2019-01-15 21:45:29 +00:00
YSFNetwork.h Rename config file values (acc. to #ee93e4ce) 2017-11-09 23:17:25 +01:00
YSFPayload.cpp Add a dummy header when DN mode late entry occurs. 2017-08-14 16:13:56 +01:00
YSFPayload.h Add a dummy header when DN mode late entry occurs. 2017-08-14 16:13:56 +01:00
prebuild.cmd Fixed typo in generated header file and tested more 2017-03-10 03:32:00 +00:00

README.md

These are the source files for building the MMDVMHost, the program that interfaces to the MMDVM or DVMega on the one side, and a suitable network on the other. It supports D-Star, DMR, P25 Phase 1, NXDN, System Fusion, and POCSAG paging on the MMDVM, and D-Star, DMR, and System Fusion on the DVMega.

On the D-Star side the MMDVMHost interfaces with the ircDDB Gateway, on DMR it can connect to BrandMeister, DMR+, HB Link, XLX or DMRGateway (to connect to multiple DMR networks at once) on System Fusion it connects to the YSF Gateway to allow access to the FCS and YSF networks. On P25 it connects to the P25 Gateway. On NXDN it connects to the NXDN Gateway which provides access to the NXDN and NXCore talk groups. Finally it uses the DAPNET Gateway to access DAPNET to receive paging messages.

It builds on 32-bit and 64-bit Linux as well as on Windows using Visual Studio 2017 on x86 and x64. It can optionally control various Displays. Currently these are:

  • HD44780 (sizes 2x16, 2x40, 4x16, 4x20)
    • Support for HD44780 via 4 bit GPIO connection (user selectable pins)
    • Adafruit 16x2 LCD+Keypad Kits (I2C)
    • Connection via PCF8574 GPIO Extender (I2C)
  • Nextion TFTs (all sizes, both Basic and Enhanced versions)
  • TFT display sold by Hobbytronics in UK
  • OLED 128x64 (SSD1306)
  • LCDproc

The Nextion displays can connect to the UART on the Raspberry Pi, or via a USB to TTL serial converter like the FT-232RL. It may also be connected to the UART output of the MMDVM modem (Arduino Due, STM32, Teensy), or to the UART output on the UMP.

The HD44780 displays are integrated with wiringPi for Raspberry Pi based platforms.

The Hobbytronics TFT Display, which is a Pi-Hat, connects to the UART on the Raspbery Pi.

The OLED display needs a extra library see OLED.md

The LCDproc support enables the use of a multitude of other LCD screens. See the supported devices page on the LCDproc website for more info.

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.