Open F5OEO opened 5 years ago
The good news is that I had already implemented the free text encoding (see packtext77()), but hadn't added it to the pack77() routine. Didn't test too much, but seems to work now. Check https://github.com/kgoba/ft8_lib/commit/dd6599bee686b10b4b2661fda1f593d15d498544
Telemetry is still pending, I have written the decoding routine, so it's just a matter of taking my time.
Also congrats of completing a QSO! That makes me proud as well :)
Thx, latest commit is working and decoded by WSJT-X. A lot of good feedbacks on twitter when announced transmitting with raspberry using ft8_lib. A great thanks as main work is yours. Plan to use rtlsdr dongle to demodulate baseband and send to decodeft8 in a near future.
Does free text decoding work?
I get:
$ ./gen_ft8 "123456789ABCD" junk.wav && ./decode_ft8 junk.wav
Packed data: 06 c6 35 75 bb 05 c6 80 30 00
FSK tones: 3140652016520462622650641600040012273140652547510161532200133002154440523140652
92 blocks, 960 bins
N_FFT = 3840
FFT work area = 38688
Max magnitude: -8.6 dB
000000 69 1.6 1034 ~
000000 252 1.1 1000 ~ FATLRR47NP8SS
Decoded 2 messages
Hi drf5n, you're right, I am seeing the same behaviour. I will investigate. By the look it seems it understands it's a free-text message but either encoding or decoding is off by some value. It has been implemented, I remember testing it, but then again I still don't have a robust test suite for this library.
Perhaps good test sets for free text might be these:
CQ RU KF1ABC FN42
KF1ABC WA9XYZ 579 WI
WA9XYZ KF1ABC R 589 MA
KF1ABC WA9XYZ RR73
KF1ABC GM1AAA 559 0013
WA9XYZ KF1ABC 73
KF1ABC GM1AAA 559 0013
GM1AAA KA1ABC R 569 MA
KF1ABC GM1AAA RR73
GM1AAA KA1ABC 73
-- from the Jan 2019 article http://physics.princeton.edu/pulsar/k1jt/FT8_RTTY_Roundup.pdf
with
TNX ROBERT 73
5W VERT 73 GL
from http://physics.princeton.edu/pulsar/k1jt/wsjtx-doc/wsjtx-main-1.7.1-devel.html
or
CHK TX AF LVL
CHK UR CLOCK
G4IFB.COM 73
NO DECODE SRI
OUCH LOUD 73
PLS EMAIL ME
QRM PLS QSY
SRI FINGR TRBL
TNX NEW 1 73
TNX GRID 73
TNX QRX 73
TRY HOLDTX 73
TU LOGGED 73
UPD8 WSJTX 73
from https://www.physics.princeton.edu/pulsar/K1JT/FT8_Operating_Tips.pdf
Adding a frequency option with https://github.com/kgoba/ft8_lib/pull/6 might help with creating tests.
Thanks, David, I will check it out, but for now I think I have fixed the free-text issue. There was a bug in the decoding process.
By the way, WSJT-X accepts WAV files generated by gen_ft8, so you can check for correctness that way as well. It's hiding under "File/Open".
Yep. It works fine with a generated 50Hz separation, 14 message, 50 Hz separation wav file:
$ ./decode_ft8 mixed.wav |sort -n -k 4
92 blocks, 960 bins
N_FFT = 3840
FFT work area = 38688
Max magnitude: -30.2 dB
Decoded 14 messages
000000 176 1.0 197 ~ CHK TX AF LVL
000000 178 1.0 250 ~ CHK UR CLOCK
000000 171 1.0 297 ~ G4IFB.COM 73
000000 177 1.0 350 ~ NO DECODE SRI
000000 171 1.0 397 ~ OUCH LOUD 73
000000 169 1.0 447 ~ PLS EMAIL ME
000000 169 1.0 497 ~ QRM PLS QSY
000000 174 1.0 547 ~ SRI FINGR TRB
000000 164 1.0 597 ~ TNX NEW 1 73
000000 180 1.0 650 ~ TNX GRID 73
000000 167 1.0 697 ~ TNX QRX 73
000000 256 1.1 750 ~ TRY HOLDTX 73
000000 169 1.0 797 ~ TRY LOGGED 73
000000 270 1.1 850 ~ UPD8 WSJTX 73
And in WSJT:
Wave file generated from this bash script using the frequency patch:
./gen_ft8 "CHK TX AF LVL" 001.wav 200
./gen_ft8 "CHK UR CLOCK" 002.wav 250
./gen_ft8 "G4IFB.COM 73" 003.wav 300
./gen_ft8 "NO DECODE SRI" 004.wav 350
./gen_ft8 "OUCH LOUD 73" 005.wav 400
./gen_ft8 "PLS EMAIL ME" 006.wav 450
./gen_ft8 "QRM PLS QSY" 007.wav 500
./gen_ft8 "SRI FINGR TRBL" 008.wav 550
./gen_ft8 "TNX NEW 1 73" 009.wav 600
./gen_ft8 "TNX GRID 73" 00a.wav 650
./gen_ft8 "TNX QRX 73" 00b.wav 700
./gen_ft8 "TRY HOLDTX 73" 00c.wav 750
./gen_ft8 "TRY LOGGED 73" 00d.wav 800
./gen_ft8 "UPD8 WSJTX 73" 00e.wav 850
sox -m 0*.wav mixed.wav
Standard messages work well and I could make a complete QSO using it. Wondering how to contribute to allow free text or telemetry. Do you have any "understable" link which describe the 13 characters protocol in order to add other modes (pack.cpp related) ?