CC1200 Manual Installation

From M17 Foundation Wiki
Revision as of 13:12, 22 July 2025 by N1ADJ (talk | contribs) (Replace syntaxhighlight with pre)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

External Resources