Closed chgio closed 10 months ago
Additionally: Add:
Edit (for why, see 82344d3):
btw after reading https://github.com/daveake/flexavr/blob/master/lora.ino I don't believe just sending the SSDV CMD (in FlexTrack's current state ofc) as proposed in the mock diagram in would do the trick :)
don't believe just sending the SSDV CMD [...] would do the trick
can you please elaborate? :)
Sure, here: if (++ImageCount > (GPS.Altitude > Settings.High ? Settings.HighImageCount : Settings.LowImageCount)) { ImageCount = 0; } else if (SSDVBufferLength < 256) { ImageCount = 0; }
, and if (ImageCount == 0) //send telemetry, otherwise send SSDV;
this means SSDV is send only when the buffer is full (correct me if I'm wrong here, it's late 😴) which in turn means there is a possibility the telemetry wouldn't be send right after the command (if it's too small) or, more likely, be fractured. I'm assuming different telemetry retrievals and TC reports will have different sizes, so this approach might not be ideal (we could artificially "fill" up missing bytes to the full packet size but that seems wasteful).
Generally, to my limited understanding, there are two ways in which the out-of-the-box FlexTrack board sends data:
~SP
and ~SB
both append data to the buffer stored on the board. It is the author's "intended" way of sending images. The Pi software sends the SP command using SendPacket, which is called only in one place, taking the data from the camera as a parameter. The SB doesn't seem to be called at all. It does, nevertheless, allow for transmission of arbitrary data. The command is processed in ProcessSSDVCommand(...). I didn't find anything similar to the CRC attached to the packet, but maybe I have missed it.Let me know if any of this makes sense and what doesn't. Of course we have the access to the source code of both the OBC and FlexTrack so we can change everything to our will (especially the OBC part, as we'll have to make that from scratch), and don't have to obey the "intended" parts but I'm concerned about the receiving end. We haven't discussed how we intend to receive the data at all, but those are my two cents. 😅
closing for abandonment of the FlexTrak in favour of an in-house-developed comms module based on the STM32WL55JC Nucleo Devkit. thank you very much @xszymonzur for all your great work, keeping it for docs.
Existing diagrams to extend:
New diagrams to create: