Building a kaitai struct for processing FOX-DUV frames

I can take a closer look and test it with some of the frames I’ve got later tonight.
Is there a git repository somewhere with the kaitai struct?

Just uploaded it to my github account:

See file fox_masked.ksy. Thanks in advance :slight_smile:

I didn’t get to it yesterday but just took a quick look. Your header is correct, but the bitshifts in the rt frame are not. A quick hint till I have more time:

      batt_a_v:
        value: '((b1 & 0xf) << 8 | b0)'
      batt_b_v:
        value: '(b2 << 4 | b1 >> 4)'
      batt_c_v:
        value: '((b4 & 0xf) << 8 | b3)'
      batt_a_t:
        value: '(b5 << 4 | b4 >> 4)'
      batt_b_t:
        value: '((b7 & 0xf) << 8 | b6)'
      batt_c_t:
        value: '(b8 << 4 | b7 >> 4)'

This gives batt_c_v = 0xAF8 = 2808. And by using the scaling from FoxTelem (FoxFramePart.java):

private static final double VOLTAGE_STEP_FOR_2V5_SENSORS = 2.5/4096;
private static final double BATTERY_C_SCALING_FACTOR = 0.5;

you get 2808 * (2.5/4096) / 0.5 = 3.427... The current MIN for bat_c_v is 3.39, MAX is 4.48, so it’s inside the range and plausible. But I haven’t had time to verify other values, yet.

2 Likes

I am not yet completely following this, but values look more valid than mine :wink:

But I am getting closer… Seems I made a mistake at the splits, as they don’t occur in the first byte (what gets clearer as I am reading the comments again and again).

Updated the struct and will just upload it to the github account to validate.
I’ll try to update the IHU Diag values also.

Let’s see…

P.S.: There are only 13 bits left unparsed, but I have 6 bytes left in the dataset… :thinking:

Added the missing bits also.
They “should be correct” if I am understanding this right, now! :smiley:

Hey, all! At the v1.4.2 of the gr-satnogs you can find the fixed version of the DUV decoder. Many thanks to all you guys for spotting this!

2 Likes