Commit Graph

198 Commits

Author SHA1 Message Date
Smittix 30f75b1507 Support /usr/sbin paths for aircrack-ng on Debian and add hcxtools
- Add get_tool_path() to check /usr/sbin and /sbin for tools
- Update wifi.py to use full paths for airmon-ng, airodump-ng, aireplay-ng, aircrack-ng
- Add hcxdumptool and hcxtools to setup.sh for Debian and macOS
- Update check_cmd() in setup.sh to also check /usr/sbin and /sbin

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 18:20:39 +00:00
Smittix 669a5b5dc1 Fix ADS-B tracking and aircraft database lookup
- Add debug stats (bytes_received, lines_received) to diagnose connection issues
- Capture stderr from dump1090 to show actual error messages on failure
- Add dump1090_running status to /adsb/status endpoint
- Fix aircraft_db.lookup() to handle Mictronics array format [reg, type, flags]
  instead of expecting dict format {r: reg, t: type}
- Add logging for first few SBS lines to help debug parsing issues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 17:42:17 +00:00
Smittix 491ebcd373 Prevent duplicate signal hits in Listening Post
Added duplicate detection to addSignalHit():
- Tracks recent signals by frequency in a Map
- Ignores same frequency within 5 seconds
- Auto-cleans entries older than 30 seconds

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 22:33:38 +00:00
Smittix b7cba78139 Fix SDRType.LIMESDR -> SDRType.LIME_SDR typo
The enum is LIME_SDR (with underscore) but the code used LIMESDR,
causing an AttributeError on /adsb/tools endpoint.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 22:24:06 +00:00
Smittix 1928b0df1f Add pauses after each installation step for readability
Each package install now pauses for 1 second after completion
so the user can see what happened before it scrolls away.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 22:13:22 +00:00
Smittix cc5faa5d72 Fix setup.sh - remove set -e, improve dump1090 build
- Changed set -e to set +e - handle errors explicitly instead
- set -e was causing silent early exits on any failure
- Improved dump1090 build with more dependencies
- Added BLADERF=no to skip optional BladeRF dependency
- Falls back to simpler antirez/dump1090 if FlightAware fails
- Better success/failure output for each package

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 22:03:12 +00:00
Smittix 9a24d224d2 Simplify Debian tool installation - always install everything
- Remove conditional MISSING_* checks - just install all tools
- apt-get will skip already-installed packages anyway
- Add verification step at end showing what actually got installed
- Better output showing success/failure for each package
- This fixes issues where flag-based logic was failing silently

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 22:00:27 +00:00
Smittix 5be7e0d7a4 Fix setup.sh to install system tools before Python deps
- Reorder: check tools -> install tools -> Python deps
- This ensures system tools install even if pip fails
- Make pip failures non-fatal (continue with warning)
- Auto-install python3-venv if needed on Debian
- Don't exit on venv creation failure, continue with tools

The previous order meant if pip failed (common on fresh installs),
the script would exit before installing rtl-sdr, multimon-ng, etc.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 21:57:57 +00:00
Smittix 8cb28ef9e8 Add dump1090 build from source when not in repositories
On newer Debian versions (like Trixie), dump1090 isn't available
in the package repositories. Now automatically builds from the
FlightAware GitHub repo as a fallback:

