openmv-ota
Secure over-the-air updates for OpenMV cameras. Build your application into a signed, encrypted image, publish it, and roll it out to your cameras in stages. Each camera downloads, verifies, and installs the update, and goes back to the last release that worked if the new one won't start.
pip install openmv-ota
Requires Python 3.11 or newer. One install gives you every tool, as a single
openmv-ota command.
What you get
- Signed, encrypted releases. Every image is signed with your keys and encrypted for your cameras. A camera refuses anything unsigned, tampered with, or older than what it runs.
- Safe installs. Updates go to a spare slot and are confirmed only after the new version starts; a failed update falls back on its own.
- Small updates. After the first release, cameras download only what changed.
- Staged rollouts. Send a release to a percentage of your fleet or a cohort of cameras, then raise, pause, or roll it back.
- Your keys, where you want them. On disk (encrypted), in a PKCS#11 HSM, or in AWS KMS, Google Cloud KMS, or Azure Key Vault.
- Hosted or self-hosted. Use OpenMV Cloud, which
adds live video, a console, and data from every camera, or run the update
server yourself with
pip install "openmv-ota[server]". - Compliance evidence. An SBOM for every release, and templates for the EU Cyber Resilience Act and RED.
Supported cameras
OpenMV AE3, N6, RT1062, H7 Plus and H7; Arduino Nicla Vision, Giga R1 and Portenta H7.
Quick start
With an OpenMV Cloud account, a camera on USB, and a checkout of the OpenMV firmware:
openmv-ota project new my-camera -f openmv -b OPENMV_AE3 --ota --install-sdk
openmv-ota build firmware my-camera -b OPENMV_AE3
openmv-ota build factory-romfs my-camera -b OPENMV_AE3
openmv-ota flash factory my-camera -b OPENMV_AE3
openmv-ota client login --server https://ota.cloud.openmv.io
openmv-ota client release publish my-camera -b OPENMV_AE3 -o my-camera/build/factory
Getting started on OpenMV Cloud walks through every step for your camera.
Documentation
- Tutorial: every command and the update server's API, in the order you use them.
- EU CRA and RED alignment and the residual threats.
- Changelog.
Security
Found a vulnerability? Please report it privately; see the security policy.
License
MIT. Source and issues: github.com/openmv/openmv-ota.
Metadata
Release files for openmv-ota 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openmv_ota-1.0.4.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openmv_ota-1.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.2 MB
Release files / openmv_ota-1.0.4.tar.gz
| Download URL | openmv_ota-1.0.4.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a62b6dafd4abc531170bb8d5ffe59dac7a932c2be53bc38595787c9bb1aa7e0
|
|
BLAKE2b-256 checksum How to use checksums |
0dcb11181f0ab173679d608a09053ddde0d13131d3506556ac342db20063af20
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / openmv_ota-1.0.4-py3-none-any.whl
| Download URL | openmv_ota-1.0.4-py3-none-any.whl |
|---|---|
| Size | 1.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
32f3817645f2f8527acce7050d3f7e99d6a6dd6bfa639af3d0bb5de5a5cbaf90
|
|
BLAKE2b-256 checksum How to use checksums |
0a78bea2bd36a739826bbc81025bb1232efbbf34afcd8bbb5b5650fe21939f7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency log