Commit Graph

367 Commits

Author SHA1 Message Date
Smittix
c96a3ade6b Fix APRS direwolf command flags
- Change direwolf flags from -D 1 to correct flags for stdin input
- Add -n 1 (mono), -b 16 (16-bit), -t 0 (no PTT), -q d (quiet)
- Add -M fm for explicit FM demodulation in rtl_fm
- Add explicit stdout output (-) to rtl_fm command

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 20:24:09 +00:00
Smittix
81c9dd84b2 Merge pull request #61 from nechry/patch-1 2026-01-15 19:02:41 +00:00
Smittix
fe67461f88 Add selectable ACARS frequencies
- Add checkboxes for each ACARS frequency in the selected region
- Users can now select one or multiple frequencies instead of all
- Frequencies stay checked when switching regions if they exist in both
- Falls back to all region frequencies if none selected

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 17:54:41 +00:00
Smittix
aae60e2037 Add real-time squelch control and clean up diagnostic logging
- Add updateAirbandSquelch() to restart audio when squelch slider changes
- Remove verbose diagnostic logging from audio streaming
- Remove tee diagnostic for raw rtl_fm output
- Keep error logging for troubleshooting
- Simplify audio stream generator

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 17:17:15 +00:00
Smittix
97d5ec6b33 Add DVB driver conflict detection and auto-fix feature
- Add /settings/rtlsdr/driver-status endpoint to check for loaded DVB modules
- Add /settings/rtlsdr/blacklist-drivers endpoint to unload modules and create blacklist
- Show warning banner on dashboard when DVB conflict detected
- Provide "Fix Now" button to automatically resolve the issue
- Warn users that their RTL-SDR devices may not work until drivers are blacklisted

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 17:06:18 +00:00
Smittix
459bf2d8cd Add explicit stdout output flag to rtl_fm command
- Add '-' flag to explicitly specify stdout output
- Some rtl_fm versions/devices require this explicitly

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 16:56:05 +00:00
Smittix
43f0f1cbfc Add rtl_fm raw output capture for diagnostics
- Use tee to capture rtl_fm raw output to /tmp/rtl_fm_raw.bin
- Log raw file size during stream timeouts
- Helps determine if rtl_fm is producing any data at all

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 16:54:13 +00:00
Smittix
a3fd6881df Add ffmpeg stderr logging to diagnose audio pipeline issues
- Capture both rtl_fm and ffmpeg stderr to separate log files
- Log ffmpeg errors at stream request and during timeouts
- Helps identify if ffmpeg is the source of zero-byte streaming

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 16:51:16 +00:00
Smittix
b27a532bce Add detailed audio stream generator logging
- Log when generator starts
- Track iterations and bytes sent
- Log select timeouts to diagnose data flow issues

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 16:48:51 +00:00
Smittix
52f85669f8 Add diagnostic logging for SDR device audio debugging
- Log rtl_fm stderr to /tmp/rtl_fm_stderr.log instead of /dev/null
- Add detailed logging for audio start requests and parameters
- Log audio stream status and bytes transferred
- Help diagnose SDR1 airband audio issues

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 16:47:04 +00:00
Smittix
a891160f98 Improve SDR device naming and fix airband audio display
- Show descriptive device names: RTL-SDR #0 (serial) instead of SDR 0
- Include last 4 digits of serial number for identification
- Add tooltip with full device name and serial
- Hide audio player element (no visible playback bar)
- Add debug logging for airband device selection

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 16:10:45 +00:00
Smittix
130bc8a51c Fix airband audio element - remove crossorigin, add controls
- Remove crossorigin="anonymous" attribute that may cause CORS issues
- Add controls attribute so user can manually play if autoplay blocked
- Show/hide audio player element when listening starts/stops
- Hide visualizer container on stop

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 16:03:51 +00:00
Smittix
4224418e6f Fix airband audio using async/await pattern from working code
- Convert startAirband to async function
- Add 300ms delay after backend start for stream readiness
- Properly reset audio element before connecting to stream
- Add both oncanplay and immediate play() for browser compatibility
- Add console logging for debugging
- Show visualizer container when audio starts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:54:28 +00:00
Smittix
4018f95723 Fix squawk button to use existing modal, fix airband audio playback
- Use existing showSquawkInfo() for squawk button instead of custom modal
- Fix airband audio by waiting for canplay event before calling play()
- Add proper audio state reset before starting new stream
- Remove unused showSquawkReference function

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:35:02 +00:00
Smittix
e6c7a3eae4 Add radar overlay on map, fix squawk button and airband status
- Add "Radar" toggle in display controls to overlay radar effect on map
- Radar overlay shows sweep line, range rings, compass rose, center point
- Fix squawk button using addEventListener instead of inline onclick
- Add missing airbandStatus element to fix null error
- Improve squawk modal with click-outside-to-close

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:29:31 +00:00
Smittix
2e27efdfbf Fix status dot color, map tiles, and button issues
- Fix status dot to be red when inactive, green when tracking
- Add additional map invalidateSize call to fix missing tiles on load
- Add type="button" and z-index to strip buttons for proper click handling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:21:50 +00:00
Smittix
6efa10643e Fix dashboard height calculation to account for stats strip
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:17:24 +00:00
Smittix
71e5803695 Add stats strip with tracking features to ADS-B dashboard
- Add slim statistics bar with live stats (aircraft count, max range,
  highest altitude, fastest speed, closest aircraft, countries, ACARS)
