Commit graph

42 commits

Author SHA1 Message Date
Light-Fighter-Manifesto
92c0a239a2 Add v1.0 image build system and configuration files
- Add image/build.sh: Automated Pi image builder for ReticulumHF v1.0
- Add configs/: System configuration files (hostapd, dnsmasq, ALSA, radios DB)
- Add scripts/wait-for-port: Service dependency utility
- Update .gitignore: Exclude .claude/ and test files

This release includes the complete build infrastructure for creating
ReticulumHF Raspberry Pi images with pre-configured WiFi AP, web portal,
and Reticulum gateway services.
2026-02-05 23:59:43 -05:00
Light-Fighter-Manifesto
92d56eb041
Refactor README.md to simplify content
Removed detailed features, tested radios, and manual installation sections from README.md. Updated setup wizard and architecture information.

Signed-off-by: Light-Fighter-Manifesto <lfmanifesto@proton.me>
2026-02-04 23:29:04 -05:00
Light-Fighter-Manifesto
700ab1ecc7
Delete LICENSE
Signed-off-by: Light-Fighter-Manifesto <lfmanifesto@proton.me>
2026-02-04 23:26:32 -05:00
Light-Fighter-Manifesto
b38d6ee602
Delete CONTRIBUTING.md
Signed-off-by: Light-Fighter-Manifesto <lfmanifesto@proton.me>
2026-02-04 23:26:14 -05:00
Light-Fighter-Manifesto
cc241f4120
Delete CLAUDE.md
Signed-off-by: Light-Fighter-Manifesto <lfmanifesto@proton.me>
2026-02-04 23:25:47 -05:00
Light-Fighter-Manifesto
c780ac56bf
Delete image directory
Signed-off-by: Light-Fighter-Manifesto <lfmanifesto@proton.me>
2026-02-04 23:24:57 -05:00
Light-Fighter-Manifesto
98ae384a41
Delete configs directory
Signed-off-by: Light-Fighter-Manifesto <lfmanifesto@proton.me>
2026-02-04 23:24:44 -05:00
Light-Fighter-Manifesto
393ee38872
Delete .github/ISSUE_TEMPLATE directory
Signed-off-by: Light-Fighter-Manifesto <lfmanifesto@proton.me>
2026-02-04 23:24:18 -05:00
Light-Fighter-Manifesto
c53502dbec v0.3.1-alpha: Connection health monitor, RNS stats, PWA support
New features:
- Connection health monitor with live TCP checks for rigctld and modem
- RNS interface statistics display (TX/RX byte counts per interface)
- PWA support (installable app with service worker for offline caching)
- Auto-configure ALSA levels when Digirig/CM108 is plugged in (udev rule)
- CM108 GPIO PTT detection for hardware PTT support
- Added Kenwood TS-890S radio configuration

Bug fixes:
- Copy buttons now work over HTTP (not just HTTPS)
- CLI commands section shows correct audio card number

New endpoints:
- /api/rigctld-health - TCP health check with frequency display
- /api/rns-stats - Parsed interface statistics from rnstatus
2026-02-02 17:50:32 -05:00
Light-Fighter-Manifesto
834a380383
Update README.md
Signed-off-by: Light-Fighter-Manifesto <lfmanifesto@proton.me>
2026-01-31 12:13:52 -05:00
Light-Fighter-Manifesto
297372a352 v0.3.0-alpha: UI improvements and instant mode/volume control
- Live RX level display from modem (via command interface)
- Instant mode and TX volume changes (no service restart)
- Removed assumed ALSA control names
- Simplified troubleshooting guidance
- Fixed CSS warning color consistency
- Fixed JS updateAlcWarning bug
- Updated version to v0.3.0-alpha
2026-01-29 21:30:43 -05:00
Light-Fighter-Manifesto
01c0eb332c v0.3.0-alpha: freedvtnc2-lfm fork with command interface
Major architecture change:
- Use freedvtnc2-lfm fork (LFManifesto/freedvtnc2) with TCP command interface
- Mode changes instant via port 8002 (no service restart)
- Volume changes instant via port 8002 (no service restart)
- New endpoints: /api/modem-status, /api/modem-levels
- Added freedvtnc2_command() helper for command interface
- Updated build.sh to install from GitHub fork
- Added --cmd-port 8002 --cmd-address 0.0.0.0 to freedvtnc2 command

This eliminates the need to restart freedvtnc2 for configuration changes,
which was causing rnsd reconnection delays and perceived failures.
2026-01-29 20:43:00 -05:00
Light-Fighter-Manifesto
2005af15dc Update README version to v0.2.3-alpha 2026-01-29 16:40:33 -05:00
Light-Fighter-Manifesto
fbf1f45312 v0.2.3-alpha: Auto-set ALSA defaults on setup, add CLI commands to status UI
- Fix: Call set_audio_levels() during setup completion to initialize
  ALSA mixer defaults (Speaker 80%, Mic Capture 75%, AGC off)
- Add CLI Commands section to status page with copyable commands for
  alsamixer TUI, amixer controls, service status, and logs
- Update README and docstrings to reflect 0 dB TX default (was -6)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 16:24:11 -05:00
Light-Fighter-Manifesto
81e3d373df Bump version to v0.2.2-alpha
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 15:19:57 -05:00
Light-Fighter-Manifesto
94ceafeeee Fix ALSA control handling and add radio-specific ALC guidance
ALSA Control Fixes (hardware.py):
- Properly distinguish Mic Capture (RX input) from Mic Playback (sidetone)
- Explicitly mute Mic Playback to prevent monitoring feedback
- Remove incorrect "cap" flag usage on level controls
- Validate AGC disable success and report status
- Add "monitoring" category for sidetone controls

API Enhancement (app.py):
- Add ALC guidance to /api/config-info endpoint
- Return alc_target, alc_guidance, alc_reversed per radio
- Provide manufacturer-specific defaults (Xiegu reversed, Icom minimal, etc.)

UI Improvements (status.html):
- Add radio-specific ALC guidance section
- Update ALSA slider labels: Speaker (TX→Radio), Mic Capture (RX←Radio)
- Add AGC and monitoring status display
- Expand troubleshooting with detailed step-by-step instructions

Documentation (radios.json, CLAUDE.md):
- Add alc_notes section with manufacturer guidance
- Add alc_target/alc_guidance/alc_reversed to Xiegu radios
- Document ALSA control differences and ALC targets by manufacturer

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 15:00:18 -05:00
Light-Fighter-Manifesto
f8cd234a8a Bump version to v0.2.1-alpha
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:10:01 -05:00
Light-Fighter-Manifesto
b809825a74 Fix TX audio levels - increase defaults for proper RF power output
- freedvtnc2 output: -6 dB -> 0 dB (per freedvtnc2 docs: use soundcard/radio config)
- ALSA playback: 64% -> 80% (per Digirig recommendation)
- radios.json recommended_alsa_tx: 70 -> 80
- Updated UI guidance: target ALC 30-50, added low power troubleshooting
- Sources: Digirig guide, WSJT-X docs, Xiegu G90 manual

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:51:11 -05:00
Light-Fighter-Manifesto
47017a0d3b Update CLAUDE.md with correct build workflow and context 2026-01-29 09:18:27 -05:00
Light-Fighter-Manifesto
e345a88c63 Update README for v0.2.0-alpha
- Update version to v0.2.0-alpha
- Fix client connections: all use TCP Client Interface on port 4242
- Add TX Audio Level feature documentation
- Add troubleshooting for ALC/power fluctuation
- Update architecture diagram
- Remove incorrect MeshChat port 8001 references
2026-01-29 08:58:44 -05:00
Light-Fighter-Manifesto
69d27b7c03
Update project name in CONTRIBUTING.md
Signed-off-by: Light-Fighter-Manifesto <lfmanifesto@proton.me>
2026-01-29 08:58:22 -05:00
Light-Fighter-Manifesto
239cb55c77 Add CLAUDE.md with project context and build workflow
- Document always building image after commits
- Include build machine details (pi2)
- Add architecture overview
- Include interface settings for Sideband/MeshChat
- Add troubleshooting guide

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-29 08:56:00 -05:00
Light-Fighter-Manifesto
0a8682c7bb v0.2.0-alpha: Transport bridging fix + TX audio control
Transport bridging:
- Change TCP interface mode from 'gateway' to 'boundary'
- Prevents high-speed TCP announces from flooding slow HF link

