M17 hotspot
M17 hotspot
MMDVM with WPSD software
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