- Add session timer and report generation with JSON export
- Add signal quality indicator with visual dots
- Add squawk code reference modal
- Add flight lookup button (FlightAware integration)
- Add aircraft type icons (jet, helicopter, prop, military, glider)
- Move status indicator and UTC time from header to stats strip
- Reorganize controls bar into logical groups
- Add ICAO country allocation data for nationality detection

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:15:41 +00:00
Jean-François Auger
1107f0e534 Update setup.sh
look like repo for multimon-ng is wrong
2026-01-15 16:13:23 +01:00
Smittix
0b22d0aa1f Remove aircraft mode from main app, link to dashboard instead
- Remove aircraft.html partial and all aircraft mode JS code
- Navigation buttons now link directly to /adsb/dashboard
- Remove Leaflet MarkerCluster (only used for aircraft)
- Clean up help section aircraft references
- Remove checkAdsbTools function and related code
2026-01-15 14:47:27 +00:00
Smittix
353cd16021 Add volume control for airband listening on ADS-B dashboard
- Add volume slider with speaker icon next to squelch control
- Apply initial volume when audio starts
- Add updateAirbandVolume() function for real-time volume changes
2026-01-15 14:19:28 +00:00
Smittix
ac6d1b570d Add clear SDR device selection for ADS-B and airband listening
- Add ADS-B device selector with label before START button
- Add Listen label for airband device selector
- Track which device is actively used for ADS-B tracking
- Disable ADS-B device selector while tracking is active
- Update device conflict detection to use actual selected device
- Consolidate device selector initialization into single function
- Remove duplicate device loading from initAirband()
2026-01-15 14:11:19 +00:00
Smittix
319ea2d01d Remove redundant SDR device selector from APRS configuration
APRS now uses the global device selector in the sidebar like other modes
2026-01-15 13:13:33 +00:00
Smittix
6fc64937fb Fix volume control not applying initial knob value
- Apply volume knob value when scanner audio starts on signal detection
- Apply volume knob value when direct listening starts
- Fix visualizer to use correct scannerAudioPlayer element ID
- Add console logging for volume changes
2026-01-15 12:40:31 +00:00
Smittix
323f24a470 Fix ADS-B mobile - use !important, wider breakpoint, remove overflow:hidden 2026-01-15 09:31:51 +00:00
Smittix
d98bcc15b8 Fix ADS-B dashboard mobile - selected aircraft panel, back link, controls 2026-01-15 09:29:45 +00:00
Smittix
fdd91485fc Fix ADS-B dashboard mobile layout - proper flex/grid handling 2026-01-15 09:26:16 +00:00
Smittix
d510ba30f6 Fix mobile navigation and display issues
- Add APRS to mobile navigation bar (was missing)
- Fix CSS that was forcing aircraft visuals to always display
- Only apply flex layout to visuals when they are actually visible
- Fix ADS-B dashboard mobile layout with proper flex ordering
- Reset grid properties on mobile for proper stacking
- Hide ACARS sidebar on mobile (desktop only feature)
2026-01-15 09:22:35 +00:00
Smittix
4bb0c9b9a3 Fix ADS-B dashboard mobile layout and map rendering
- Add mobile CSS for dashboard to allow scrolling and proper stacking
- Set explicit height for map container on mobile (50vh min 300px)
- Remove sidebar max-height restriction on mobile
- Add map invalidateSize() on init, resize, and orientation change
- Fix controls bar wrapping and touch-friendly zoom controls
- Simplify header layout on mobile

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 09:15:01 +00:00
Smittix
b3e67e5ef6 Fix mobile responsiveness and map loading issues
- Add comprehensive mobile CSS for viewport scrolling and layout stacking
- Fix Leaflet maps not rendering by adding explicit heights and invalidateSize() calls
- Add touch-friendly controls and proper touch-action for maps
- Simplify header on mobile, hide stats and reduce sizes
- Handle orientation changes and window resize for maps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 09:12:29 +00:00
Smittix
dec890104b Fix acarsdec JSON output flag for newer forks
Use -j instead of -o 4 for JSON output, which is the correct
flag for acarsdec v4.3.1+ (Thibaut Varene fork).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 08:03:57 +00:00
Smittix
5d8c435c5a Update README.md with new content and formatting 2026-01-15 07:58:01 +00:00
Smittix
3cf371242a Update README with new project information 2026-01-14 21:16:18 +00:00
Smittix
aab7b508cc Add files via upload 2026-01-14 21:15:50 +00:00
Smittix
36def8f96a Update README with donation support and project info
Added donation link and updated project description.
2026-01-14 21:14:48 +00:00
Smittix
3c0a654f93 Add GitHub sponsor button for Buy Me a Coffee
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 21:10:18 +00:00
Smittix
77b4bc9ad4 Add save button to TSCM report
- Add Save Report button next to Print button
- Downloads report as HTML file with date-stamped filename
- Style both buttons consistently with flex container

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 20:37:43 +00:00
Smittix
9f39f1cc2f Add TSCM report generation feature
- Add Generate Report button to TSCM sidebar (appears after sweep)
- Implement generateTscmReport() function that creates professional HTML report
- Report includes: executive summary, device tables by risk level,
  indicators, recommendations, and disclaimers
