# HamPi post-install notes

## First boot checklist

1. Confirm devices:
   ```bash
   ls -l /dev/aioc-serial /dev/gps
   arecord -l
   cgps -s
   ```
2. `ham status` — services and ports
3. Start preferred modem: `ham graywolf` or `ham direwolf`
4. **Graywolf web UI** (port 8080):
   - Audio device = AIOC (`hw:0,0` or named aioc), channel 0 (mono)
   - Modem-backed channel, AFSK 1200
   - Enable **AGW** (for Pat) on `127.0.0.1:8000`
   - Enable **KISS TCP** server on `127.0.0.1:8001`, local only
   - Optional iGate: APRS-IS filter e.g. `r/47.0824/-109.3946/100`
5. **Pat** (port 8081): confirm AGWPE → `localhost:8000`
6. **LinBPQ** (port 8090): change telnet password from `changeme`
7. Enable `LINCHAT` if chat was not already in the template; match Chat Appl No to APPLICATION 2

## Exclusive sound card

Only one of Direwolf or Graywolf may run at a time. The launcher enforces this.

## Chrony GPS offset

After several hours with a good fix:

```bash
chronyc sources -v
chronyc sourcestats
```

Adjust `offset` on the `refclock SHM 0` line in `/etc/chrony/chrony.conf`, then:

```bash
sudo systemctl restart chrony
```

USB GPS without PPS is typically good to tens of milliseconds, not microseconds.

## Re-running the installer

```bash
cp config.env.example config.env   # only if missing
./install.sh
```

Optional skips in `config.env`:

```bash
SKIP_DIREWOLF_BUILD=yes
SKIP_LINBPQ_DOWNLOAD=yes
```

## Not installed by this script

- **Graywolf** binary/package — install from upstream, then enable the service
- VARA (use a Windows machine or Wine later)
- Mail-in-a-box / ISP SMTP bridging for LinBPQ (intentionally omitted)

## Second radio (future)

A second AIOC + UV-K5 allows simultaneous APRS + Winlink on different frequencies. You would add a second set of udev names, a second modem instance, and point Pat at one KISS/AGW port while APRS uses the other.
