Skip to content

Releases: iNavFlight/blackbox-tools

INAV 8.0.0-rc1 Blackbox Tools

15 Nov 16:10
e2e0513
Compare
Choose a tag to compare
Pre-release

Overview

Blackbox tools for INAV 8.0.0 RC1

Functional Changes

  • Updates blackbox-tools for breaking changes in INAV 8
  • Usual, routine updates to latest INAV constants for RC Modes etc.
  • Support up to 16 motors and 32 servos
  • Support (merged) flightModeFlags and flightModeFlags2 (64bit flight modes)
  • Support updateed rcmode order for 8.0
  • Added blackbox_render --mode for user defined stick modes (1-4)
  • Add identifying metadata to GPX output

Binary Releases

  • Linux ia-32 / Linux x86_64 : blackbox-decode is built statically on Alpine (no dependencies). blackbox-render is built on Debian stable (Bookworm); in theory will run on any contemporary x86_64 / ia-32 distro. blackbox_render uses OS shared libraries that should be available by default on any distro with a GUI.
  • MacOS x64_64: blackbox-decode . 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 : blackbox-decode, blackbox-render Cross-complied on Linux.
  • Win64 : blackbox-decode, blackbox-render Cross-complied on Linux.
  • Linux Aarch64: Build on a Raspberry Pi 4 running Arch Linux. This may well preclude it working on older distros.

MacOS Arm64. Currently only building blackbox_decode is supported.

Install Detail

Each archive contains a bin directory containing blackbox_decode, optionally blackbox_render. You should copy these to a suitable directory on $PATH (for example one of ~/bin, ~/.local/bin, /usr/local/bin or other OS equivalent).

There is also a share directory containing the blackbox_decode bash-completion module. If you want such a convenience, it should be installed in a suitable directory (~/.local/share or a system wide equivalent).

INAV 8 interim build

05 Aug 18:49
c4ea1b9
Compare
Choose a tag to compare
INAV 8 interim build Pre-release
Pre-release
  • Updates blackbox-tool for breaking changes coming in INAV 8
  • If you're using a INAV 8 pre-release after 23rd June 2024 you should use this build.
  • If you have broken BBLs from 2024-06-23 to 2024-08-01,this is because the firmware is broken (the blackbox header does not match the log data). By itself, this blackbox-tools cannot fix that. However the script below probably can.
  • ./fixINAV8bbl_servos.rb LOG-broken.TXT LOG-fixed.TXT
  • Use the ruby script only on broken logs with pre-release firmware from 23rd June 2024 to 1st August 2024
  • BBL generated by INAV8 firmware between 2nd - 14th August is not fixable.

INAV Blackbox tools for 7.1.0

18 Feb 15:31
16e6283
Compare
Choose a tag to compare

Summary

  • Supports INAV 7.1.0 (and all prior versions)
  • Adds new adjustment and state values for INAV 7.1.0
  • Improved GPS timestamp handling

Binary release details

  • Linux ia-32 / Linux x86_64 : Built on Debian stable (bullseye); in theory will run on any contemporary x86_64 / ia-32 distro. blackbox_render uses OS shared libraries that should be available by default on any distro with a GUI.
  • 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.

Install Detail

Each archive contains a bin directory containing blackbox_decode, optionally blackbox_render and, on Windows, some ddls. You should copy these to a suitable directory on $PATH (for example one of ~/bin, ~/.local/bin, /usr/local/bin`).

There is also a share directory containing the blackbox_decode bash-completion module. If you want such a convenience, it should be installed in a suitable directory (~/.local/share or a system wide equivalent).

INAV Blackbox Tools for INAV 7

04 Dec 20:15
1d159fd
Compare
Choose a tag to compare

Summary

  • Supports INAV 7 (and all prior versions)
  • Adds new adjustment and state values for INAV 7

Binary release details

  • Linux ia-32 / Linux x86_64 : Built on Debian stable (bullseye); in theory will run on any contemporary x86_64 / ia-32 distro. blackbox_render uses OS shared libraries that should be available by default on any distro with a GUI.
  • 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.

INAV Blackbox tools for 6.0.0

22 Mar 17:17
6748326
Compare
Choose a tag to compare

Summary

  • Supports INAV 6.1 (and all prior versions)
  • Adds new adjustment and state values for 6.0
  • Re-initialise energy accumulator for each log segment
  • Fix potential buffer overflow (from the increased number of fields in log).

Binary release details

  • 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).
  • Linux Aarch64: Compiled on RPi4 / Arch Linux.
  • Linux ia-32 / Linux x86_64 : Built on Debian old stable (buster); in theory will run on any contemporary x86_64 / ia-32 distro. blackbox_render uses OS shared libraries that should be available by default on any distro with a GUI.
  • 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.

INAV Blackbox tools for 6.0.0-rc1

29 Jan 13:41
6748326
Compare
Choose a tag to compare
Pre-release

Summary

  • Support INAV 6.0 (release candidate) firmware (and all prior versions)
  • Adds new adjustment and state values for 6.0
  • Re-initialise energy accumulator for each log segment
  • Fix potential buffer overflow (number of fields in log). Binaries updated to rc1-0 2023-01-30

Binary release details

Limited OS / application selection for rc1.

  • 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.
  • MacOS : Cross-complied on Linux, provides blackbox_decode only.
  • Win32 : Cross-complied on Linux. blackbox_render uses the repository provided (ancient) DLLs.
  • Win64 : Cross-complied on Linux, provides blackbox_decode only. No DLL dependencies.

A full OS / application release may be made for the INAV 6.0.0 release.

INAV Blackbox tools for 6.0.0-FP1

31 Oct 11:03
a243c9a
Compare
Choose a tag to compare
Pre-release

Summary

  • Support INAV 6.0 (pre-release) firmware (and all prior versions)
  • Adds new adjustment and state values for 6.0
  • Re-initialise energy accumulator for each log segment

Binary release details

Limited OS / application selection for FP1.

  • 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.
  • MacOS : Cross-complied on Linux, provides blackbox_decode only.
  • Win32 : Cross-complied on Linux. blackbox_render uses the repository provided (ancient) DLLs.
  • Win64 : Cross-complied on Linux, provides blackbox_decode only. No DLL dependencies.

A full OS / application release will be made for the INAV 6.0.0 release.

INAV Blackbox tools for 5.0.0

23 Jun 06:51
5b29d9f
Compare
Choose a tag to compare

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.

INAV Blackbox tools for 5.0.0-rc2

01 Jun 11:59
5b29d9f
Compare
Choose a tag to compare
Pre-release

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 user interested in geospatial analysis

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.

INAV Blackbox tools for 5.0

27 May 15:19
25e5442
Compare
Choose a tag to compare
Pre-release
  • 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

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.