15.5. MicroPython tools¶
The MicroPython project ships a host-side toolchain alongside the language itself. Two of those tools are useful for any OpenMV cam workflow that lives outside the IDE; both install from PyPI in a single command and both work against the same USB serial / filesystem surface the cam already exposes.
15.5.1. mpremote¶
mpremote
is a CLI alternative to the OpenMV IDE. One command covers what the
IDE does through its file browser, terminal, and run-script button:
connect to a cam over USB serial, drive the REPL, copy files in and
out of the cam’s filesystem, run a host-side script against the cam
without uploading it, and install third-party packages with
mip:
$ pip install --user mpremote
$ mpremote # interactive REPL
$ mpremote cp main.py : # upload to cam
$ mpremote run local_script.py # run host script on cam
$ mpremote ls # list cam filesystem
$ mpremote mip install aioble # install package on cam
This is the right tool for automated test rigs, headless deployments, CI scripts that flash a fresh image and run a smoke test, and any workflow where running a GUI is overkill. The mpremote reference documents every command and option.
15.5.2. mpy-cross¶
mpy-cross
is the cross-compiler that turns a .py source file into a
.mpy binary container ready to import on the cam. Compiling
ahead of time saves the cam from parsing the source at import,
gives a smaller on-disk footprint, and is the only path for
@native and @viper decorated functions that need a build
matched to the cam’s MCU architecture:
$ pip install --user mpy-cross
$ mpy-cross foo.py
$ mpremote cp foo.mpy :
For frozen modules baked into the firmware image and for ROMFS
partitions shipped alongside it, the same tool runs automatically as
part of the firmware build – the build system invokes mpy-cross
over every .py under scripts/ on its way to producing the
.bin. Direct invocation is what an application reaches for when
it wants to ship a .mpy separately from the firmware, or drive
the compiler from a build script.
The mpy-cross section of the .mpy files
reference covers the command-line flags, the optimisation levels,
the -march matrix, and the Python module entry points.