Raspberry Pi OTA update

Here is how to deploy OTA update to Raspberry Pi fleet remotely, from one to thousands of Raspberry Pis.

A lot of today's products based on embedded systems that run on Raspberry Pi, those devices are connected to the internet and need to have the ability to receive and do software updates as well as to be managed and stable.

Why we need to deploy OTA updates and what can we do with them:

  • Upgrade Raspberry Pi software - Deploy a new version of your application to the Raspberry Pis in that runs in production, this update can include new code, configurations, and new features. For example, we can deploy OTA updates with new python files, binaries, and packages as well as an update with BASH commands that will like to run on all of our Raspberry Pis.
  • Fix device software bugs - Deploy a software update to "close" a software bug that can happen on the production Raspberry Pis and may open issues and even product recalls. You may deploy and replace the specific file that responsible for the bug and reload or restart the running software.
  • System OTA update - install and update security packages, replace system files and dependencies as needed. Deploying a new system update can also be done using a package manager command - 'apt update'.

​​Here at Upswift.io we provide a lightweight, fast and easy-to-use solution for deploying OTA updates to a fleet of Raspberry Pis at once. The micro update technology capable of monitoring the update status, deploy the update by groups, set and trigger rollback options in case of an issue with the deployment, and even abort the update. The micro update mechanism designed specifically for embedded Linux devices that have low hardware resources. The same mechanism is also responsible for keeping the update package secure and encrypted all the way to the devices that are in the field.

Deploy OTA update on Raspberry Pis - example

Here is a filled recipe example for deploying a simple software update to embedded Linux devices.


Fil in the next general details - on what Raspberry Pis to deploy the next OTA updates - choosing a specific device or group of devices, set update version number and comment as well.


The 'Execute command before' parameter can be filled in with BASH commands as needed. This command runs before the OTA update starts and files deployed.


Here we can upload the new software application. It can be any file format, from binary to .py or even directories. All need to be uploaded with the path they need to land on. Keep in mind that in case there is already a file or a directory in the same path, Upswift agent will automatically replace it with the new one you have just uploaded. This method can help to upgrade the running software easily, without deleting files by your self.


Install packages using one of the next package managers. You can also set the version of the package. If the package version stays empty, UpswiftAgent will install the last available version.


Similar to the beginning of the software update, now it is possible to run another BASH command, after deploying files, directories and packages.


The Rollback option is a great opportunity to decided what will happen in case of an update error and save the device in case something bad happens.

Monitor Update status

While the OTA update being deployed, we are able to trace the update progress for each and every device.