Skip to content

INAV Blackbox tools for 5.0.0

Compare
Choose a tag to compare
@stronnag stronnag released this 23 Jun 06:51
· 73 commits to master since this release
5b29d9f

Summary

  • Align major / minor version number with INAV firmware releases
  • Support INAV 5.0 firmware (and all prior versions)
  • Add --version option
  • Adds new adjustment and state values for 5.0
  • Add --apply-gframe option, (G-Frame insertion management) for users interested in geospatial analysis

Note: Only the version number has changed since 5.0.0-rc2.

G-Frame insertion management

Currently, with --merge-gps we unconditionally insert intermediate (between P/I frames) G-frames (GPS) into the CSV. This can greatly increase the size of the generated CSV over a non-GPS file, generates little benefit, may confuse the user with multiple lines for the same loop iteration and in some cases (low update rates) can result in "time going backwards".

In order to address this a new default behaviour is introduced, with a CLI option --apply-gframe N to control it:

Flag Value Effect
0 (default) Intermediate G-frames are not stored, the log will exactly the same number of lines as if it were generated without --merge-gps. This typically results in a CSV that is 40% smaller than legacy
1 Intermediate G-frames are inserted when they are not "late"; i.e. the times in the log will always increase
2 (legacy behaviour) Intermediate G-frames are inserted unconditionally. This is legacy behaviour and may result in CSV entries where time appears to go backwards. This typically appears when two G-frames occur between an I or P frame.

Issue raised by @mateyhv

It is anticipated that for most users the new default will be the best option, with no obvious loss in fidelity and smaller (faster processing) files.

Binary release details

  • Linux 32 / Linux 64 : Built on Debian old stable (buster); in theory will run on any contemporary x86_64 / ia32 distro. blackbox_render uses OS shared libraries that should be available by default on any distro with a GUI.
  • FreeBSD : Built on Release 13.1; blackbox_render uses OS shared libraries; unlikely to work on earlier releases. OTOH, if you're using FreeBSD, you know how to compile from source (n.b. gmake vice make).
  • MacOS : Built on 10.5 VM, Statically linked. Only dylib dependency is on v 0.0.0 (or later) for /usr/lib/libSystem.B.dylib, which should be met by contemporary MacOS.
  • Win32 : Cross-complied on Linux. blackbox_render uses the repository provided (ancient) DLLs.
  • Win64 : This is somewhat problematic, as the ancient DLLs are 32bit only. There are two options:
    • win64 : Cross-complied on Linux, provides blackbox_decode only. No DLL dependencies.
    • msys_win64 : Compiled on Msys2. blackbox_render depends on a numerous msys2 DLLs, which are included. Provides blackbox_decode and blackbox_render. Somewhat experimental; the easiest / only way to have blackbox_render on win64, at least without an inordinate amount of effort.