- Installs build dependencies (build-essential, librtlsdr-dev, etc.)
- Clones from github.com/flightaware/dump1090
- Compiles and installs to /usr/local/bin

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 21:53:38 +00:00
Smittix 40e90ab789 Make setup.sh fully automatic - no prompts required
- Remove all Y/n prompts for tool installation
- Install tools automatically when missing
- Show clear progress for each package being installed
- Show warnings if individual packages fail instead of silent failure
- Changed apt to apt-get for better script compatibility
- Auto-setup udev rules on Linux without prompting
- Auto-install Homebrew on macOS if missing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 21:52:19 +00:00
Smittix 59fc44a489 Add error handling to checkStatus() to prevent console errors
The periodic /status check was throwing uncaught promise errors
when the server was unavailable or restarting.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 21:48:42 +00:00
Smittix d248c5a292 Fix audio stream errors and improve error handling
- Fix "no supported source" error by returning empty audio response
  instead of JSON when audio not running (browser can't parse JSON)
- Add wait loop in stream endpoint to handle race condition with start
- Add logging for rtl_fm and ffmpeg commands
- Capture stderr to log actual process errors
- Check if processes exit immediately and log reason
- Improved error messages for users

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 21:42:55 +00:00
Smittix 7fe7142235 Fix aircraft dashboard audio endpoints (404 error)
Changed /spectrum/audio/* to /listening/audio/* to match the
actual listening_post blueprint URL prefix.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 21:37:36 +00:00
Smittix 0110560dbd Fix misleading 'No RTL-SDR devices found' warning in Listening Post
The warning was triggered when ffmpeg was missing, but the message
incorrectly said "No RTL-SDR devices found". Now properly shows
"ffmpeg not found" with installation instructions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 21:17:49 +00:00
Smittix e09c78de5d Fix audio dependency to use ffmpeg instead of sox
The Listening Post actually uses ffmpeg for audio encoding, not sox.
Updated all documentation, setup scripts, and code to reflect this:

- Removed unused find_sox() function from listening_post.py
- Simplified tools endpoint to only check for ffmpeg
- Updated CHANGELOG, README, HARDWARE.md, Dockerfile
- Fixed setup.sh to check for ffmpeg
- Updated frontend warnings to mention ffmpeg

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 20:53:54 +00:00
Smittix a90674c3a9 Add readsb warning for HackRF/LimeSDR ADS-B tracking
- Enhanced /adsb/tools endpoint to detect SoapySDR hardware and check for readsb
- Added UI warning in aircraft dashboard when HackRF/LimeSDR is detected but readsb is missing
- Warning includes expandable installation instructions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 20:46:36 +00:00
Smittix aad2b6e555 Fix SoapySDR detection and HackRF ADS-B error message
- Try multiple SoapySDR utility names: SoapySDRUtil, soapy_sdr_util, soapysdr-util
- Improve error message for HackRF/LimeSDR ADS-B to mention readsb requirement

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 20:38:35 +00:00
Smittix 5d223bc318 Fix DataStore subscript access for ADS-B tracking
Add __getitem__, __setitem__, and __delitem__ methods to DataStore
class to support dict-style subscript notation (store[key]).

Fixes TypeError: 'DataStore' object is not subscriptable

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 20:35:51 +00:00
Smittix 2d9de3c58a Release v2.0.0
- Add Listening Post mode with frequency scanner
- Add device correlation and settings system
- Overhaul documentation and setup script
- Update Dockerfile with all dependencies
- Add comprehensive test suite

See CHANGELOG.md for full details.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 18:55:08 +00:00
Smittix d673e8bc58 Merge remote changes, keep Acknowledgments section 2026-01-06 17:35:22 +00:00
Smittix b5ee33404c Add Listening Post, improve setup and documentation
- Add Listening Post mode with frequency scanner and audio monitoring
- Add dependency warning for aircraft dashboard listen feature
- Auto-restart audio when switching frequencies
- Fix toolbar overflow on aircraft dashboard custom frequency
- Update setup script with full macOS/Debian support
- Clean up README and documentation for clarity
- Add sox and dump1090 to Dockerfile
- Add comprehensive tool reference to HARDWARE.md
- Add correlation, settings, and database utilities
- Add new test files for routes, validation, correlation, database

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 17:34:53 +00:00
Smittix fde40a1bbb Update FEATURES.md 2026-01-05 23:29:13 +00:00
Smittix 0463889036 Update README.md 2026-01-05 23:22:51 +00:00
Smittix 933a66c346 Add files via upload 2026-01-05 23:17:43 +00:00
Smittix e0c6523f94 Fix SoapySDR device detection for RTL-SDR and HackRF
Previously, RTL-SDR devices from SoapySDR were unconditionally skipped,
even if native rtl_test wasn't available. Now:

- Native detection runs first for RTL-SDR and HackRF
- SoapySDR only skips device types that were already found natively
- If native tools aren't available, SoapySDR detection is used as fallback

This fixes the issue where users with only SoapySDR installed couldn't
see their RTL-SDR or HackRF devices.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 21:30:08 +00:00
Smittix b90053338e Bump version to 1.2.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 21:21:33 +00:00
Smittix 938d021e06 Add Airspy SDR support and persist GPS coordinates
Airspy support:
- Add AIRSPY to SDRType enum and driver mappings
- Create AirspyCommandBuilder using SoapySDR tools (rx_fm, readsb, rtl_433)
- Register in SDRFactory and add to hardware type dropdown
- Supports Airspy R2/Mini (24MHz-1.8GHz) and HF+ devices

GPS coordinate persistence:
- Save observer location to localStorage when manually entered or via geolocation
- Restore saved coordinates on page load in both index.html and adsb_dashboard.html
- Coordinates are shared between both pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 21:04:43 +00:00
Smittix ea54ab4bce Update HARDWARE.md 2026-01-05 17:33:10 +00:00
Smittix c67452b863 Update HARDWARE.md 2026-01-05 17:23:25 +00:00
Smittix 1d16304255 Check dump1090 availability per Debian version
- Try dump1090-fa, dump1090-mutability, dump1090 variants
- Use pkg_available() to check actual installability
- Skip gracefully on Debian Trixie and other versions without it
- Only show manual install message if not already installed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 13:54:48 +00:00
Smittix 73554d2db0 Skip dump1090 apt install - not in Debian repos
- dump1090 is not available in standard Debian repositories
- Show manual installation instructions with FlightAware link
- Add pkg_available() helper for reliable package checks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 13:42:51 +00:00
Smittix 2e45fe0fd8 Handle missing dump1090 and rtl-433 packages gracefully
- Check apt-cache for package availability before installing
- Try dump1090-fa, dump1090-mutability, then dump1090 variants
- Try rtl-433 and rtl433 package names
- Show helpful message with FlightAware install link if dump1090 unavailable
- Update manual instructions with correct package info

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 13:39:05 +00:00
Smittix a5880800f5 Handle running as root without sudo on Debian
- Add setup_sudo() to detect root user or check for sudo availability
- Use $SUDO variable instead of hardcoded sudo commands
- Show appropriate commands in error messages based on privilege level
- Exit with helpful message if not root and sudo unavailable

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 13:35:40 +00:00
Smittix db154220bc Add automatic tool installation for Debian/Ubuntu
- Automatically install missing SDR, WiFi, and Bluetooth tools on Debian
- Prompt user before installing (can decline for manual instructions)
- Auto-setup RTL-SDR udev rules with user confirmation
- Track missing tools by category (core, wifi, bluetooth)
- Keep manual instructions for macOS, Arch, and other distros

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 13:31:04 +00:00
Smittix d585602a6b Fix setup.sh venv detection on fresh Debian installs
- Check for venv/bin/activate file instead of just venv directory
- Add error handling when python3-venv package is not installed
- Clean up incomplete venv directories from failed attempts
- Provide helpful instructions to install python3-venv

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 13:24:49 +00:00
Smittix 5537fdfe5a Add uv installation instructions and update pyproject.toml
- Add uv quick start option to README (collapsible section)
- Add Python Dependencies section to HARDWARE.md with multiple options:
  - setup.sh (recommended)
  - pip with requirements.txt
  - uv with uv sync
  - pip with pyproject.toml
- Update pyproject.toml:
  - Bump version to 1.1.0
  - Add pyserial to dependencies
  - Add project URLs
2026-01-05 10:12:03 +00:00
Smittix b11165da6f Add rtl_tcp (remote SDR) support v1.1.0
Features:
- Add rtl_tcp support for pager and sensor decoding
  - Connect to remote RTL-SDR via rtl_tcp server
  - New UI toggle and host:port inputs in sidebar
  - Supports rtl_fm and rtl_433 with remote devices

- Add remote dump1090 support for ADS-B tracking
  - Connect to dump1090 SBS output on remote machine
  - New "Remote" checkbox with host:port in ADS-B dashboard

Backend changes:
- Add rtl_tcp_host/port fields to SDRDevice dataclass
- Add is_network property for detecting remote devices
- Update RTLSDRCommandBuilder to use rtl_tcp:host:port format
- Add create_network_device() to SDRFactory
- Add validate_rtl_tcp_host/port validation functions
- Update pager, sensor, and adsb routes to accept remote params

Note: dump1090 doesn't support rtl_tcp directly - use remote
dump1090's SBS output (port 30003) for remote ADS-B tracking.
2026-01-05 08:44:58 +00:00
Smittix 2d9569bda8 Fix CSV export bug (fixes #30)
- Fix escaped newline in CSV export causing literal \n in output
- Clear allMessages array when clearing messages so CSV/JSON exports
  reflect current data after clearing
2026-01-05 08:19:31 +00:00
Smittix 45a9d1d42b Remove Iridium (demo-only) and add version display
- Remove Iridium satellite decoding feature (was placeholder/demo only)
  - Delete routes/iridium.py
  - Remove Iridium UI elements from index.html
  - Remove Iridium CSS styles
  - Remove Iridium dependencies and logger
  - Clean up SDR docstrings mentioning Iridium

- Add version number display (fixes #31)
  - Add VERSION constant to config.py
  - Add --version / -V CLI flag to intercept.py
  - Display version badge in web UI header
2026-01-05 08:17:08 +00:00
Smittix 602d14f931 Merge pull request #29 from kittyhutchinson/main
Macos compatibility fix
2026-01-05 08:06:26 +00:00
Kitty Hutchinson 6840f6c8d7 fix 2026-01-04 15:23:32 +00:00
Kitty Hutchinson b3b81a77c9 fix macOS compatibility 2026-01-04 15:19:58 +00:00
Smittix 54f6381197 Fix WiFi monitor parsing, improve setup, reorganize docs
- Fix monitor interface regex parsing (Issues #27, #28)
- Add Python 3.9+ version check at startup
- Fix setup.sh to handle PEP 668 and auto-create venv
- Reorganize README: move detailed content to docs/ folder
- Add docs/FEATURES.md, USAGE.md, TROUBLESHOOTING.md, HARDWARE.md
2026-01-04 14:06:55 +00:00
Smittix 1beca77db1 Update README.md 2026-01-04 13:21:38 +00:00
Smittix 1698aec42b Update README.md
Added discord
2026-01-04 13:15:54 +00:00
Smittix 1c2017c35a Merge pull request #18 from JonanOribe/main
CSS and images were moved to the "Static" folder to improve HTML maintainability.
2026-01-03 17:53:01 +00:00
Jon Ander Oribe d489e7e84e Update README.md 2026-01-03 14:19:58 +01:00
Jon Ander Oribe cdf1adbc49 Update README.md 2026-01-03 14:16:55 +01:00
Jon Ander Oribe 2e619927ea Add dashboard CSS and update screenshot paths
Moved CSS files for ADS-B and satellite dashboards, as well as the main index page. Updated screenshot image paths in the README and moved screenshot files to a dedicated images/screenshots directory. Adjusted HTML templates to use the new path for the CSS files.
2026-01-03 14:15:43 +01:00
James Smith 1e880bc7cf Use print statements for GPS debugging (visible in console)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 17:39:11 +00:00