Releases: iNavFlight/blackbox-tools
INAV 8.0.0-rc1 Blackbox Tools
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 :
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.
For the final INAV 8 release, blackbox-render
will be provided for MacOS.
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
- 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
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. Providesblackbox_decode
andblackbox_render
. Somewhat experimental; the easiest / only way to haveblackbox_render
on win64, at least without an inordinate amount of effort.
- win64 : Cross-complied on Linux, provides
Install Detail
Each archive contains a bin
directory containing blackbox_decode
, optionally blackbox_render
and, on Windows, some ddl
s. 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
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. Providesblackbox_decode
andblackbox_render
. Somewhat experimental; the easiest / only way to haveblackbox_render
on win64, at least without an inordinate amount of effort.
- win64 : Cross-complied on Linux, provides
INAV Blackbox tools for 6.0.0
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
vicemake
). - 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. Providesblackbox_decode
andblackbox_render
. Somewhat experimental; the easiest / only way to haveblackbox_render
on win64, at least without an inordinate amount of effort.
- win64 : Cross-complied on Linux, provides
INAV Blackbox tools for 6.0.0-rc1
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
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
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
vicemake
). - 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. Providesblackbox_decode
andblackbox_render
. Somewhat experimental; the easiest / only way to haveblackbox_render
on win64, at least without an inordinate amount of effort.
- win64 : Cross-complied on Linux, provides
INAV Blackbox tools for 5.0.0-rc2
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
vicemake
). - 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. Providesblackbox_decode
andblackbox_render
. Somewhat experimental; the easiest / only way to haveblackbox_render
on win64, at least without an inordinate amount of effort.
- win64 : Cross-complied on Linux, provides
INAV Blackbox tools for 5.0
- 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
vicemake
). - 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. Providesblackbox_decode
andblackbox_render
. Somewhat experimental; the easiest / only way to haveblackbox_render
on win64, at least without an inordinate amount of effort.
- win64 : Cross-complied on Linux, provides