- Track sweep start/end times for duration calculation
- Fix script tag escaping in template literal to prevent parsing issues

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 20:21:55 +00:00
Smittix
f326be77cd Modularize index.html with CSS and HTML partials
- Extract inline CSS to static/css/modes/ (acars, aprs, tscm)
- Create HTML partials for all 9 modes in templates/partials/modes/
- Reduce index.html from 11,862 to 10,281 lines (~15% reduction)
- Use Jinja2 includes for cleaner template organization

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 20:07:38 +00:00
Smittix
7eba7dbaaa Hide output console in TSCM mode
Prevents pager and 433MHz sensor data from appearing in the TSCM
section, which has its own dedicated dashboard panels.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 19:22:50 +00:00
Smittix
dc4434db84 Add mobile responsive design overhaul
- Add responsive.css with shared utilities (hamburger menu, touch targets, responsive typography)
- Add hamburger menu and mobile drawer navigation to main app
- Add horizontal scrolling mobile nav bar for mode switching
- Refactor index.css with mobile-first breakpoints
- Update adsb_dashboard.css for mobile layouts
- Update satellite_dashboard.css for mobile layouts
- Add mobile nav controller to app.js with drawer toggle
- Hide stats/taglines on small screens
- Unified breakpoints: 480px (phone), 768px (tablet), 1024px (desktop)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 18:30:15 +00:00
Smittix
0eed4a2649 Bump version to 2.9.5
- Update VERSION in config.py
- Add changelog entry for v2.9.5 highlights
- Update CHANGELOG.md with detailed release notes
- Update pyproject.toml version

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v2.9.5
2026-01-14 18:00:44 +00:00
Smittix
7b49c95967 Add welcome page with changelog and mode selection
- Replace simple splash screen with comprehensive welcome page
- Show version number and latest changelog entries
- Add 9-button mode selection grid for direct navigation
- User can now choose which mode to start with
- Responsive layout adapts to mobile screens
- Flow: Welcome → Disclaimer (if needed) → Selected mode

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 17:26:23 +00:00
Smittix
30126b1709 Add dropdown navigation menus and fix TSCM baseline recording
- Convert flat mode nav buttons into dropdown menus by category (SDR/RF, Wireless, Security)
- Add CSS styles for dropdown animations and active state highlighting
- Fix baseline recording by feeding device data to recorder endpoints
- Remove redundant threat summary section from TSCM sidebar

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 16:51:45 +00:00
Smittix
66c7db73e2 Integrate device identity engine into TSCM sweep
- Import device identity functions (get_identity_engine, ingest_ble_dict, etc.)
- Initialize and clear identity engine at sweep start
- Feed BLE observations to identity engine during Bluetooth scan
- Feed WiFi observations to identity engine during WiFi scan
- Finalize sessions and emit identity_clusters event at sweep completion
- Include identity cluster statistics in sweep results