TX audio control:
- Add TX Audio Level slider on status page (-20 to 0 dB)
- Default changed from -3 to -6 dB (safer, avoids ALC)
- ALC warning when level > -4 dB
- Restarts modem when changed

Connection info improvements:
- Add interface setup directions for Sideband and MeshChat
- Fix MeshChat port (4242, not 8001)
- Add IFAC fields to MeshChat section

UI improvements:
- Add troubleshooting tips section
- Clarify that all apps use TCP Client Interface on port 4242

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-29 08:53:18 -05:00
Light-Fighter-Manifesto
0bd2341afa Fix WiFi SSID in build script: ReticulumHF (not ReticulumHF-Setup) 2026-01-27 17:55:45 -05:00
Light-Fighter-Manifesto
e3f446e54a v0.1.0-alpha: Major UI overhaul and audio monitoring
Setup Page (6 steps):
- Streamlined wizard: Radio > Settings > Hardware > Test > Security > Start
- VOX mode checkbox for audio-only interfaces (Digirig Lite)
- Removed audio level testing (moved to status page)
- Radio-specific menu settings displayed during setup

Status Page:
- Real-time audio level monitoring with VU meter
- ALSA mixer controls (Mic/Speaker sliders)
- FreeDV mode selector with coordination warning
- Device busy detection when modem is running
- WiFi AP credentials display
- Version number (v0.1.0-alpha)
- Documentation link to GitHub

Backend:
- Audio device busy detection via fuser
- FreeDV mode change API with modem restart
- VOX mode handling (user choice OR radio default)
- Config-info returns current FreeDV mode

radios.json:
- Added audio_settings for all 25 radios
- Marked tested radios: G90, FT-818, truSDX
- Added ALSA recommendations and FreeDV notes

Critical Notes:
- All stations must use same FreeDV mode to communicate
- Audio target: -10 to -5 dB on signals, -30 to -60 dB noise floor
- WiFi: ReticulumHF / reticulumhf
2026-01-27 17:55:45 -05:00
Light-Fighter-Manifesto
1b42327069 Fix: Improved audio level detection for different USB interfaces
- Added get_audio_controls() to enumerate available ALSA mixer controls
- Rewrote set_audio_levels() to try multiple control name patterns
- Now handles Digirig, SignaLink, and built-in radio USB audio
- Returns helpful message when no controls found (set levels in radio menu)
- Added /api/audio-controls/<card> endpoint for diagnostics

Fixes issue where Icom radios with built-in USB reported
"could not set input level (no Mic or Capture control)"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 14:50:50 -05:00
Light-Fighter-Manifesto
5ff492cdaa Fix: Use RETICULUMHF_BACKUPS_DIR constant for reticulum config backup
Fixed undefined variable 'backup_dir' in backup_existing_configs()

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 10:27:09 -05:00
Light-Fighter-Manifesto
6f7aa4c41c Audit fixes: config persistence, security, and code quality
High priority fixes:
- Add config backup before overwrite in complete-setup
- Add systemctl disable to reset-setup to prevent broken state
- Change freedvtnc2 Requires to Wants for VOX mode support
- Update tested status for FT-818 and truSDX

