What's New in TinyPilot's October 2022 Update

TinyPilot's October release adds a smarter update system that will facilitate more frequent releases.

A smarter update system

From the first version of TinyPilot, we deployed updates through git, a popular tool for managing source code versions. Git works well for developing software, but it's not designed for deployment or distribution. Still, it was a simple, easy way to share software updates.

To fetch updates, the TinyPilot web application would query TinyPilot's git server for new release tags. If a new release tag was available, TinyPilot would update itself to the latest release.

As TinyPilot has grown, we've begun to feel more acutely git's limitations as a distribution channel. The most severe pain point was that TinyPilot always jumped to the latest version, no matter what version the user was upgrading from.

When we discovered bugs in the update flow of an old TinyPilot version, we had to apply workarounds forever because the old version might try to update directly to the latest version.

Version sequence from A to E where all nodes point to E

Under TinyPilot's old update system, legacy TinyPilot versions always update to the latest version available.

In our new system, we've removed git from our update logic and replaced it with standard Debian packages. Instead of checking git tags to find out when a new version is available, TinyPilot queries a simple web service we built to manage versions.

Because we're now using a purpose-built web service to orchestrate updates, we can publish releases more intelligently. Instead of directing every TinyPilot device to install the latest version, we can instruct very old versions to intermediate releases.

In other words, we can ensure that TinyPilot never leapfrogs from version A to version E without installing version C first. After version C, we can eliminate compatibility workarounds for versions A or B, which keeps TinyPilot's update logic lean and simple.

Version sequence from A to E where A and B go to C; C and D go to E

Under TinyPilot's new update system, we can ensure that legacy installations on version A always update to version C before updating to version E.

Using a custom web service also gives us the flexibility to add other release features in the future, such as slow rollouts or an opt-in beta testing release channel for users who want to try new features early.

An About page

TinyPilot's October update also adds an About page.

Screenshot of TinyPilot About page, showing version 2.5.0 and a list of all external, open-source dependencies

An About page is obviously not the most exciting feature, but it's an easy way to see your system's version. The new page also highlights all the open-source projects that make TinyPilot possible.

What's next?

Earlier this year, we added experimental support for H.264 video encoding. Thanks to our users' testing, we're nearly ready to make it an officially supported feature.

In our upcoming December release, you'll be able to use the TinyPilot web UI to switch to more bandwidth-efficient H.264 encoding rather than use our manual command-line instructions:

TinyPilot's next release will allow you to switch to bandwidth-efficient H.264 video streaming from within the web interface.

Full changelog

For the full list of changes in TinyPilot Pro 2.5.0, see the changelog.

Updating to the latest version

You can update to the latest version of TinyPilot by clicking System > Update in the navigation bar:

The update button is located in the navbar under System

Written by Michael Lynch, TinyPilot Founder and CEO