DL9AS / jufo-project-radiosonde

Ultralight radiosondes for long-term measurements in the stratosphere
GNU General Public License v3.0
10 stars 2 forks source link

Use unique tocall to aid detection and telemetry extraction #5

Closed darksidelemm closed 10 months ago

darksidelemm commented 1 year ago

I'm working on adding support to extract some comment-field telemetry to the SondeHub-Amateur APRS Gateway. This will enable display of telemetry along with positions on the sondehub-amateur tracker, as well as having telemetry be available for plotting in our Grafana instance.

Given the plethora of different comment-field formats out there, I really need a way to be able to detect what software the APRS packet is originating from to be able to select the appropriate parser. APRS has a mechanism for this in the 'tocall' field, also known as the 'device identified' which for this tracker is currently just set to 'APRS'.

You can read up on how to request a device ID here: https://github.com/aprsorg/aprs-deviceid/#adding-new-devices

Making this change would mean I can add support for your telemetry format, so it can be displayed on the tracker!

DL9AS commented 1 year ago

Hello, thank you very much for your message! Very gladly, I can request a custom device ID and use it in the software. I am in the process of rewriting the firmware for the radiosondes. Is there anything else I can change about the comment field to make it easier for you to parse?

Kind regards,

Amon Schumann - DL9AS

darksidelemm commented 1 year ago

As long as it remains consistent (e.g. what you have in your telemetry description is fine!), then it should be fine.

You can see some of the other parsers here: https://github.com/projecthorus/sondehub-aprs-gateway/blob/main/sondehub_aprs_gw/comment_telemetry.py#L47

darksidelemm commented 1 year ago

I have noticed that the tocalls request don't seem to be getting serviced (lots of open issues on that repo)... I guess try and pick something that isn't in use and hope for the best.

DL9AS commented 1 year ago

Hello, thanks a lot for your answer. In the long term I will try to request a custom device ID. For now I will use "APMON?". If I see this correctly, this should not be in use. For your information, here is the current APRS comment field format:

___APRS comment format___

Sample: /A=000000/F0N0T0E0Y0V0C0S0a0b0c0_XYZ

Fixed attributes for every packet:
  /A=[VALUE]/  Altitude [feet]
  F[VALUE]     Flight number
  N[VALUE]     Packet counter
  T[VALUE]     Temperature [deg C]
  E[VALUE]     MCU voltage [V*100]
  Y[VALUE]     Solar voltage [V*100]
  V[VALUE]     Speed [km/h]
  C[VALUE]     Course [deg]
  S[VALUE]     Satellite count

Optional attributes starting lower case [a-z]:
  a[VALUE]     Additional 0
  b[VALUE]     Additional 1
  d[VALUE]     Additional 2
  ...          ...

Optional additional comment
  _[STRING]    Additional comment

Kind regards,

Amon Schumann - DL9AS

hessu commented 11 months ago

Just a short note:

V[VALUE] Speed [km/h] C[VALUE] Course [deg]

It might be more effective to use the standard APRS course/speed extension (APRS101.PDF page 27) to send speed and course. All standard APRS parsers and devices handle it out of the box without requiring a custom decoder for this transmitter.

DL9AS commented 11 months ago

I previously had decided not to specify the course and speed as APRS data extension to keep the format consistent. But I also see the big advantage that standard APRS parsers can work with it. I will change this in the next firmware update.

Thanks for all your comments and kind regards,

Amon

DL9AS commented 10 months ago

I updated the format to specify course and speed as APRS data extension and committed the new firmware.

___APRS comment format___

  Sample: 000/000/A=000000/F0N0T0E0Y0S0a0b0c0_XYZ

  Fixed attributes for every packet:
    [VALUE]/[VALUE]   Course [deg] / Speed [knots]
    /A=[VALUE]/       Altitude [feet]
    F[VALUE]          Flight number
    N[VALUE]          Packet counter
    T[VALUE]          Temperature [deg C]
    E[VALUE]          MCU voltage [V*100]
    Y[VALUE]          Solar voltage [V*100]
    S[VALUE]          GNSS-Satellite count

  Optional attributes starting lower case [a-z]:
    a[VALUE]     Additional 0
    b[VALUE]     Additional 1
    d[VALUE]     Additional 2
    ...          ...

  Optional additional comment
    _[STRING]    Additional comment

Thank you for all your contributions and kind regards,

Amon Schumann