Medium priority fixes:
- Validate serial_port for non-VOX radios
- Add config validation before service start
- Increase freedvtnc2 startup timeout from 5s to 15s
- Add PTT method (RTS) to more radios in radios.json

Low priority / code quality:
- Extract common radio lookup to helper function
- Add type hints (Optional, Tuple) consistently
- Remove unused peers_config code
- Define path constants at module level
- Fix bare except in hardware.py
- Move time import to module level

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 05:33:55 -05:00
Light-Fighter-Manifesto
25f561d989 Update README: FreeDV mode specs, test info, version numbers 2026-01-26 14:30:43 -05:00
Light-Fighter-Manifesto
af459136a4 Update download link to v2.0 release 2026-01-26 14:08:46 -05:00
Light-Fighter-Manifesto
faf5fcf3fd Update README with client configs, verified hardware, and fixed commands 2026-01-26 13:44:24 -05:00
Light-Fighter-Manifesto
72835b3740 Fix PTT method, bind address, and add MeshChat instructions
- Add -P RTS PTT method support for Digirig interfaces
- Change freedvtnc2 bind address from 127.0.0.1 to 0.0.0.0 for remote access
- Add VOX mode support for audio-only interfaces (rigctld-port 0)
- Remove --set-conf options that caused broken pipe errors
- Fix FT-818 hamlib model from 1041 to 1020 (use FT-817)
- Add ptt_method field to G90, FT-818, and truSDX in radios.json
- Add MeshChat connection instructions to status page (port 8001, KISS, bitrate)
2026-01-26 13:42:31 -05:00
LFManifesto
d5e9f0eb5f Fix download link to v1.0 release 2026-01-12 12:44:06 -05:00
Light-Fighter-Manifesto
a476031477
Delete .claude directory
Signed-off-by: Light-Fighter-Manifesto <121176133+LFManifesto@users.noreply.github.com>
2026-01-12 12:31:03 -05:00
LFManifesto
a8db4d19fa v1.0: HF-only release with setup wizard
- Complete web-based setup portal for radio configuration
- freedvtnc2 FreeDV modem integration (DATAC1/DATAC3/DATAC4)
- rigctld CAT/PTT control for multi-radio support
- WiFi AP mode for phone connectivity
- RNS TCP bridge for Sideband app
- Fixed service startup timing
- Fixed first-boot configuration flow
- Includes configs, services, and image build scripts
2026-01-12 12:27:08 -05:00
PapaSierra555
77499ae3d8 Create ReticulumHF.postman_collection.json
Adding Postman Collection containing all API calls used in testing of the RPi image and Web Status and setup Application.
2026-01-12 10:04:18 -05:00
Light-Fighter-Manifesto
048997c9f2 Update download link to GitHub Releases 2026-01-09 16:07:03 -05:00
Light-Fighter-Manifesto
acc1f1f54a Fix Proton Drive download link 2026-01-09 15:58:30 -05:00
Light-Fighter-Manifesto
98cbe4b757 Add pre-built image install option, keep manual method 2026-01-09 15:57:43 -05:00
Light-Fighter-Manifesto
30d20f02dc
Update README.md
Clarified test results and workflow.
2025-12-26 13:50:40 -05:00
Light-Fighter-Manifesto
e8d775886a
Delete .claude directory 2025-12-17 05:42:44 -05:00
Light-Fighter-Manifesto
df831bff35 ReticulumHF: Reticulum mesh networking over HF radio
Tested configuration for running Reticulum over FreeDV DATAC1 mode.
Xiegu G90 + Digirig + Raspberry Pi 4 verified working December 2025.

Contents:
- Installation guide (11 steps with commands)
- Hardware setup (G90, Digirig, audio routing)
- Performance specs from codec2 documentation
- Troubleshooting common issues
- Optional I2P bridge configuration

References:
- https://reticulum.network/
- https://github.com/drowe67/codec2
- https://github.com/xssfox/freedvtnc2
2025-12-17 05:40:19 -05:00