-
-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AAUSAT-4 decoding difference between gr_satellites and SatNOGS #208
Comments
Hi Jan, Thanks for reporting this. Now I understand better the difference between SatNOGS and gr-satellites. In fact, @nickoe already mentioned this in his comment. He said that he preferred the HMAC to be included in the DB entries, but he saw that most of the entries stripped the HMAC, so he decided to strip it too in the decoder he did for SatNOGS. From your link, I see that the HMAC is the last 2 bytes of the FEC data. As I mentioned in my comment, gr-satellites includes everything in the FEC frame. Now I see that this also includes the HMAC, which are in fact the last two bytes Now my question is: why most of the DB entries have the HMAC stripped? I understand that the SatNOGS decoder that Nick did is a relatively new thing, so these entries don't come from SatNOGS. Does the UZ7HO soundmodem strip the HMAC? Did an older version of gr-satellites strip the HMAC? (this could be checked in the git history). I'm happy to change the gr-satellites decoder, but I think the decision for AAUSAT-4 should be given to Nick, since he is the operator of this satellite. Should we change all the decoders to include the HMAC in the DB entries or to strip it away? |
When I started work on my decoder there was no decoder in gr-satellites IIRC. You "thankfully" based your work on my endeavor to learn gnuradio, where I made my first "decoder", as documented in https://destevez.net/2016/05/a-bunch-of-data-from-aausat-4/ :) As far as I understand most packages in the db before I started pushing data was introduced via the SIDS interface. And I think most data originated from DK3WN's software suite -- decoders and telemetry forwarder. So I suspect it was stripped here. |
Apart from the decoder running at the AAUSAT-4 ground station that is operated by Nick, there is no AAUSAT decoder within the SatNOGS network. So all the decoded data being send are coming from gr_satellites via SIDS or the SoundModem solution from UZ7HO in combination with the SIDS Telemetry Forwarder made by Mike DK3WN. So when Nick gives his final solution this should also be changed by Andy UZ7HO. |
Sorry for messing up the timeline! Since you mentioned "I just made my AAUSAT4 satnogs decoder" I assumed you had added an AAUSAT-4 decoder to SatNOGS recently (which I guess is also true) and forgot that you wrote the original AAUSAT-4 decoder. As you've said, this was a very helpful resource for me to implement my AAUSAT-4 decoder (and this was before gr-satellites really existed as a project). As Jan mentioned, most of the frames in the DB come from UZ7HO's soundmodem and from gr-satellites. I don't know what UZ7HO's soundmodem does, but I'm digging a bit in the old versions of gr-satellites and it seems it stripped the HMAC and it also stripped the length field. The decision to strip the length field actually comes from Jeppe's code, and the decision to strip the HMAC, who knows. I believe this was changed in 361479d (December 2019), in which the current behaviour where the length field and HMAC are not stripped are introduced. So I guess this explains why most of the frames in the database don't have the length field and HMAC. |
To complete the information I have also used the UZ7HO HS Soundmodem version 0.21b with AAUSAT-4 support and that produces the following data:
I hope this will be enough information to standardize the AAUSAT-4 demodulation. |
Thanks Jan, So it seems that UZ7HO also strips the length field and HMAC. Again, I don't really remember the timeline (and this time I would need to dig through old emails rather than the git history), but it may had happened that Andy UZ7HO based his decoder on mine and so chose to do the same thing that the old gr-satellites did. I think we already have enough information about what each software does and the historical reasons for that, and we can go and decide what we want to do for the future. |
Thanks Daniel, Nick will need to answer your question and then when it is clear gr_satellites and the SoundModem from Andy can be altered. |
I just had a small call with Daniel. We essentially agreed that it makes most sense to drop the length field and include the hmac. In principle we could also keep the length field, but it is sort of redundant because at this time you how big the frame is. @janvgils I guess we need UZ7HO to agree and notify DK3WN for consistency. |
Thanks for the update, I have just informed the others that are involved. |
I will use the following observation to compare all the difference demodulation options:
This is the data that was send/stored in the SatNOGS database:
The first new release that is available is from UZ7HO and that produces the following output: This is the method used to decode:
SoundModem Output:
GetKISS Output:
SIDS database entry:
Apart from some leading and ending bytes this seems to be same, please share your thoughts so we can decide if this new UZ7HO version can be used in the future. When the gr-satellites AAUSAT change becomes available I will test the same setup if necessary. |
Hi Jan, Thanks for running this test. The SIDS data base entry obtained with UZ7HO's soundmodem + GetKISS+ has the problem that it includes the length field (the initial I'll also make the change in gr-satellites master branch today and will link this issue in the commit so that you can test it. |
As an aside note to your test, Jan, the SatNOGS DB entry is also "wrong" according to the decision Nick and I made. It's missing the HMAC, which are the last two bytes ( |
To standardize the format in which AAUSAT-4 frames are stored in SatNOGS DB, together with @nickoe, who is the satellite operator, we have decided to remove the length field and preserve the HMAC field in the frames that gets sent to the DB. This commit implements the decision by removing the length field from the output of the Reed-Solomon decoder in the deframer. See #208
I have just pushed a commit to master that removes the length field, as we decided. Here is my test of this with the test recording in satellite-recordings. In the previous revision 31fd8df, we get
In the new revision ac8e32f, we get
We can also see that the HMAC ( |
I have used the same observation as the previous tests, now with the latest gr-satellites version and see below the outcome.
|
After some email discussion with Nick, Andy UZ7HO, Jan and Mike, we have decided to keep both the packet length field and the HMAC in frames sent to the database. The main reason for this decision is that we are not so sure on why it was originally included, so we think that the safest option is to include it, even though it is probably redundant in most cases. As Nick wrote:
I will now revert ac8e32f. |
Decoding with the help of HS SoundModem version 2.6 and using the same observation. 'https://network.satnogs.org/observations/3289222/'
The kiss frame generated by GetKISS+
The SIDS database entry (this is development SIDS db)
Decoding based on the reverted gr-satellites build
Currently this will be the "final" outcome and produces similar data by all demodulators. Thank you to all that are involved, to reach this outcome. |
@nickoe Is all the data that is send by the different solution the same so it produces the same information at the database level? If so, please let us know so we can close this issue. |
@janvgils Yes, everything looks good now. I think we can close this issue. Thank all you very much for the effort :) |
Ok. Closing. Thanks everyone! |
Background, see: daniestevez/gr-satellites#208 (comment) Later on we decided to keep the length as well, but to be sure to decode all packets we handle all threee cases: 1. No length and HMAC 2. Length and HMAC 3. Only HMAC Only decode as beacon when the csp header says it is a beacon, that is: * dstPort = 0x0A (MCC_PORT_BEACON) * destination = 0x09 (NODE_MCC) Signed-off-by: Nick Østergaard <oe.nick@gmail.com>
AAUSAT-4 data decoding differences
I know there is currently a thread on the SatNOGS community to standardize the decoding between multiple software builders and that AAUSAT is one of the satellites that is causing confusion.
When looking at the following SatNOGS observation that is done by the AAUSAT ground station, you can see there is a difference between the decoded data.
Maybe it is possible based on the data and the link at the bottom of this issue to solve the difference?
The SatNOGS observation that is used for the comparison https://network.satnogs.org/observations/3289222/
AAUSAT-4 decoded SatNOGS data:
Used gr_satellites cli command to replay the observation:
gr_satellites AAUSAT-4 --wavfile AAUSAT-4_satnogs_3289222_2020-12-13T00-47-30.wav --samp_rate 48e3 --hexdump
Here is also a link that I totally forgot that can maybe explain the behaviour: AAUSAT Information
The text was updated successfully, but these errors were encountered: