The host program for the MMDVM
Clone or download
Latest commit 87c76ff Sep 16, 2018
Permalink
Failed to load latest commit information.
Images Better YSF image Aug 12, 2018
Nextion_DB2OE Add DB2OE Nextion layouts. Aug 20, 2017
Nextion_G4KLX Better YSF image Aug 12, 2018
Nextion_ON7LDS Add more dynamic variables and fix command manging Sep 5, 2018
RSSI Create RSSI_FC-302_RptrBldrV2.dat Feb 4, 2018
TFTSerial Change the NXDN image to be less garish. Jan 22, 2018
UMP nitial commit of POCSAG files. Jun 7, 2018
linux Change URL database DMR ID May 29, 2018
.gitignore corrected case Mar 10, 2017
AMBEFEC.cpp Re-add the audio blanking for too corrupt audio in DMR, NXDN and YSFDN Mar 7, 2018
AMBEFEC.h Re-add the audio blanking for too corrupt audio in DMR, NXDN and YSFDN Mar 7, 2018
BCH.cpp Change the semantics of the NID processor. Sep 19, 2016
BCH.h Add the P25 NID BCH encoder. Sep 19, 2016
BPTC19696.cpp Add new Hamming for YSF. Apr 19, 2016
BPTC19696.h Initial commit Jan 14, 2016
CRC.cpp Decode and encode the System Fusion FICH. Feb 23, 2016
CRC.h Decode and encode the System Fusion FICH. Feb 23, 2016
Conf.cpp Minor code beauty Sep 14, 2018
Conf.h Minor code beauty Sep 14, 2018
DMRAccessControl.cpp Cleanup the access control slightly. Jul 16, 2017
DMRAccessControl.h Add RSSI display for all modes. Jan 5, 2017
DMRCSBK.cpp Increase CSBK debugging data level. Dec 12, 2016
DMRCSBK.h Add extra Preamble CSBK data dumping. Dec 11, 2016
DMRControl.cpp Roll back the jitter buffer changes. Feb 8, 2018
DMRControl.h Roll back the jitter buffer changes. Feb 8, 2018
DMRData.cpp Roll back the jitter buffer changes. Feb 8, 2018
DMRData.h Roll back the jitter buffer changes. Feb 8, 2018
DMRDataHeader.cpp Remove unused code. May 19, 2017
DMRDataHeader.h Remove unneeded code. May 15, 2017
DMRDefines.h Change of the DMR Silence Data for AMBE+2 silence pattern Feb 9, 2018
DMREMB.cpp Renamed DMR protocol files. Feb 15, 2016
DMREMB.h Renamed DMR protocol files. Feb 15, 2016
DMREmbeddedData.cpp Fixing last byte of Embedded Data Apr 5, 2017
DMREmbeddedData.h Upgrade the Embedded Data regeneration. Jan 10, 2017
DMRFullLC.cpp Finally fix the (re)generation of Full LC PDUs. Feb 22, 2016
DMRFullLC.h Renamed DMR protocol files. Feb 15, 2016
DMRIds.dat The latest DMR Ids file. Mar 21, 2018
DMRLC.cpp Add more asserts to catch bugs. Mar 7, 2016
DMRLC.h Finally fix the (re)generation of Full LC PDUs. Feb 22, 2016
DMRLookup.cpp Camel case findWithName() Apr 13, 2018
DMRLookup.h Camel case findWithName() Apr 13, 2018
DMRNetwork.cpp Clean up the merged code. Jul 4, 2018
DMRNetwork.h FIX DMRNewtork infinite failure on domain name resolve Jul 3, 2018
DMRShortLC.cpp Add more asserts to catch bugs. Mar 7, 2016
DMRShortLC.h Renamed DMR protocol files. Feb 15, 2016
DMRSlot.cpp Drop duplicate and out-of-sequence DMR audio frames from RF Jul 22, 2018
DMRSlot.h Drop duplicate and out-of-sequence DMR audio frames from RF Jul 22, 2018
DMRSlotType.cpp Renamed DMR protocol files. Feb 15, 2016
DMRSlotType.h Renamed DMR protocol files. Feb 15, 2016
DMRTrellis.cpp Improve the FEC reconstruction a little. Jul 19, 2016
DMRTrellis.h Improve the FEC reconstruction a little. Jul 19, 2016
DMRplus_startup_options.md how to work with the Options-settings Nov 11, 2016
DStarControl.cpp Add select ack message dstar Sep 14, 2018
DStarControl.h Oversight Sep 14, 2018
DStarDefines.h Improve silence insertion. Jul 11, 2016
DStarHeader.cpp Remobe AMBE regeneration on data packets. Oct 5, 2016
DStarHeader.h Remobe AMBE regeneration on data packets. Oct 5, 2016
DStarNetwork.cpp Clean up the merged code. Jul 4, 2018
DStarNetwork.h Changes for DVMega via the host. Mar 8, 2016
DStarSlowData.cpp Fix the CCITT16 checksums for CSBK, DMR Data and D-Star Headers. Feb 18, 2016
DStarSlowData.h Add the status ack to D-Star. Feb 1, 2016
Defines.h Better way to send to display that MMDVMHost is quitting Aug 15, 2018
Display.cpp Add more dynamic variables and fix command manging Sep 5, 2018
Display.h Better way to send to display that MMDVMHost is quitting Aug 15, 2018
Dockerfile Remove Log repertory Jan 4, 2018
Golay2087.cpp Initial commit Jan 14, 2016
Golay2087.h Initial commit Jan 14, 2016
Golay24128.cpp The beginnings of simple System Fusion support. Feb 4, 2016
Golay24128.h The beginnings of simple System Fusion support. Feb 4, 2016
HD44780.cpp Better way to send to display that MMDVMHost is quitting Aug 15, 2018
HD44780.h Better way to send to display that MMDVMHost is quitting Aug 15, 2018
HD44780.layouts D-Star: Redesign HD44780 layouts Sep 29, 2016
Hamming.cpp More work with decoding and regenerating P25. Sep 13, 2016
Hamming.h More work with decoding and regenerating P25. Sep 13, 2016
I2CController.cpp Clean up the code for Windows and style. Jul 30, 2018
I2CController.h Clean up the code for Windows and style. Jul 30, 2018
ISSUES.txt Update a bit of documentation. Jan 17, 2018
LCDproc.cpp Better way to send to display that MMDVMHost is quitting Aug 15, 2018
LCDproc.h Better way to send to display that MMDVMHost is quitting Aug 15, 2018
LICENCE Initial commit Jan 14, 2016
Log.cpp Increase log file path variable. Oct 13, 2016
Log.h Modify the logging system greatly. Mar 7, 2016
MMDVM.ini Add select ack message dstar Sep 14, 2018
MMDVMHost.cpp Add select ack message dstar Sep 14, 2018
MMDVMHost.h Move display creation from main class to static CDisplay::create() Jul 31, 2018
MMDVMHost.sln Initial commit Jan 14, 2016
MMDVMHost.vcxproj Clean up the code for Windows and style. Jul 30, 2018
MMDVMHost.vcxproj.filters Clean up the code for Windows and style. Jul 30, 2018
Makefile Clean up the code for Windows and style. Jul 30, 2018
Makefile.Pi Clean up the code for Windows and style. Jul 30, 2018
Makefile.Pi.Adafruit Clean up the code for Windows and style. Jul 30, 2018
Makefile.Pi.HD44780 Clean up the code for Windows and style. Jul 30, 2018
Makefile.Pi.OLED Clean up the code for Windows and style. Jul 30, 2018
Makefile.Pi.PCF8574 Clean up the code for Windows and style. Jul 30, 2018
Makefile.Solaris nitial commit of POCSAG files. Jun 7, 2018
Modem.cpp Process data from display to MMDVMHost (serial pass-through & transpa… Sep 13, 2018
Modem.h Process data from display to MMDVMHost (serial pass-through & transpa… Sep 13, 2018
ModemSerialPort.cpp Allow the modem to host a serial display. Oct 6, 2016
ModemSerialPort.h Allow the modem to host a serial display. Oct 6, 2016
Mutex.cpp Add the Mutex class. Oct 6, 2016
Mutex.h Add the Mutex class. Oct 6, 2016
NXDN.csv Add the latest NXDN Id file. Mar 22, 2018
NXDNAudio.cpp Simplify the NXDN audio decoding. Mar 7, 2018
NXDNAudio.h Start on the NXDN Icom network audio handling. Feb 19, 2018
NXDNCRC.cpp Revert "Rework the LICH parity." Mar 20, 2018
NXDNCRC.h Revert "Rework the LICH parity." Mar 20, 2018
NXDNControl.cpp Minor bug fix. Jun 11, 2018
NXDNControl.h Insert the correct bytes for data transmissions in the Icom protocol. May 17, 2018
NXDNConvolution.cpp Fix file attributes for source files. Jun 13, 2018
NXDNConvolution.h Add more NXDN support files. Jan 17, 2018
NXDNDefines.h Allow more control over NXDN networking. Mar 12, 2018
NXDNFACCH1.cpp Add raw data accessors to the channel data classes. Feb 21, 2018
NXDNFACCH1.h Add raw data accessors to the channel data classes. Feb 21, 2018
NXDNLICH.cpp Simplify the LICH processing. Mar 21, 2018
NXDNLICH.h Simplify the LICH processing. Mar 21, 2018
NXDNLayer3.cpp Add correct LICH direction to match Icom repeaters. May 23, 2018
NXDNLayer3.h Begin handling Icom format network frames. Work in progress. Feb 15, 2018
NXDNLookup.cpp New NXDN Id lookup file. Feb 6, 2018
NXDNLookup.h Add more NXDN support files. Jan 17, 2018
NXDNNetwork.cpp Insert the correct bytes for data transmissions in the Icom protocol. May 17, 2018
NXDNNetwork.h Insert the correct bytes for data transmissions in the Icom protocol. May 17, 2018
NXDNSACCH.cpp Fix file attributes for source files. Jun 13, 2018
NXDNSACCH.h Add raw data accessors to the channel data classes. Feb 21, 2018
NXDNUDCH.cpp Insert the correct bytes for data transmissions in the Icom protocol. May 17, 2018
NXDNUDCH.h Add raw data accessors to the channel data classes. Feb 21, 2018
NetworkInfo.cpp OLED Display - Add IP address to display format Apr 7, 2018
NetworkInfo.h Reformat code and make small alterations. Nov 15, 2017
Nextion.cpp Process data from display to MMDVMHost (serial pass-through & transpa… Sep 13, 2018
Nextion.h Clean up the code to remove warnings. Sep 6, 2018
NullDisplay.cpp Better way to send to display that MMDVMHost is quitting Aug 15, 2018
NullDisplay.h Better way to send to display that MMDVMHost is quitting Aug 15, 2018
OLED.cpp Better way to send to display that MMDVMHost is quitting Aug 15, 2018
OLED.h Better way to send to display that MMDVMHost is quitting Aug 15, 2018
OLED.md Added manual for oled driver installation May 10, 2016
P25Audio.cpp Fix obvious mistake in P25 network audio. Oct 3, 2016
P25Audio.h Add the IMBE packing/unpacking code. Sep 21, 2016
P25Control.cpp Fix other crashes Aug 20, 2018
P25Control.h Fix commit with bad line endings. May 14, 2018
P25Data.cpp Fix commit with bad line endings. May 14, 2018
P25Data.h Fix whitespace and tabbing. Fix missing closing brace. May 14, 2018
P25Defines.h Fix commit with bad line endings. May 14, 2018
P25LowSpeedData.cpp Finish off the basics of the P25 network handling. Sep 22, 2016
P25LowSpeedData.h Finish off the basics of the P25 network handling. Sep 22, 2016
P25NID.cpp Fix other crashes Aug 20, 2018
P25NID.h Oops! Forgot the P25 NID changes for the TSDU datatype. May 14, 2018
P25Network.cpp More P25 network data changes. Oct 31, 2017
P25Network.h Simplify the P25 protocol. Nov 1, 2016
P25Trellis.cpp Fix P25 data reception, regeneration, and transmission. Jan 16, 2018
P25Trellis.h Progress on P25 data. Jan 4, 2018
P25Utils.cpp Fix the P25 PDU transmit length. Jan 17, 2018
P25Utils.h Fix the P25 PDU transmit length. Jan 17, 2018
POCSAGControl.cpp Fix other crashes Aug 20, 2018
POCSAGControl.h Handle numeric messages correctly. Jun 13, 2018
POCSAGDefines.h Add POCSAG processing and display code. Jun 11, 2018
POCSAGNetwork.cpp Add POCSAG processing and display code. Jun 11, 2018
POCSAGNetwork.h nitial commit of POCSAG files. Jun 7, 2018
QR1676.cpp Initial commit Jan 14, 2016
QR1676.h Initial commit Jan 14, 2016
README.HD44780 Fix README.HD44780 Backlight Power Supply Dec 25, 2016
README.daemon Added reference to full path for DMRIds.dat May 5, 2016
README.md Update README.md Aug 20, 2018
RS129.cpp Initial commit Jan 14, 2016
RS129.h Initial commit Jan 14, 2016
RS241213.cpp Fixing occasional MMDVMHost crash when receiving P25 RF data with hig… Mar 21, 2017
RS241213.h Fixing occasional MMDVMHost crash when receiving P25 RF data with hig… Mar 21, 2017
RSSI.dat Use a linear interpolator for the reported RSSI values. Dec 21, 2016
RSSIInterpolator.cpp Type correction. Dec 22, 2016
RSSIInterpolator.h Use a linear interpolator for the reported RSSI values. Dec 21, 2016
RingBuffer.h Attempt to recover from ring buffer overflows (#141) Sep 23, 2016
SHA256.cpp Initial commit Jan 14, 2016
SHA256.h Use C++11 <cstdint> on Windows. Jan 14, 2016
SerialController.cpp Extract I2C logic from SerialController to separate class Jul 30, 2018
SerialController.h Extract I2C logic from SerialController to separate class Jul 30, 2018
SerialPort.cpp Allow the modem to host a serial display. Oct 6, 2016
SerialPort.h Allow the modem to host a serial display. Oct 6, 2016
StopWatch.cpp Simplify the new stopwatch code. Jul 15, 2018
StopWatch.h Simplify the new stopwatch code. Jul 15, 2018
Sync.cpp More superficial NXDN work. Jan 11, 2018
Sync.h More superficial NXDN work. Jan 11, 2018
TFTSerial.cpp Better way to send to display that MMDVMHost is quitting Aug 15, 2018
TFTSerial.h Better way to send to display that MMDVMHost is quitting Aug 15, 2018
Thread.cpp Fix Linux threading compile issues. Jun 6, 2016
Thread.h Fix Linux threading compile issues. Jun 6, 2016
Timer.cpp Initial commit Jan 14, 2016
Timer.h Initial commit Jan 14, 2016
UDPSocket.cpp Fix bugs in NXDN networking. Feb 13, 2018
UDPSocket.h Fix assert error. Apr 4, 2016
UMP.cpp Add CD LED functionality to MMDVMHost Nov 17, 2016
UMP.h Add CD LED functionality to MMDVMHost Nov 17, 2016
Utils.cpp Add more asserts to catch bugs. Mar 7, 2016
Utils.h Initial commit Jan 14, 2016
Version.h Bump the version date. Sep 16, 2018
YSFControl.cpp Remove the RSSI debug message if nothing interesting to show. Mar 6, 2018
YSFControl.h Add extra FCS data extraction and fix remote gateway operation on YSF. Feb 27, 2018
YSFConvolution.cpp Change M to improve the decoding. Apr 21, 2016
YSFConvolution.h Add more NXDN support files. Jan 17, 2018
YSFDefines.h Handle the new firmware version better. Sep 16, 2017
YSFFICH.cpp Rebuild broken FICHs. Aug 14, 2017
YSFFICH.h Rebuild broken FICHs. Aug 14, 2017
YSFNetwork.cpp Rename config file values (acc. to #ee93e4ce) Nov 9, 2017
YSFNetwork.h Rename config file values (acc. to #ee93e4ce) Nov 9, 2017
YSFPayload.cpp Add a dummy header when DN mode late entry occurs. Aug 14, 2017
YSFPayload.h Add a dummy header when DN mode late entry occurs. Aug 14, 2017
prebuild.cmd Fixed typo in generated header file and tested more Mar 10, 2017

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.