M17 hotspot

From M17 Foundation Wiki
Jump to navigation Jump to search

M17 hotspot

MMDVM with WPSD software

WPSD project page

CC1200-HAT as M17 hotspot set up guide

Guide how to set up CC1200_HAT-hw board with raspberrypi as M17 hotspot

Prepare raspberrypi

Write sdcard image - use official rpi-imager app or download image manually from official website and copy it with dd. 32bit is recommended if you use raspberry pi zero or zero 2 due to limited RAM.

dd method

Find out which device is microsd:
lsblk
edit of=/dev/sdX accordingly and run:
dd if=2025-05-13-raspios-bookworm-armhf-lite.img of=/dev/sdX bs=8192k status=progress; sync

Configure raspios

sudo raspi-config

  • wireless lan settings
  • serial port settings -> console no, serial yes

Edit config.txt with your favorite editor:
nano /boot/firmware/config.txt

add under [all]

[all]
dtoverlay=miniuart-bt

Or simply append to last line with:
sudo echo "dtoverlay=miniuart-bt" >> /boot/firmware/config.txt

Update system

sudo apt-get update && sudo apt-get upgrade

Flash firmware to CC1200_HAT-hw

Install dfu-util

sudo apt-get install dfu-util
or other command if you use non debian-based distro.

Download firmware repository

git clone https://github.com/M17-Project/CC1200_HAT-fw.git

Flash CC1200_HAT-fw

Connect CC1200-HAT to computer or raspberrypi via USB cable while holding PROG button, release the button and run:
dfu-util -a 0 -i 0 -s 0x08000000:leave -D ./CC1200_HAT-fw/Release/CC1200_HAT-fw.bin

Install git

sudo apt-get install git

Install dependencies

sudo apt-get install libzmq3-dev cmake libgpiod-dev

Optional dependency: Install Ham-DHT - Ppendht

Ham-DHT support on N7TAE mrefd github

Install libm17

On Jun 12, 2025, libm17 submodule was removed, so libm17 repo needs to be cloned separately.

Clone repository:
git clone https://github.com/M17-Project/libm17.git

Enter libm17 repository:
cd libm17/

Build and install libm17:

cmake -DCMAKE_INSTALL_PREFIX=/usr -B build  
cmake --build build  
sudo cmake --install build

Install rpi-interface

Clone repository and subrepositories(version before Jun 12,2025, with newer version jump to building rpi-interface):

git clone --recursive -j8 https://github.com/M17-Project/rpi-interface.git

Enter libm17 subrepository:
cd rpi-interface/libm17

Build and install libm17:

cmake -DCMAKE_INSTALL_PREFIX=/usr -B build
cmake --build build
sudo cmake --install build

Back into rpi-interface:
cd ..

Build rpi-interface:
make

Configuring rpi-interface

Copy config so we have original:
cp ./default_cfg.txt ./my_cfg.txt

Edit copied config:
nano my_cfg.txt

  • Set gpio pins as shown in example if you have CC1200_HAT-hw.
  • Set your call and m17 reflector. M17 reflectors list
  • Set log file anywhere else if you don't have dashboard
  • Frequency correction needs to be set with the SDR or spectrum analyser. Just compare frequency output of your hotspot vs radio.
#Main settings
#log_path="/var/www/html/files/log.txt" #log file for the dashboard
device="/dev/ttyAMA0"                   #UART port to use
speed=460800                            #UART's speed
node="N0CALL H"                         #callsign with a suffix
ipv4="152.70.192.70"                    #reflector's IPv4 address
port=17000                              #reflector's port
reflector="M17-M17"                     #reflector name
module="A"                              #module, single letter
nrst=21                                 #nRST pin
pa_en=18                                #PA enable pin (unused by the CC1200 HAT)
boot0=20                                #BOOT0 pin

#RF settings
tx_freq=433475000                       #Hz
rx_freq=433475000                       #Hz
freq_corr=0                             #frequency correction (integer)
tx_pwr=10.0                             #transmission power, dBm
afc=1                                   #automatic frequency control (0-off, 1-on)
#zmq_port=17017                         #ZMQ PUB port for the baseband signal