The host program for the MMDVM
Branch: master
Clone or download
Latest commit 0dd446e Feb 12, 2019
Permalink
Type Name Latest commit message Commit time
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 Fix execute permissions on DMR ID updates from BM. Oct 3, 2018
.gitignore Fix some bugs Jan 8, 2019
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 Remove the old System Fusion SQL config option and processing. Feb 12, 2019
Conf.h Remove the old System Fusion SQL config option and processing. Feb 12, 2019
DMRAccessControl.cpp Cleanup the access control slightly. Jul 16, 2017
DMRAccessControl.h Add RSSI display for all modes. Jan 5, 2017
DMRCSBK.cpp Extend preamble length for network CSBK preamble Sep 23, 2018
DMRCSBK.h Extend preamble length for network CSBK preamble Sep 23, 2018
DMRControl.cpp Reset the mode's state machines when going to the disabled state. Jan 19, 2019
DMRControl.h Reset the mode's state machines when going to the disabled state. Jan 19, 2019
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 Update the DMR Ids. Oct 3, 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 Add more intelligence to the remote control. Jan 15, 2019
DMRNetwork.h Add the beginnings of mobile hotspot location. Oct 30, 2018
DMRShortLC.cpp Add more asserts to catch bugs. Mar 7, 2016
DMRShortLC.h Renamed DMR protocol files. Feb 15, 2016
DMRSlot.cpp Stop any response from any mode when not enabled. Jan 20, 2019
DMRSlot.h Reset the mode's state machines when going to the disabled state. Jan 19, 2019
DMRSlotType.cpp Renamed DMR protocol files. Feb 15, 2016
DMRSlotType.h Renamed DMR protocol files. Feb 15, 2016
DMRTA.cpp Fixed incorrect DMRTA header packet length from RF side Dec 9, 2018
DMRTA.h Fixed incorrect DMRTA header packet length from RF side Dec 9, 2018
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 Remove redundant code. Jan 31, 2019
DStarControl.h Reset the mode's state machines when going to the disabled state. Jan 19, 2019
DStarDefines.h Remove more redundant code. Jan 31, 2019
DStarHeader.cpp Remobe AMBE regeneration on data packets. Oct 5, 2016
DStarHeader.h Remobe AMBE regeneration on data packets. Oct 5, 2016
DStarNetwork.cpp Add more intelligence to the remote control. Jan 15, 2019
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 Extract the DMR talker alias decode logic from Display.cpp Dec 8, 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 remote control interface. Jan 7, 2019
MMDVMHost.cpp Remove the old System Fusion SQL config option and processing. Feb 12, 2019
MMDVMHost.h Allow for optional fixed modes. Inspired by Adrian VK4TUX. Jan 22, 2019
MMDVMHost.sln Add VS2017 files for Remote Command. Jan 19, 2019
MMDVMHost.vcxproj Add remote control interface. Jan 7, 2019
MMDVMHost.vcxproj.filters Add remote control interface. Jan 7, 2019
Makefile Fix some bugs Jan 8, 2019
Makefile.Pi Roll through Makefile fixes. Jan 8, 2019
Makefile.Pi.Adafruit Roll through Makefile fixes. Jan 8, 2019
Makefile.Pi.HD44780 Roll through Makefile fixes. Jan 8, 2019
Makefile.Pi.OLED Roll through Makefile fixes. Jan 8, 2019
Makefile.Pi.PCF8574 Roll through Makefile fixes. Jan 8, 2019
Makefile.Solaris Roll through Makefile fixes. Jan 8, 2019
MobileGPS.cpp Fix Windows compile warnings. Nov 6, 2018
MobileGPS.h Add MobileGPS support for DMR. Nov 6, 2018
Modem.cpp Merge branch 'master' of https://github.com/g4klx/MMDVMHost Dec 10, 2018
Modem.h Add NullModem support Dec 7, 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 Update the NXDN IDs from radioid. Oct 3, 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 Stop any response from any mode when not enabled. Jan 20, 2019
NXDNControl.h Reset the mode's state machines when going to the disabled state. Jan 19, 2019
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 Add more intelligence to the remote control. Jan 15, 2019
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
NullModem.cpp Add NullModem support Dec 7, 2018
NullModem.h Add NullModem support Dec 7, 2018
OLED.cpp Fix argument name to new DMR info modem call. Nov 1, 2018
OLED.h Integrate the new messages into the OLED display driver. Oct 31, 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 Stop any response from any mode when not enabled. Jan 20, 2019
P25Control.h Reset the mode's state machines when going to the disabled state. Jan 19, 2019
P25Data.cpp Revert "Merge pull request #462 from gatekeep/master" Nov 12, 2018
P25Data.h Revert "Merge pull request #462 from gatekeep/master" Nov 12, 2018
P25Defines.h Revert "Merge pull request #462 from gatekeep/master" Nov 12, 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 Add more intelligence to the remote control. Jan 15, 2019
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 silly bug. Jan 23, 2019
POCSAGControl.h Restructure POCSAG code to allow for two input data streams. Jan 23, 2019
POCSAGDefines.h Add POCSAG processing and display code. Jun 11, 2018
POCSAGNetwork.cpp Add more intelligence to the remote control. Jan 15, 2019
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 Revert "Merge pull request #462 from gatekeep/master" Nov 12, 2018
RS241213.h Revert "Merge pull request #462 from gatekeep/master" Nov 12, 2018
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
RemoteCommand.cpp Remove need for quotes around the command. Jan 10, 2019
RemoteCommand.h Add example remote command program. Jan 7, 2019
RemoteCommand.vcxproj Add VS2017 files for Remote Command. Jan 19, 2019
RemoteCommand.vcxproj.filters Add VS2017 files for Remote Command. Jan 19, 2019
RemoteControl.cpp Beginnings of allowing for local POCSAG message transmissions. Jan 22, 2019
RemoteControl.h Beginnings of allowing for local POCSAG message transmissions. Jan 22, 2019
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 First attempt at detecting D-Star data frames, Kenwood and Icom. Nov 12, 2018
Utils.h First attempt at detecting D-Star data frames, Kenwood and Icom. Nov 12, 2018
Version.h Bump the version date. Jan 31, 2019
YSFControl.cpp Fix compile issue. Feb 12, 2019
YSFControl.h Remove the old System Fusion SQL config option and processing. Feb 12, 2019
YSFConvolution.cpp Change M to improve the decoding. Apr 21, 2016
YSFConvolution.h Add more NXDN support files. Jan 17, 2018
YSFDefines.h Fix remote gateway for DR-1X Oct 24, 2018
YSFFICH.cpp Remove the old System Fusion SQL config option and processing. Feb 12, 2019
YSFFICH.h Remove the old System Fusion SQL config option and processing. Feb 12, 2019
YSFNetwork.cpp Add more intelligence to the remote control. Jan 15, 2019
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.