MMDVM HotSpot: firmware for ZUMspot or MMDVM_HS based boards (D-Star, DMR, YSF, P25, NXDN and POCSAG)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Andy CA6JAU eed3e4877a
Duplex mode disabled by default
9 years ago
.gitignore Add STM32F10X_Lib directory to .gitignore 9 years ago
ADF7021.cpp Merge branch 'master' into duplex 9 years ago
ADF7021.h Merge branch 'master' into duplex 9 years ago
BUILD.md Adding “test modes” documentation 9 years ago
BitRB.cpp Adapting original duplex DMR code to MMDVM_HS 9 years ago
BitRB.h Adapting original duplex DMR code to MMDVM_HS 9 years ago
Config.h Duplex mode disabled by default 9 years ago
DMRDMORX.cpp Adding Jonathan G4KLX run-time debugging option 9 years ago
DMRDMORX.h Adding RSSI support for ADF7021, and RSSI for DStar and DMR 9 years ago
DMRDMOTX.cpp Adding Jonathan G4KLX run-time debugging option 9 years ago
DMRDMOTX.h Reverting TX continuous mode in DMR DMO 9 years ago
DMRDefines.h First commit 9 years ago
DMRIdleRX.cpp Fix bits to bytes conversion in DMRIdle 9 years ago
DMRIdleRX.h Adapting original duplex DMR code to MMDVM_HS 9 years ago
DMRRX.cpp Changing 2 slot RX to 1 slot RX only in DMR duplex mode 9 years ago
DMRRX.h Changing 2 slot RX to 1 slot RX only in DMR duplex mode 9 years ago
DMRSlotRX.cpp Adding run-time debugging for duplex mode 9 years ago
DMRSlotRX.h Changing 2 slot RX to 1 slot RX only in DMR duplex mode 9 years ago
DMRSlotType.cpp First commit 9 years ago
DMRSlotType.h First commit 9 years ago
DMRTX.cpp Adding run-time debugging for duplex mode 9 years ago
DMRTX.h Adapting original duplex DMR code to MMDVM_HS 9 years ago
DStarDefines.h First commit 9 years ago
DStarRX.cpp Adding Jonathan G4KLX run-time debugging option 9 years ago
DStarRX.h Adding RSSI support for ADF7021, and RSSI for DStar and DMR 9 years ago
DStarTX.cpp Adding Jonathan G4KLX run-time debugging option 9 years ago
DStarTX.h Fix serial port bug and several small changes 9 years ago
Debug.h Adding Jonathan G4KLX run-time debugging option 9 years ago
Globals.h Merge branch 'devel' into duplex 9 years ago
IO.cpp Merge branch 'master' into duplex 9 years ago
IO.h Merge branch 'master' into duplex 9 years ago
IOArduino.cpp Merge branch 'master' into duplex 9 years ago
IOSTM.cpp Merge branch 'master' into duplex 9 years ago
LICENCE First commit 9 years ago
MMDVM_HS.cpp Merge branch 'master' into duplex 9 years ago
MMDVM_HS.ino Merge branch 'master' into duplex 9 years ago
Makefile Adding Florian DF2ET fix Makefile and Windows compatibility 9 years ago
P25Defines.h First commit 9 years ago
P25RX.cpp Adding Jonathan G4KLX run-time debugging option 9 years ago
P25RX.h Adding RSSI support for P25 9 years ago
P25TX.cpp Adding Jonathan G4KLX run-time debugging option 9 years ago
P25TX.h Fix serial port bug and several small changes 9 years ago
README.md Adding more info to README 9 years ago
SerialArduino.cpp Adding support for USART1 LCD to STM32duino 9 years ago
SerialPort.cpp Merge branch 'master' into duplex 9 years ago
SerialPort.h Revert "Adding Jonathan’s ring buffer to serial repeater" 9 years ago
SerialRB.cpp First commit 9 years ago
SerialRB.h First commit 9 years ago
SerialSTM.cpp Small changes 9 years ago
Utils.cpp First commit 9 years ago
Utils.h First commit 9 years ago
YSFDefines.h First commit 9 years ago
YSFRX.cpp Adding Jonathan G4KLX run-time debugging option 9 years ago
YSFRX.h Adding RSSI support for YSF 9 years ago
YSFTX.cpp Adding Jonathan G4KLX run-time debugging option 9 years ago
YSFTX.h Fix serial port bug and several small changes 9 years ago
bootloader.ld Adding USB bootloader support 9 years ago
normal.ld Adding USB bootloader support 9 years ago
stm32f10x_link.ld Adding USB bootloader support 9 years ago

