mpremote - MicroPython remote control
mpremote |
command [options] [+
command ...] |
The mpremote command line tool provides an integrated set
of utilities to remotely interact with and automate a MicroPython device
over a serial connection.
The simplest way to use this tool is just by invoking it without
any arguments:
This command automatically detects and connects to the first
available serial device and provides an interactive REPL. Serial ports are
opened in exclusive mode, so running a second (or third, etc) instance of
mpremote will connect to subsequent serial devices, if any are
available.
- --help
- Show a help message and exit.
- --version
- Show the program version and exit.
For REPL access, running mpremote without any arguments is
usually all that is needed. mpremote also supports a set of commands
given at the command line which will perform various actions on remote
MicroPython devices.
For commands that support multiple arguments (e.g. a list of
files), the argument list can be terminated with +. The full list of
supported commands are:
- connect
[device]
- Connect to a specified device via a device-name shortcut. device
may be one of:
- auto
- connect to the first available device
- list
- list the available devices
- id:serial
- connect to the device with USB serial number serial (the second
entry in the output from the connect list command)
- port:path
- connect to the device with the given path
- If the device is not specified, auto is assumed.
- disconnect
- Disconnects the current device. After a disconnect, auto soft-reset
is enabled (see AUTO-CONNECTION AND SOFT-RESET below).
- resume
- Resume a previous mpremote session. This disables auto
soft-reset (see AUTO-CONNECTION AND SOFT-RESET below).
- soft-reset
- Perform a soft-reset of the device. This will clear out the Python heap
and restart the interpreter. It also disables auto soft-reset (see
AUTO-CONNECTION AND SOFT-RESET below).
- repl
[options]
- Enter the REPL on the connected device. The available options
are:
- eval
string
- Evaluate ahd print the result of a Python expression.
- exec
string
- Execute the given Python code.
- run file
- Run a script from the local filesystem.
- fs
subcommand
- Execute filesystem commands on the device. subcommand may be:
- edit
files...
- Edit a file (or files) on the device. The edit command will copy
each file from the device to a local temporary directory and then launch
your editor (defined by the environment variable $EDITOR). If the
editor exits successfully, the updated file will be copied back to the
device.
- mip install
[options] packages...
- Install packages from micropython-lib (or GitHub) using the mip
tool. The available options are:
- --target
path
- Install under path instead of the default location (the first entry
in sys.path ending in /lib). Please note that must exist
in sys.path for you to be able to subsequently import the
package.
- --no-mpy
- Install the source version .py files rather than .mpy).
- --index
URL
- Use the specified URL instead of the default package index at
https://micropython.org/pi.
- mount
[options] local-dir
- Mount a local directory on the remote device (under the path
/remote). During usage, Ctrl-D will soft-reboot and normally
reconnect the mount automatically. If the unit has a main.py
running at startup however, the remount cannot occur. In this case a raw
mode soft reboot can be used: Ctrl-A Ctrl-D to reboot, then
Ctrl-B to get back to normal repl at which point the mount will be
ready.
- The available options are:
- -l,
--unsafe-links
- By default an error will be raised if the device accesses a file or
directory which is outside (up one or more directory levels) the local
directory that is mounted. This option disables this check for symbolic
links, allowing the device to follow symbolic links outside of the local
directory.
- umount
- Unmount the local directory from the remote device.
Connection and disconnection will be done automatically at the
start and end of the execution of the tool, if such commands are not
explicitly given. Automatic connection will search for the first available
serial device. If no action is specified then the REPL will be entered.
Once connected to a device, mpremote will automatically
soft-reset the device if needed. This clears the Python heap and restarts
the interpreter, making sure that subsequent Python code executes in a fresh
environment. Auto soft-reset is performed the first time one of the
following commands are executed: mount, eval, exec,
run, fs. After doing a soft-reset for the first time, it will
not be done again automatically, until a disconnect command is issued.
Auto soft-reset behaviour can be controlled by the resume
command. And the soft-reset command can be used to perform an
explicit soft reset.
Shortcuts can be defined using the macro system. Built-in
shortcuts are:
- devs
- list available devices (shortcut for connect list)
- a0, a1, a2,
a3
- connect to /dev/ttyACMn
- u0, u1, u2,
u3
- connect to /dev/ttyUSBn
- c0, c1, c2,
c3
- connect to COMn
- cat, ls,
cp, rm, mkdir, rmdir, touch,
df
- filesystem commands (mostly aliases for the fs equivalent)
- reset
- reset the device
- bootloader
- make the device enter its bootloader
Any user configuration, including user-defined shortcuts, can be
placed in the file ~/.config/mpremote/config.py. For example:
commands = {
"c33": "connect id:334D335C3138",
"bl": "bootloader",
"double x=4": "eval x*2", # x is an argument, with default 4
"wl_scan": ["exec", """
import network
wl = network.WLAN()
wl.active(1)
for ap in wl.scan():
print(ap)
""",],
"test": ["mount", ".", "exec", "import test"],
}
- mpremote
- Launch a repl on the automatically detected device.
- mpremote a1
- Launch a repl on the device connected to port /dev/ttyACM1 (using
the built-in a1 shortcut).
- mpremote connect /dev/ttyUSB0 repl
- Launch a repl on the device connect to port /dev/ttyUSB0.
- mpremote ls
- List files on the automatically detected device.
- mpremote a1 ls
- List files on the device connected to port /dev/ttyACM1 (using the
built-in a1 shortcut).
- mpremote exec import micropython; micropython.mem_info()
- Execute some Python code on the remote board to obtain various memory
statistics.
- mpremote eval 1/2 eval 3/4
- Execute (and show the output of) two simple Python statements on the
remote board. Note that no + was required because eval
accepts a single string argument.
- mpremote mount .
- Mount the local directory under /remote on the automatically
detected device.
- mpremote mount . exec "import localscript"
- Mount the local directory under /remote on the MicroPython board,
then import the "localscript" module
- mpremote cat boot.py
- Show the contents of boot.py on the MicroPython board.
- mpremote cp :main.py .
- Copy the main.py file from the (remote) MicroPython board to the
current (local) directory.
- mpremote cp main.py :
- Copy the main.py from the current (local) directory to the (remote)
MicroPython board.
- mpremote cp :a.py :b.py
- On the MicroPython board, copy a.py to b.py.
- mpremote cp -r dir/ :
- Recursively copy the local directory dir/ to the root directory of
the (remote) MicroPython board.
- mpremote cp a.py b.py : + repl
- Copy the local files a.py and b.py to the root directory of
the (remote) MicroPython board, then launch a repl. Note that the +
terminator is required here as the cp command takes an arbitrary
number of parameters.
- mpremote mip install aioble
- Install the asyncio-based wrapper for the Bluetooth API.
- mpremote mip install github:org/repo@branch
- Install the branch of the MicroPython package located under
org/repo on GitHub.
- mpremote mip install --target /flash/third-party functools
- Install the functools package under the /flash/third-party
directory on the MicroPython board.