kopia lustrzana https://github.com/projecthorus/horusdemodlib
Porównaj commity
70 Commity
Autor | SHA1 | Data |
---|---|---|
Mark Jessop | 340670c7c1 | |
Mark Jessop | 04f48df632 | |
Mark Jessop | 5d0e746b16 | |
Mark Jessop | 7ec682936e | |
Mark Jessop | 645dc329a3 | |
Mark Jessop | d1f9da2e65 | |
Mark Jessop | 444860ed28 | |
Mark Jessop | 9c13329971 | |
Trick van Staveren | da48b508fc | |
Mark Jessop | 66c9a47315 | |
Mark Jessop | 839f9a06fd | |
Mark Jessop | 772eb08466 | |
Mark Jessop | 6f6d386f8c | |
Mark Jessop | 46c15c5cba | |
Mark Jessop | ea608f4ba0 | |
Mark Jessop | 5366134aac | |
Mark Jessop | 8fde8b9ad2 | |
Mark Jessop | 4439fbc430 | |
Mark Jessop | 3660d0cc7c | |
Mark Jessop | 60b88fd495 | |
Mark Jessop | 9df66628a4 | |
Mark Jessop | 7f098068bb | |
Mark Jessop | 744e0e7071 | |
Mark Jessop | f094c0c0ce | |
Mark Jessop | d00d984e78 | |
Mark Jessop | eb911c8c0e | |
Mark Jessop | df1b81fc41 | |
Mark Jessop | 24f34fe6cd | |
Mark Jessop | fa959febea | |
Mark Jessop | 2aa0dda4bb | |
Mark Jessop | 0956b08d36 | |
Mark Jessop | 1265b069eb | |
Mark Jessop | fdae85612c | |
Mark Jessop | d3e8e903c9 | |
Mark Jessop | 3311211ef6 | |
sp6qkm | 1e2ef897c7 | |
Mark Jessop | afd180be66 | |
Mark Jessop | 7ab762727e | |
Mark Jessop | 5f7475b56d | |
Mark Jessop | d4cbfa4998 | |
Mark Jessop | 202454bf44 | |
Mark Jessop | dd40912fc8 | |
Mark Jessop | c85f8d3260 | |
Mark Jessop | 61aa309389 | |
Mark Jessop | bb75540904 | |
Mark Jessop | 02058a6d38 | |
Mark Jessop | b9d370df7e | |
Mark Jessop | bc67f77121 | |
Mark Jessop | 03b7abc6c7 | |
Mark Jessop | 0445e2d569 | |
Mark Jessop | 189a0b23e5 | |
Mark Jessop | b0a7df7336 | |
Mark Jessop | 64b477f17a | |
Mark Jessop | b26ab6ab14 | |
Mark Jessop | 6b28a30bbe | |
Mark Jessop | 6b7a6bf21f | |
Mark Jessop | 5818abc1fc | |
Mark Jessop | d6ba4e95f9 | |
Mark Jessop | 256228b107 | |
Mark Jessop | c9b3104cd0 | |
Mark Jessop | da46126062 | |
sp6qkm | f70d7bbb79 | |
Mark Jessop | 997261377c | |
Mark Jessop | a88afd4f4e | |
Mark Jessop | 562525088c | |
Mark Jessop | a916fab44d | |
Mark Jessop | 794a2c1e5a | |
Mark Jessop | cfef63cb29 | |
Mark Jessop | a63f1c9488 | |
Mark Jessop | 367fc797c7 |
|
@ -131,5 +131,31 @@
|
|||
["flight_number", "none"],
|
||||
["sonde_type", "none"]
|
||||
]
|
||||
}
|
||||
},
|
||||
"SP9SKP": {
|
||||
"comment": "SKP telemetry",
|
||||
"struct": "<BBBBBHH",
|
||||
"fields": [
|
||||
["fix_voltage", "battery_5v_byte"],
|
||||
["io_voltage", "battery_5v_byte"],
|
||||
["reset_voltage", "battery_5v_byte"],
|
||||
["pv_voltage", "divide_by_100"],
|
||||
["time_to_fix", "none"],
|
||||
["uv_max", "none"],
|
||||
["uv_avg", "none"]
|
||||
]
|
||||
},
|
||||
"SKPQKM": {
|
||||
"comment": "SKPQKM telemetry",
|
||||
"struct": "<BBBBBHH",
|
||||
"fields": [
|
||||
["fix_voltage", "battery_5v_byte"],
|
||||
["io_voltage", "battery_5v_byte"],
|
||||
["reset_voltage", "battery_5v_byte"],
|
||||
["pv_voltage", "divide_by_100"],
|
||||
["time_to_fix", "none"],
|
||||
["uv_max", "none"],
|
||||
["uv_avg", "none"]
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
12, DK0WT-4FSK
|
||||
13, PE1ANS-4FSK
|
||||
14, WBLSCOUTS-4FSK
|
||||
15, PA0CAB-4FSK
|
||||
15, PA0CAB-SK
|
||||
16, PRESCOTTSOUTH
|
||||
17, EAGLE-1-4FSK
|
||||
18, VK8TH-4FSK
|
||||
|
@ -326,7 +326,7 @@
|
|||
446, DL1MRZ-3
|
||||
447, DL1MRZ-4
|
||||
448, KI5RZY
|
||||
449, PA0CAB
|
||||
449, PA0CAB-SK
|
||||
450, DL6PI
|
||||
451, PA3GPU-GSN-4FSK
|
||||
452, FUN-4FSK
|
||||
|
@ -391,8 +391,101 @@
|
|||
511, IU0MUN
|
||||
512, IZ0CGP
|
||||
513, VK3FUR
|
||||
514, RXSONDE
|
||||
515, Molly-1
|
||||
516, IT9EWK
|
||||
517, NEC_CQ73
|
||||
518, YT1C
|
||||
519, 9A4GE
|
||||
520, PE9M
|
||||
521, PD3T
|
||||
522, PE1GLG
|
||||
523, KITE-1
|
||||
524, 9A1FER
|
||||
525, SP6QKM
|
||||
526, SP8KDE
|
||||
527, SQ8AOL
|
||||
528, SQ9AOL
|
||||
529, NANO-1
|
||||
530, SKPQKM
|
||||
531, DG4CG
|
||||
532, KJ0RE
|
||||
533, PA4VB
|
||||
534, PA4VB-KITE
|
||||
535, F6AGV-BHAF
|
||||
536, KE2CBS
|
||||
537, PA3EIV
|
||||
538, PA9K
|
||||
539, YU7TDA
|
||||
540, 9A4GE-2
|
||||
541, F1AQE
|
||||
542, PD1EG
|
||||
543, Xpico
|
||||
544, SP7XSS
|
||||
545, SP7XSS-2
|
||||
546, SP9RKF
|
||||
547, KB3ZOX-2
|
||||
548, 9A3SWO
|
||||
549, KD2KPZ
|
||||
550, F4KLR
|
||||
551, PD1NW
|
||||
552, PA3ADE-KITE
|
||||
553, SQ6DAG
|
||||
554, StratoSoar
|
||||
555, DG4CG-2
|
||||
556, DG4CG-3
|
||||
557, DG4CG-1
|
||||
558, AK3F
|
||||
559, Martinus-MZ
|
||||
560, DG4CG-4
|
||||
561, DG4CG-5
|
||||
562, DG4CG-6
|
||||
563, SQ2CPA
|
||||
564, Party-Time
|
||||
565, PWrSpace-in
|
||||
566, RFA-0
|
||||
567, RFA-1
|
||||
568, RFA-2
|
||||
569, 9A4GE-3
|
||||
570, MATHRO
|
||||
571, RUEDGUE
|
||||
572, IDA
|
||||
573, DL9GKJ
|
||||
574, PA0ESH
|
||||
575, Ypico
|
||||
576, SP9WAK
|
||||
577, DG4CG-Solar
|
||||
578, DB1TH
|
||||
579, DL1BRF
|
||||
580, PD7BOR
|
||||
581, PA0CAB-SKt
|
||||
582, SQ2CPA-31
|
||||
583, SQ2CPA-32
|
||||
584, SQ2CPA-33
|
||||
585, MATZE-HRO
|
||||
586, SP8CLR-1
|
||||
587, SP8CLR-2
|
||||
588, SP8CLR-3
|
||||
589, SP8CLR-4
|
||||
590, HF8HAY
|
||||
591, KE5GDB
|
||||
592, K5RWK
|
||||
593, W5NGU
|
||||
594, K5PRK
|
||||
595, FER-Klovic1
|
||||
596, FER-Klovic2
|
||||
597, DL8MIK
|
||||
598, KD9PRC-4FSK-1
|
||||
599, KD9PRC-4FSK-2
|
||||
600, PE1GLG-2
|
||||
601, VK3VSM
|
||||
602, EA2EYI
|
||||
603, N6PWY
|
||||
604, VE3SVF
|
||||
605, SA7BNT-1
|
||||
31415, HORUS-V2
|
||||
31416, ITSWINDY
|
||||
31417, HORUSRADMON
|
||||
31418, HORUSGEIGER
|
||||
31419, VI25AREG
|
||||
31420, VK5ARG
|
||||
|
|
|
@ -53,7 +53,7 @@ int main(int argc, char *argv[]) {
|
|||
float loop_time;
|
||||
int enable_stats = 0;
|
||||
int quadrature = 0;
|
||||
int fsk_lower = -1;
|
||||
int fsk_lower = -99999;
|
||||
int fsk_upper = -1;
|
||||
int Rs = -1;
|
||||
int tone_spacing = -1;
|
||||
|
@ -224,9 +224,11 @@ int main(int argc, char *argv[]) {
|
|||
stats_ctr = 0;
|
||||
}
|
||||
|
||||
if((fsk_lower> 0) && (fsk_upper > fsk_lower)){
|
||||
if((fsk_upper > fsk_lower) && (fsk_lower > -99999)){
|
||||
horus_set_freq_est_limits(hstates, fsk_lower, fsk_upper);
|
||||
fprintf(stderr,"Setting estimator limits to %d to %d Hz.\n",fsk_lower, fsk_upper);
|
||||
} else {
|
||||
printf(stderr,"Not setting estimator limits, upper must be higher than lower.");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,136 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# Horus Binary *Triple* Decoder Script
|
||||
# Intended for situations with three payloads in the air, spaced ~10 kHz apart.
|
||||
# NOTE - Ensure your horus_demod build is from newer than ~5th April 2024, else this
|
||||
# will not work correctly!
|
||||
#
|
||||
# It also possible to extend this approach further to handle as many transmissions
|
||||
# as can be safely fitted into the receiver passband (+/- 24 kHz). Spacings of
|
||||
# 5 kHz between transmissions is possible with frequency stable transmitters (e.g. RS41s)
|
||||
# Don't try this with DFM17's, which drift a lot!
|
||||
#
|
||||
|
||||
# Change directory to the horusdemodlib directory.
|
||||
# If running as a different user, you will need to change this line
|
||||
cd /home/pi/horusdemodlib/
|
||||
|
||||
# The following settings are an example for a situation where there are three transmitters in the air,
|
||||
# on: 434.190 MHz, 434.200 MHz, and 434.210 MHz.
|
||||
|
||||
# The *centre* frequency of the SDR Receiver, in Hz.
|
||||
# It's recommended that this not be tuned directly on top of one of the signals we want to receive,
|
||||
# as sometimes we can get a DC spike which can affect the demodulators.
|
||||
# In this example the receiver has been tuned in the middle of 2 of the signals, at 434.195 MHz.
|
||||
RXFREQ=434195000
|
||||
|
||||
# Where to find the first signal - in this case at 434.190 MHz, so -5000 Hz below the centre.
|
||||
MFSK1_SIGNAL=-5000
|
||||
|
||||
# Where to find the second signal - in this case at 434.200 MHz, so 5000 Hz above the centre.
|
||||
MFSK2_SIGNAL=5000
|
||||
|
||||
# Where to find the third signal - in this case at 434.210 MHz, so 15000 Hz above the centre.
|
||||
MFSK3_SIGNAL=15000
|
||||
|
||||
# Frequency estimator bandwidth. The wider the bandwidth, the more drift and frequency error the modem can tolerate,
|
||||
# but the higher the chance that the modem will lock on to a strong spurious signal.
|
||||
RXBANDWIDTH=8000
|
||||
|
||||
# RTLSDR Device Selection
|
||||
# If you want to use a specific RTLSDR, you can change this setting to match the
|
||||
# device identifier of your SDR (use rtl_test to get a list)
|
||||
SDR_DEVICE=0
|
||||
|
||||
# Receiver Gain. Set this to 0 to use automatic gain control, otherwise if running a
|
||||
# preamplifier, you may want to experiment with different gain settings to optimize
|
||||
# your receiver setup.
|
||||
# You can find what gain range is valid for your RTLSDR by running: rtl_test
|
||||
GAIN=0
|
||||
|
||||
# Bias Tee Enable (1) or Disable (0)
|
||||
# NOTE: This uses the -T bias-tee option which is only available on recent versions
|
||||
# of rtl-sdr. Check if your version has this option by running rtl_fm --help and looking
|
||||
# for it in the option list.
|
||||
# If not, you may need to uninstall that version, and then compile from source: https://github.com/osmocom/rtl-sdr
|
||||
BIAS=0
|
||||
|
||||
# Receiver PPM offset
|
||||
PPM=0
|
||||
|
||||
|
||||
|
||||
|
||||
# Check that the horus_demod decoder has been compiled.
|
||||
DECODER=./build/src/horus_demod
|
||||
if [ -f "$DECODER" ]; then
|
||||
echo "Found horus_demod."
|
||||
else
|
||||
echo "ERROR - $DECODER does not exist - have you compiled it yet?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check that bc is available on the system path.
|
||||
if echo "1+1" | bc > /dev/null; then
|
||||
echo "Found bc."
|
||||
else
|
||||
echo "ERROR - Cannot find bc - Did you install it?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Use a local venv if it exists
|
||||
VENV_DIR=venv
|
||||
if [ -d "$VENV_DIR" ]; then
|
||||
echo "Entering venv."
|
||||
source $VENV_DIR/bin/activate
|
||||
fi
|
||||
|
||||
|
||||
# Calculate the frequency estimator limits for each decoder
|
||||
MFSK1_LOWER=$(echo "$MFSK1_SIGNAL - $RXBANDWIDTH/2" | bc)
|
||||
MFSK1_UPPER=$(echo "$MFSK1_SIGNAL + $RXBANDWIDTH/2" | bc)
|
||||
MFSK1_CENTRE=$(echo "$RXFREQ + $MFSK1_SIGNAL" | bc)
|
||||
|
||||
MFSK2_LOWER=$(echo "$MFSK2_SIGNAL - $RXBANDWIDTH/2" | bc)
|
||||
MFSK2_UPPER=$(echo "$MFSK2_SIGNAL + $RXBANDWIDTH/2" | bc)
|
||||
MFSK2_CENTRE=$(echo "$RXFREQ + $MFSK2_SIGNAL" | bc)
|
||||
|
||||
MFSK3_LOWER=$(echo "$MFSK3_SIGNAL - $RXBANDWIDTH/2" | bc)
|
||||
MFSK3_UPPER=$(echo "$MFSK3_SIGNAL + $RXBANDWIDTH/2" | bc)
|
||||
MFSK3_CENTRE=$(echo "$RXFREQ + $MFSK3_SIGNAL" | bc)
|
||||
|
||||
echo "Using SDR Centre Frequency: $RXFREQ Hz."
|
||||
echo "Using MFSK1 estimation range: $MFSK1_LOWER - $MFSK1_UPPER Hz"
|
||||
echo "Using MFSK2 estimation range: $MFSK2_LOWER - $MFSK2_UPPER Hz"
|
||||
echo "Using MFSK3 estimation range: $MFSK3_LOWER - $MFSK3_UPPER Hz"
|
||||
|
||||
BIAS_SETTING=""
|
||||
|
||||
if [ "$BIAS" = "1" ]; then
|
||||
echo "Enabling Bias Tee."
|
||||
BIAS_SETTING=" -T"
|
||||
fi
|
||||
|
||||
GAIN_SETTING=""
|
||||
if [ "$GAIN" = "0" ]; then
|
||||
echo "Using AGC."
|
||||
GAIN_SETTING=""
|
||||
else
|
||||
echo "Using Manual Gain"
|
||||
GAIN_SETTING=" -g $GAIN"
|
||||
fi
|
||||
|
||||
STATS_SETTING=""
|
||||
|
||||
if [ "$STATS_OUTPUT" = "1" ]; then
|
||||
echo "Enabling Modem Statistics."
|
||||
STATS_SETTING=" --stats=100"
|
||||
fi
|
||||
|
||||
# Start the receive chain.
|
||||
# Note that we now pass in the SDR centre frequency ($RXFREQ) and 'target' signal frequency ($MFSK1_CENTRE)
|
||||
# to enable providing additional metadata to SondeHub
|
||||
rtl_fm -M raw -F9 -d $SDR_DEVICE -s 48000 -p $PPM $GAIN_SETTING$BIAS_SETTING -f $RXFREQ \
|
||||
| tee >($DECODER -q --stats=5 -g -m binary --fsk_lower=$MFSK1_LOWER --fsk_upper=$MFSK1_UPPER - - | python -m horusdemodlib.uploader --freq_hz $RXFREQ --freq_target_hz $MFSK1_CENTRE ) \
|
||||
| tee >($DECODER -q --stats=5 -g -m binary --fsk_lower=$MFSK3_LOWER --fsk_upper=$MFSK3_UPPER - - | python -m horusdemodlib.uploader --freq_hz $RXFREQ --freq_target_hz $MFSK3_CENTRE ) \
|
||||
>($DECODER -q --stats=5 -g -m binary --fsk_lower=$MFSK2_LOWER --fsk_upper=$MFSK2_UPPER - - | python -m horusdemodlib.uploader --freq_hz $RXFREQ ) > /dev/null
|
Ładowanie…
Reference in New Issue