mirror of
https://github.com/smittix/intercept.git
synced 2026-04-23 22:30:00 -07:00
fix(weather-sat): lower default gain to 30 dB to prevent ADC saturation
Strong passes at 40 dB (the previous default) cause RTL-SDR ADC clipping, producing a distorted IQ stream that SatDump cannot lock onto. 30 dB is a safer starting point that still captures weak passes cleanly. Also adds a UI hint below the gain control explaining the saturation issue. Closes #185
This commit is contained in:
@@ -459,7 +459,7 @@ SATELLITE_TRAJECTORY_POINTS = _get_env_int('SATELLITE_TRAJECTORY_POINTS', 30)
|
|||||||
SATELLITE_ORBIT_MINUTES = _get_env_int('SATELLITE_ORBIT_MINUTES', 45)
|
SATELLITE_ORBIT_MINUTES = _get_env_int('SATELLITE_ORBIT_MINUTES', 45)
|
||||||
|
|
||||||
# Weather satellite settings
|
# Weather satellite settings
|
||||||
WEATHER_SAT_DEFAULT_GAIN = _get_env_float('WEATHER_SAT_GAIN', 40.0)
|
WEATHER_SAT_DEFAULT_GAIN = _get_env_float('WEATHER_SAT_GAIN', 30.0)
|
||||||
WEATHER_SAT_SAMPLE_RATE = _get_env_int('WEATHER_SAT_SAMPLE_RATE', 2400000)
|
WEATHER_SAT_SAMPLE_RATE = _get_env_int('WEATHER_SAT_SAMPLE_RATE', 2400000)
|
||||||
WEATHER_SAT_MIN_ELEVATION = _get_env_float('WEATHER_SAT_MIN_ELEVATION', 15.0)
|
WEATHER_SAT_MIN_ELEVATION = _get_env_float('WEATHER_SAT_MIN_ELEVATION', 15.0)
|
||||||
WEATHER_SAT_PREDICTION_HOURS = _get_env_int('WEATHER_SAT_PREDICTION_HOURS', 24)
|
WEATHER_SAT_PREDICTION_HOURS = _get_env_int('WEATHER_SAT_PREDICTION_HOURS', 24)
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ def start_capture():
|
|||||||
{
|
{
|
||||||
"satellite": "METEOR-M2-3", // Required: satellite key
|
"satellite": "METEOR-M2-3", // Required: satellite key
|
||||||
"device": 0, // RTL-SDR device index (default: 0)
|
"device": 0, // RTL-SDR device index (default: 0)
|
||||||
"gain": 40.0, // SDR gain in dB (default: 40)
|
"gain": 30.0, // SDR gain in dB (default: 30)
|
||||||
"bias_t": false // Enable bias-T for LNA (default: false)
|
"bias_t": false // Enable bias-T for LNA (default: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@ def start_capture():
|
|||||||
# Validate device index and gain
|
# Validate device index and gain
|
||||||
try:
|
try:
|
||||||
device_index = validate_device_index(data.get('device', 0))
|
device_index = validate_device_index(data.get('device', 0))
|
||||||
gain = validate_gain(data.get('gain', 40.0))
|
gain = validate_gain(data.get('gain', 30.0))
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
logger.warning('Invalid parameter in start_capture: %s', e)
|
logger.warning('Invalid parameter in start_capture: %s', e)
|
||||||
return jsonify({
|
return jsonify({
|
||||||
@@ -689,7 +689,7 @@ def enable_schedule():
|
|||||||
"longitude": -0.1, // Required
|
"longitude": -0.1, // Required
|
||||||
"min_elevation": 15, // Minimum pass elevation (default: 15)
|
"min_elevation": 15, // Minimum pass elevation (default: 15)
|
||||||
"device": 0, // RTL-SDR device index (default: 0)
|
"device": 0, // RTL-SDR device index (default: 0)
|
||||||
"gain": 40.0, // SDR gain (default: 40)
|
"gain": 30.0, // SDR gain (default: 30)
|
||||||
"bias_t": false // Enable bias-T (default: false)
|
"bias_t": false // Enable bias-T (default: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Gain (dB)</label>
|
<label>Gain (dB)</label>
|
||||||
<input type="number" id="weatherSatGain" value="40" step="0.1" min="0" max="50">
|
<input type="number" id="weatherSatGain" value="30" step="0.1" min="0" max="50">
|
||||||
|
<p class="info-text" style="font-size: 10px; color: var(--text-dim); margin-top: 3px;">Reduce if decoding fails on strong passes (ADC saturation).</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label style="display: flex; align-items: center; gap: 6px;">
|
<label style="display: flex; align-items: center; gap: 6px;">
|
||||||
|
|||||||
Reference in New Issue
Block a user