CC1200 Manual Installation
Manual Installation Guide for CC1200 Hotspot (Raspberry Pi)
This guide walks through manually performing all steps handled by the cc1200-hotspot-installer.sh script. Use this if you'd prefer or need to set up the hotspot without running the installer.
1. Pre-Installation Checks
- Ensure you're running as root or using sudo.
- Verify you are using a fresh Raspberry Pi OS Lite (Bookworm, 64-bit).
2. Enable UART and Configure GPIO
Edit the boot configuration file:
sudo nano /boot/firmware/config.txt
Add this line (if not already present):
dtoverlay=miniuart-bt
Then reboot:
sudo reboot
3. Update and Upgrade System
Update and upgrade the system:
sudo apt update && sudo apt upgrade -y
Optionally reboot:
sudo reboot
4. Install Required Packages
Install the required system packages:
sudo apt install -y git build-essential cmake libtool pkg-config \
php-fpm nginx stm32flash
5. Create the m17 User
sudo useradd -m -s /bin/bash m17
6. Clone and Build the Software
Switch to the m17 user:
sudo -u m17 -H bash
libm17
git clone https://github.com/M17-Project/libm17.git
cd libm17
mkdir build && cd build
cmake ..
make
sudo make install
sudo ldconfig
rpi-interface
git clone https://github.com/M17-Project/rpi-interface.git
cd rpi-interface
mkdir build && cd build
cmake ..
make
sudo make install
CC1200_HAT-fw (optional firmware)
git clone https://github.com/M17-Project/CC1200_HAT-fw.git
rpi-dashboard
git clone https://github.com/M17-Project/rpi-dashboard.git
cd rpi-dashboard
mkdir build && cd build
cmake ..
make
sudo make install
7. Flash the CC1200 Firmware (Optional)
Use this only if flashing is needed:
stm32flash -v -R -i "-20&-21&20,21,:-20,-21,21" \
-w CC1200_HAT-fw.bin /dev/ttyAMA0
You may need to export GPIOs manually depending on your board.
8. Set Up the Web Dashboard
Place the dashboard files in a web-accessible directory (e.g., `/var/www/html/m17`) and configure Nginx to serve them. Make sure PHP-FPM is enabled in your Nginx site config.
9. Create systemd Service for rpi-interface
Create the following file:
/etc/systemd/system/rpi-interface.service
With the following content:
[Unit]
Description=M17 rpi-interface service
After=network.target
[Service]
User=m17
ExecStart=/usr/local/bin/rpi-interface
Restart=on-failure
[Install]
WantedBy=multi-user.target
Then enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable rpi-interface
sudo systemctl start rpi-interface
10. Final Reboot and Testing
Reboot the Pi:
sudo reboot
After rebooting:
- Check the service:
systemctl status rpi-interface
- Open the dashboard in a browser:
http://<raspberrypi-ip>/m17
- Ensure the CC1200 is responding (radio traffic, logs, etc.)
Summary Table
| Automated Task | Manual Equivalent |
|---|---|
| Root & OS check | Confirm `sudo`, check `/etc/os-release` |
| UART + GPIO config | Edit `config.txt`, reboot |
| Update system | `apt update && apt upgrade` |
| Install dependencies | `apt install ...` |
| Create m17 user | `useradd -m -s /bin/bash m17` |
| Clone & build projects | `git clone`, `cmake`, `make`, `make install` |
| Flash firmware | `stm32flash -w ...` |
| Dashboard setup | Nginx + PHP config |
| systemd setup | Create .service file, enable + start |
| Reboot and test | `reboot`, check services and dashboard |