The device identity engine provides MAC-randomization resistant detection
by clustering observations using fingerprinting, timing patterns, and
RSSI trajectory analysis.
2026-01-14 16:34:49 +00:00
Smittix
07af3acb84 Fix rtl_433 bias-t flag and add TSCM enhancements
- Fix bias-t option in rtl_433 for RTL-SDR and HackRF:
  - rtl_433's -T flag is for timeout, not bias-t
  - RTL-SDR: Use :biast=1 suffix on device string
  - HackRF: Use bias_t=1 in SoapySDR device string
- Add "Listen (FM/AM)" buttons to TSCM RF signal details
  - Switches to Listening Post mode and tunes to frequency
- Fix device detail header padding to prevent protocol badge
  overlapping with close button
2026-01-14 16:27:07 +00:00
Smittix
b2feccdb90 Improve TSCM modal close button visibility
- Add circular background to close button
- Use visible border and solid background color
- Increase z-index to ensure it's above content
- Add hover effect with red background
- Better positioning and sizing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 15:53:23 +00:00
Smittix
db2f46b46e Add root privilege check and warning display
- Add startup check in app.py for root/sudo privileges
- Show warning in terminal if not running as root
- Add running_as_root flag to TSCM devices API response
- Display privilege warning in TSCM UI when not running as root
- Show command to run with sudo in the warning
- Add CSS styling for privilege warning banner

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 15:37:56 +00:00
Smittix
ff7c768287 Fix RF scanning and add status feedback
- Remove requirement for sdr_device to be set before RF scanning
- Add RTL-SDR device detection check with rtl_test before scanning
- Lower signal detection threshold from -50dBm to -70dBm
- Lower noise floor threshold from 15dB to 10dB above noise
- Add rf_status event for frontend feedback when RF unavailable
- Show status message in RF panel explaining why scanning isn't working
- Add CSS styling for status messages
- Reset RF status message when sweep starts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 15:35:47 +00:00
Smittix
236fbf061c Fix TSCM modal readability issues
- Fix transparent modal background: use --bg-card instead of undefined --panel-bg
- Add box-shadow to modal for better visibility
- Fix reason text color: use --text-secondary instead of hard-to-read --text-muted
- Fix device details section headings and table labels
- Fix indicator tags, disclaimer text, and reasons list colors

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 15:25:53 +00:00