Closed alphafox02 closed 2 years ago
My demodulator's frequency adjusting is quite bad, so center frequency setting needs to be precise enough. Low/high frequencies is just bounds, where demodulator will be able to move in search of the signal. And, as far as i know, inmarsat signal on 1537... does not contain any messages, only service data. To see it, add "--print-all-packets" to the parser arguments. To check decoding results(raw frames), add "--verbose" to decoder arguments. SDR++ module version of demodulator is under development currently.
I'll give it another try this weekend. I believe I had a different center freq plugged in when I had GQRX. In both cases, it's cutoff in the image, I had print all packets and verbose on, didn't see anything come up. For the center freq, can I define it in more detail then just "1537"? I'll have to look at the source code again and see what the argument is accepting.
That's great to hear about a potential SDR++ module in the works. I'm wanting to put your application in DragonOS.
I think you've understood "center frequency" wrong. It is not the actual signal frequency in MHz, but center frequency of the signal in the audio band in Hz
I for sure did, thank you for putting me on the right track.
I used scytale-c to help me figure out the audio center freq, was in the 1800s. Receiving messages now and maybe this should be a separate ticket, but I'll see if it does it again. So far it's happened maybe a few time to the parser window with --print-all-packets and --verbose on.
unknown1Hex:
0000�0�
terminate called after throwing an instance of 'nlohmann::detail::type_error' what(): [json.exception.type_error.316] invalid UTF-8 byte at index 9: 0x8A Aborted (core dumped)
Can you please send a full stack trace?
Sure, do I need to compile the program differently to provide the full trace? Besides what I pasted there was just the actual parsed message. I’ll set it up and let it run again this weekend.
Edit: Will running it with gdb help?
Compiled normal, but ran with gdb
`packet:
type: Individual Poll (a3)
frameNumber: 118a
timestamp: Sat Jul 23 06:46:39 2022
decodingStage: partial
packetLength: 28
payload: no
packetVars:
lesId:
21
lesName:
21, Unknown
mesId:
6133311
sat:
0
satName:
Atlantic Ocean Region West (AOR-W)
shortMessage:
POLESTAR
unknown1Hex:
00
0 0@0�0�
terminate called after throwing an instance of 'nlohmann::detail::type_error' what(): [json.exception.type_error.316] invalid UTF-8 byte at index 9: 0x8A
Program received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. `
I'm not sure how to build with debugging symbols in cpp, I tried going in to /stdcdec/build/CMakeFiles/stdc_parser.dir and adding a -g to the flags.txt file and rebuilding but I'm not sure if that's right.
Use -DCMAKE_BUILD_TYPE=Debug in cmake options, this will add debugging symbols. In gdb, after SIGABRT, enter "bt" and give me results.
Program received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt
s="0\000\060\t0_0\000\060\212\060@", ensure_ascii=false) at /home/dragon/stdcdec/json.hpp:15939
val=..., pretty_print=false, ensure_ascii=false, indent_step=0, current_indent=0)
at /home/dragon/stdcdec/json.hpp:15676
val=..., pretty_print=false, ensure_ascii=false, indent_step=0, current_indent=0)
at /home/dragon/stdcdec/json.hpp:15606
val=..., pretty_print=false, ensure_ascii=false, indent_step=0, current_indent=0)
at /home/dragon/stdcdec/json.hpp:15596
ensure_ascii=false, error_handler=nlohmann::detail::error_handler_t::strict)
at /home/dragon/stdcdec/json.hpp:18673
(gdb)
1990653 this should fix it
Excellent, I’ll rebuild and retest shorty. One other question, then I should probably close this ticket. What’s the best way to determine audio center freq? Now I’m using scytale-c to cheat and find what it says is good, but there must be some better way that I just am not understanding yet.
Unfortunately, currently only ways are to use external software with audio FFT or to look at the frequency receiver tuned to and actual signal center frequency and substract them to get audio center freq.
I think I have a good solution with SigDigger. I can use it to feed your demod tool and it gives me the audio offset!
I’ve previously been successful in receiving data using a wine appimage and scytale-c at least as far as the demod piece and data getting over to the UI - however due to a think sql and wine issues the actual messages were not parsed/displayed.
It appears with this project I can replace all of that. I just maybe need a little better understanding of the low/high/center freq settings and if that somehow correlates to what I have set in gqrx. You’ll see in this picture I’m using SDR++, but I was also using gqrx and sending over udp to your application. I’ve just gotten started so I’m sure I’m not doing something right, so far I’ve not seen any indication of information being passed between windows. Any help with initial setup would be much appreciated.