Repository navigation
v3.5
Host tools for Windows, macOS (Apple silicon, signed and notarized) and Linux (x86_64). This release brings new builds of the four desktop apps, written in Rust and no longer built on Qt. The Qt apps are still included but are now deprecated. v3.4 was not published, so its changes are included here: Tag Programmer is rebuilt as a batch programming station, Tag Monitor's Configuration tab is now a configuration editor, and the .txt log format is retired.
New apps, without Qt
Each Qt app has a replacement, installed beside it:
| Qt app (deprecated) | Replacement | macOS app size |
|---|---|---|
Tag Programmer (qtprogram) |
Tag Programmer (tagprogram) |
53 MB → 24 MB |
Tag Monitor (qtmonitor) |
Tag Monitor (tagmonitor) |
51 MB → 18 MB |
Tag Calibrator (qtcalibrate) |
Tag Calibrator (tagcalibrate) |
160 MB → 14 MB |
SensorViz (sensorviz) |
Tag View (tagview) |
83 MB → 19 MB |
The new apps do the same jobs, with the same files: configurations, calibrations, logs and SensorViz preference files work in both. Tag View draws the same plots from the same code as SensorViz. Each app's page in the user guide (Help menu) lists what is different, for example Export PDF in place of Print in Tag View.
On Linux the new apps need WebKitGTK 4.1, which GNOME desktops already have. Elsewhere, install it once: sudo apt install libwebkit2gtk-4.1-0 on Ubuntu or Debian. Windows 10 and 11 and macOS need nothing extra.
Why we are moving off Qt
- Licensing. Some of the Qt apps contain parts that are licensed only under the GPL: SensorViz and
btvizuse QCustomPlot, and Tag Calibrator uses Qt Quick 3D and Qt Quick Timeline. So, as distributed, those apps are licensed under GPL version 3. The new apps contain no GPL-only parts, and they are distributed under the project's MIT License. Their third-party notices are inlicenses/. - Size. On macOS each Qt app carries its own copy of Qt. Together the four apps above take 347 MB as Qt builds and 75 MB as new builds. Removing Qt will also make the downloads much smaller and the builds simpler.
Deprecation
The Qt apps (qtprogram, qtmonitor, qtcalibrate, sensorviz and btviz) are deprecated and will be removed in a future release. Please switch to the new apps now, and report anything they don't do that you rely on. btviz reads only legacy BitTag .txt files and has no replacement. Convert those files with tag-txt-import, then open them in Tag View.
The command-line tools are unchanged and do not use Qt.
Tag Programmer
Tag Programmer is now a station for programming a batch of tags from a published firmware release.
Which firmware to use: choose the latest release qualified for the tag type you are programming. Each release's notes have a qualification table, and Tag Programmer warns when the chosen release is not qualified for the chosen tag type. The latest release is not always qualified for every tag type.
- Firmware from GitHub. It lists the published
fw-v*releases and downloads one when you choose it. Each image is checked against its build manifest before it can be programmed. - Qualification warning. If the chosen release has not been bench-qualified for the chosen tag type, the Firmware line turns amber and the Program dialog says so. You can still program, for bench work, but do not fly those tags.
- Finds everything itself. It finds the base and the tag.
qtprogramalso finds STM32CubeProgrammer (on a Mac, the app under/Applications,~/Applicationsor~/Software). If it cannot find STM32CubeProgrammer, Choose… takesSTM32CubeProgrammer.appon a Mac, orSTM32_Programmer_CLIitself. - Bases. A single base is used without further setup, including ST-LINK/V2 probes with old firmware. With several, it asks which; Station ▸ Choose Base… switches at any time.
- One button per tag. Program stops the tag, has its firmware erase its log, erases flash as the image requires, writes it, sets the clock, runs the self-tests, starts and stops the tag once, and erases it again. The tag is left IDLE, with its clock set.
- A record of every tag. Each attempt adds a line to a CSV: label, UUID, firmware release, commit, image SHA-256, self-test result and more.
- Retest runs the self-tests again without reprogramming. It also reads the tag's flash back and compares it with the release the tag reports, so the record names that release, or
MISMATCHif the flash is something else. - Clock. The Tag panel shows how far the tag's clock is from this computer's, amber beyond 2 s, with Sync to set it.
- Older releases. Images from releases before fw-v0.7 are programmed with a full erase.
- STM32CubeProgrammer is needed only by the Qt build (
qtprogram; tested with 2.22 and 2.23). The newtagprogramprograms the tag directly through the base and does not need it. It is also faster.
Tag Monitor
- Menus and a status strip replace the row of buttons. The strip, visible on every tab, shows the tag's type, state, clock offset, voltage and self-test result.
- Configuration editor. The Configuration tab holds one configuration for one tag type: New, Open, Open Recent, Save, Save As and Reset to Defaults, with or without a tag attached. Each tag type shows only the settings its firmware accepts. A saved file may list only some settings; the rest take the tag type's defaults.
- Start checks. Before starting a tag, Start checks that its clock is within 2 s, its self-test passed and Approved is ticked, and asks before starting anyway.
- Schedule. Every schedule time is a whole hour in UTC, and each hibernation row has an In use checkbox.
- Choosing a base. The base chooser names each base, and an attach to a base with no tag says so.
- More reliable with L432 tags (BitTag, PresTag, CompassTag, UIUCTag): requests to a sleeping tag no longer fail in bursts. This fix is in every app and command-line tool that talks to a tag.
SensorViz and Tag View
- One y axis per sensor group, with a legend.
- Faster with large logs: plots are drawn from a decimated view of the log.
- Gaps in the data are shown as gaps, not joined by a line.
Logs and command-line tools
- SQLite is the only download format.
tag-dwnldand Tag Monitor no longer write.txtlogs;--format textis refused before the tag is touched. - New:
tag-txt-importconverts existing BitTag and PresTag.txtlogs to SQLite. Each conversion is checked line by line against the original before the.db3is kept. dataprocessingstores compass orientation as a quaternion. Heading, pitch and roll are calculated by the program that displays them. Files written by earlier versions keep theiryaw,pitchandrollcolumns.
Packages
- Linux: install the udev rule in
tag_tools/udev/for USB access to the base. The tarball carries Qt's TLS support, which the Qt Tag Programmer needs to reach GitHub. - macOS: the apps carry Qt's TLS support, for the same reason.
Full Changelog: v3.3...v3.5