README.md

Introduction

This is the source code of ZUMspot, personal hotspot (ADF7021 version of the MMDVM firmware), based on Jonathan G4KLX's MMDVM software. This firmware supports D-Star, DMR, System Fusion and P25 digital modes.

This software is intended to be run on STM32F103 microcontroller. You can build this code using Arduino IDE with STM32duino package, or using "make" with ARM GCC tools. Also, Arduino with 3.3 V I/O (Arduino Due and Zero) and Teensy (3.1, 3.2, 3.5 or 3.6) are supported.

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.

Features

  • Supported modes: D-Star, DMR, Yaesu Fusion and P25 Phase 1
  • Automatic mode detection (scanning)
  • G4KLX software suite: MMDVMHost, ircDDBGateway, YSFGateway, P25Gateway and DMRGateway
  • Bands: 144, 220, 430 and 900 MHz (VHF requires external inductor)
  • Status LEDs (PTT, COR and digital modes)
  • Serial repeater port for Nextion displays
  • Support for native USB port in STM32F103 CPU

Important notes

The ADF7021 (or RF7021SE module) must operate with a 14.7456 MHz TCXO and with at least 2 ppm of frequency stability. You could use also 12.2880 MHz TCXO, but this frequency configuration has less testing. Any other TCXO frequency is not supported.

The jumper wire to CLKOUT in RF7021SE module is not longer required for lastest MMDVM_HS firmware. But CE pin connection of ADF7021 is required for proper operation of ZUMspot.

Be aware that some Blue Pill STM32F103 board are defectives. If you have trouble with USB, please check this: http://wiki.stm32duino.com/index.php?title=Blue_Pill

VHF (144-148 MHz) support for ZUMSpot is added by an external 18 nH inductor between L1 and L2 pins of ADF7021.

If you can't decode any 4FSK modulation (DMR, YSF and P25) with your ZUMspot, the common solution is to adjust RX frequency offset (RXOffset) in your MMDVM.ini file. Please try with steps of +-100 Hz until you get low BER. If you don't have test equipment, the only procedure is trial and error. In some cases TXOffset adjustment is also required for proper radio decoding.

Quick start

Please see BUILD.md for more details, and also MMDVM Yahoo Groups.

ZUMspot Libre Kit (under Linux Raspbian)

Install the necessary software tools:

sudo apt-get update
sudo apt-get install gcc-arm-none-eabi gdb-arm-none-eabi libstdc++-arm-none-eabi-newlib libnewlib-arm-none-eabi

Download the sources:

cd ~
git clone https://github.com/juribeparada/MMDVM_HS
cd MMDVM_HS/
git clone https://github.com/juribeparada/STM32F10X_Lib

Build the firmware with USB bootloader support (the default Config.h is OK for Libre Kit):

make bl

Upload the firmware to ZUMspot Libre Kit using the USB port (your Libre Kit has the bootloader already installed):

sudo make dfu devser=/dev/ttyACM0

ZUMspot RPi

Enable serial port in Raspberry Pi 3 or Pi Zero W

This this necessary only if you are installing a fresh copy of Raspbian OS.

Edit /boot/cmdline.txt:

sudo nano /boot/cmdline.txt
(remove the text: console=serial0,115200)

Disable services:

sudo systemctl disable serial-getty@ttyAMA0.service
sudo systemctl disable bluetooth.service

Edit /boot/config.txt

sudo nano /boot/config.txt

and add the following lines at the end of /boot/config.txt:

enable_uart=1
dtoverlay=pi3-disable-bt

Reboot your RPi:

sudo reboot

Build de firmware and upload to ZUMspot RPi

Install the necessary software tools:

sudo apt-get update
sudo apt-get install gcc-arm-none-eabi gdb-arm-none-eabi libstdc++-arm-none-eabi-newlib libnewlib-arm-none-eabi

cd ~
git clone https://git.code.sf.net/p/stm32flash/code stm32flash
cd stm32flash
make
sudo make install

Download the firmware sources:

cd ~
git clone https://github.com/juribeparada/MMDVM_HS
cd MMDVM_HS/
git clone https://github.com/juribeparada/STM32F10X_Lib

Edit Config.h

nano Config.h

and enable:

#define PI_HAT_7021_REV_03
#define ENABLE_ADF7021
#define BIDIR_DATA_PIN
#define ADF7021_14_7456
#define STM32_USART1_HOST
#define ENABLE_SCAN_MODE

Build the firmware:

make

Upload the firmware to ZUMspot RPi board:

sudo make zumspot-pi

Powered by TurnKey Linux.