The host program for the MMDVM
C++ C Other
Permalink
Failed to load latest commit information.
Images A better quality P25 logo. Sep 10, 2016
Nextion Add layouts for 4.3" Nextion displays Feb 13, 2017
TFTSerial Move TFTSerial images to their own directory. Mar 19, 2016
UMP Move LOCKOUT to pin 12 to accommodate the AltSoftSerial Library Nov 22, 2016
linux Added missing quotes in test cmd. Aug 21, 2016
.gitignore Correct the order of the YSF display argumemts. May 20, 2016
AMBEFEC.cpp A semi-working P25 repeater without much FEC. Sep 12, 2016
AMBEFEC.h A semi-working P25 repeater without much FEC. Sep 12, 2016
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 Add full frame file dumping. Feb 20, 2017
Conf.h Add full frame file dumping. Feb 20, 2017
DMRAccessControl.cpp Don't allow any TG0 data through. Jan 23, 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 Optional non Embedded LC data suppression Jan 16, 2017
DMRControl.h Optional non Embedded LC data suppression Jan 16, 2017
DMRData.cpp Alter the format of the returned RSSI data. Aug 11, 2016
DMRData.h Alter the format of the returned RSSI data. Aug 11, 2016
DMRDataHeader.cpp Increase number of data blocks for MD-390 GPS data. Nov 21, 2016
DMRDataHeader.h Add special data spacer/termination after data transmission. Feb 28, 2016
DMRDefines.h Display DMR embedded data. Dec 31, 2016
DMREMB.cpp Renamed DMR protocol files. Feb 15, 2016
DMREMB.h Renamed DMR protocol files. Feb 15, 2016
DMREmbeddedData.cpp Upgrade the Embedded Data regeneration. Jan 10, 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
DMRIDUpdate.sh Always output name column and satinize output Jan 13, 2017
DMRIds.dat Update the DMR Ids file. Feb 2, 2017
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 Load the DMR Id lookup table periodically. Oct 10, 2016
DMRLookup.h Load the DMR Id lookup table periodically. Oct 10, 2016
DMRNetwork.cpp Add RSSI display for all modes. Jan 5, 2017
DMRNetwork.h Add RSSI display for all modes. Jan 5, 2017
DMRShortLC.cpp Add more asserts to catch bugs. Mar 7, 2016
DMRShortLC.h Renamed DMR protocol files. Feb 15, 2016
DMRSlot.cpp Restore rate 3/4 data logging that was lost in the last commit. Feb 13, 2017
DMRSlot.h Add BER display to the Nextion and reduce Talker Id logging. Feb 12, 2017
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 an optional error reply for D-Star. Feb 16, 2017
DStarControl.h Add an optional error reply for D-Star. Feb 16, 2017
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 Changes for DVMega via the host. Mar 8, 2016
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 Add an optional error reply for D-Star. Feb 16, 2017
Display.cpp Fix formatting. Feb 13, 2017
Display.h Add BER display to the Nextion and reduce Talker Id logging. Feb 12, 2017
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 Still more LCD RSSI display fettling Jan 8, 2017
HD44780.h Add RSSI to (4-line) HD44780 displays Jan 6, 2017
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
LCDproc.cpp Fix compile error Jan 8, 2017
LCDproc.h Add RSSI to LCDproc displays Jan 6, 2017
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 Put in a dummy value for the new SamplesDir ini file entry. Feb 21, 2017
MMDVMHost.cpp Add full frame file dumping. Feb 20, 2017
MMDVMHost.h Add the host support for the UMP. Nov 3, 2016
MMDVMHost.sln Initial commit Jan 14, 2016
MMDVMHost.vcxproj Upgrade the Embedded Data regeneration. Jan 10, 2017
MMDVMHost.vcxproj.filters Upgrade the Embedded Data regeneration. Jan 10, 2017
Makefile Upgrade the Embedded Data regeneration. Jan 10, 2017
Makefile.Pi Upgrade the Embedded Data regeneration. Jan 10, 2017
Makefile.Pi.Adafruit Upgrade the Embedded Data regeneration. Jan 10, 2017
Makefile.Pi.HD44780 Upgrade the Embedded Data regeneration. Jan 10, 2017
Makefile.Pi.OLED Upgrade the Embedded Data regeneration. Jan 10, 2017
Makefile.Pi.PCF8574 Upgrade the Embedded Data regeneration. Jan 10, 2017
Makefile.Solaris Upgrade the Embedded Data regeneration. Jan 10, 2017
Modem.cpp Remove sync sample dumping. Feb 21, 2017
Modem.h Remove sync sample dumping. Feb 21, 2017
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
Nextion.cpp Make RSSI and BER display immediately on Nextion screens. Feb 13, 2017
Nextion.h Add BER display to the Nextion and reduce Talker Id logging. Feb 12, 2017
NullDisplay.cpp Add a status LED on the RPi to the Null display driver. Oct 18, 2016
NullDisplay.h Merge branch 'master' into P25 Sep 27, 2016
OLED.cpp Add D-Star Logo Nov 11, 2016
OLED.h Fix OLED header file (ref. b69336d) Nov 4, 2016
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 Add BER display to the Nextion and reduce Talker Id logging. Feb 12, 2017
P25Control.h Add RSSI display for all modes. Jan 5, 2017
P25Data.cpp Handle crashing P25 RS decoder better. Feb 16, 2017
P25Data.h Validate P25 RF late entry. Sep 27, 2016
P25Defines.h Simple P25 silence insertion. Sep 27, 2016
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 Handle the P25 low speed data. Sep 20, 2016
P25NID.h Handle the P25 low speed data. Sep 20, 2016
P25Network.cpp Alter and clean up the P25 network protocol. Nov 1, 2016
P25Network.h Simplify the P25 protocol. Nov 1, 2016
P25Utils.cpp Handle the P25 low speed data. Sep 20, 2016
P25Utils.h Handle the P25 low speed data. Sep 20, 2016
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 Jan 6, 2017
RS129.cpp Initial commit Jan 14, 2016
RS129.h Initial commit Jan 14, 2016
RS241213.cpp Correct range of loop for size of input data. Sep 28, 2016
RS241213.h Add LDU1 Reed-Solomon encoding and decoding. Sep 27, 2016
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 Add cstring for Solaris compilation. Aug 8, 2016
SerialController.h Allow the modem to host a serial display. Oct 6, 2016
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 Fix Linux compile issue. Jan 26, 2016
StopWatch.h Use gettimeofday on Linux for the StopWatch. Jan 24, 2016
Sync.cpp Start full host support got P25. Sep 8, 2016
Sync.h Start full host support got P25. Sep 8, 2016
TFTSerial.cpp Allow the modem to host a serial display. Oct 6, 2016
TFTSerial.h Allow the modem to host a serial display. Oct 6, 2016
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 assert error. Apr 4, 2016
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. Feb 6, 2017
YSFControl.cpp Remove unused variables Feb 13, 2017
YSFControl.h Add RSSI display for all modes. Jan 5, 2017
YSFConvolution.cpp Change M to improve the decoding. Apr 21, 2016
YSFConvolution.h Beginnings of System Fusion payload regeneration. Feb 28, 2016
YSFDefines.h Add silence infill for missing packets. Jul 12, 2016
YSFFICH.cpp Allow for remote System Fusion gateway operation. Sep 26, 2016
YSFFICH.h Allow for remote System Fusion gateway operation. Sep 26, 2016
YSFNetwork.cpp Fix sequence number bugs. Jun 13, 2016
YSFNetwork.h Fix sequence number bugs. Jun 13, 2016
YSFPayload.cpp Simplify YSF V/D mode 2 audio FEC regeneration. Jan 10, 2017
YSFPayload.h Revert "Rework YSF AMBE repetition FEC." Nov 22, 2016

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, and System Fusion.

On the D-Star side the MMDVMHost interfaces with the ircDDB Gateway, on DMR it can connect to BrandMeister, DMR+, or HB Link, on System Fusion it connects to the YSF Gateway. On P25 it connects to the P25 Gateway.

It builds on 32-bit and 64-bit Linux as well as on Windows using VS2015 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 (sizes 2.4", 2.8", 3.2" and 3.5")
  • TFT display sold by Hobbytronics in UK
  • OLED 128x64 (SSD1306)

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

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.