diff --git a/routes/morse.py b/routes/morse.py
index 6cd2049..6675600 100644
--- a/routes/morse.py
+++ b/routes/morse.py
@@ -350,6 +350,13 @@ def start_morse() -> Response:
iq_cmd[-1:-1] = ['-D', str(direct_sampling_mode)]
else:
iq_cmd.extend(['-D', str(direct_sampling_mode)])
+ # Some rtl_sdr builds treat "-" as a literal filename instead of stdout.
+ # Use /dev/stdout explicitly on Unix-like systems for deterministic piping.
+ if iq_cmd:
+ if iq_cmd[-1] == '-':
+ iq_cmd[-1] = '/dev/stdout'
+ elif '/dev/stdout' not in iq_cmd:
+ iq_cmd.append('/dev/stdout')
return iq_cmd, tune_mhz
can_try_direct_sampling = bool(sdr_device.sdr_type == SDRType.RTL_SDR and freq < 24.0)
@@ -628,7 +635,7 @@ def start_morse() -> Response:
if rtl_process is None or stop_event is None or control_queue is None or decoder_thread is None:
msg = 'SDR capture started but no PCM stream was received.'
if attempt_errors:
- msg = msg + ' ' + ' | '.join(attempt_errors[-2:])
+ msg = msg + ' ' + ' | '.join(attempt_errors)
logger.error(f'Morse startup failed: {msg}')
with app_module.morse_lock:
if morse_active_device is not None:
diff --git a/templates/index.html b/templates/index.html
index a48009b..a45d8d0 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -3193,7 +3193,7 @@
-
+