Skip to main content

Pybricks developer tools

Project description

Coverage Status Documentation Status

Pybricks tools & interface library

This is a package with tools for Pybricks developers. For regular users we recommend the Pybricks Code web IDE.

This package contains both command line tools and a library to call equivalent operations from within a Python script.

Installation

Python Runtime

pybricksdev requires Python 3.10 or higher.

Command Line Tool

We recommend using pipx to run pybricksdev as a command line tool. This ensures that you are always running the latest version of pybricksdev.

We also highly recommend installing pipx using a package manager such as apt, brew, etc. as suggested in the official pipx installation instructions.

Then use pipx to run pybricksdev:

pipx run pybricksdev ...

If you don't like typing pipx run ... all of the time, you can install pybrickdev with:

pipx install pybricksdev

Then you can just type:

pybricksdev run ...

And check for updates with:

pipx upgrade pybricksdev

Windows users

If you are using the Python Launcher for Windows (installed by default with the official Python installer), then you will need to use py -3 instead of python3.

py -3 -m pip install --upgrade pip # ensure pip is up to date first
py -3 -m pip install pipx
py -3 -m pipx run pybricksdev ...

Linux USB

On Linux, udev rules are needed to allow access via USB. The pybricksdev command line tool contains a function to generate the required rules. Run the following:

pipx run pybricksdev udev | sudo tee /etc/udev/rules.d/99-pybricksdev.rules

Library

To install pybricksdev as a library, we highly recommend using a virtual environment for your project. Our tool of choice for this is poetry:

poetry env use python3.12
poetry add pybricksdev

Of course you can always use pip as well:

pip install pybricksdev --pre

Using the Command Line Tool

The following are some examples of how to use the pybricksdev command line tool. For additional info, run pybricksdev --help.

Flashing Pybricks MicroPython firmware

Turn on the hub, and run:

pipx run pybricksdev flash <firmware.zip>

Replace <firmware.zip> with the actual path to the firmware archive.

Running Pybricks MicroPython programs

This compiles a MicroPython script and sends it to a hub with Pybricks firmware.

pipx run pybricksdev run --help

#
# ble connection examples:
#

# Run script on any Pybricks device
pipx run pybricksdev run ble demo/shortdemo.py

# Run script on the first device we find called Pybricks hub
pipx run pybricksdev run ble --name "Pybricks Hub" demo/shortdemo.py

# Run script on device with address 90:84:2B:4A:2B:75 (doesn't work on Mac)
pipx run pybricksdev run ble --name 90:84:2B:4A:2B:75 demo/shortdemo.py
       
#
# usb connection examples:
# NOTE: running programs via usb connection works for official LEGO firmwares only

# Run script on any Pybricks device
pipx run pybricksdev run usb demo/shortdemo.py

#
# Other connection examples:
#

# Run script on ev3dev at 192.168.0.102
pipx run pybricksdev run ssh --name 192.168.0.102 demo/shortdemo.py

Compiling Pybricks MicroPython programs without running

This can be used to compile programs. Instead of also running them as above, it just prints the output on the screen instead.

pipx run pybricksdev compile demo/shortdemo.py

pipx run pybricksdev compile "print('Hello!'); print('world!');"

This is mainly intended for developers who want to quickly inspect the contents of the .mpy file. To get the actual file, just use mpy-cross directly. We have used this tool in the past to test bare minimum MicroPython ports that have neither a builtin compiler or any form of I/O yet. You can paste the generated const uint8_t script[] directly ito your C code.

Additional Documentation

https://docs.pybricks.com/projects/pybricksdev (work in progress)

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybricksdev-1.0.0a51.tar.gz (213.2 kB view details)

Uploaded Source

Built Distribution

pybricksdev-1.0.0a51-py3-none-any.whl (230.1 kB view details)

Uploaded Python 3

File details

Details for the file pybricksdev-1.0.0a51.tar.gz.

File metadata

  • Download URL: pybricksdev-1.0.0a51.tar.gz
  • Upload date:
  • Size: 213.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.10.12 Linux/6.5.0-1025-azure

File hashes

Hashes for pybricksdev-1.0.0a51.tar.gz
Algorithm Hash digest
SHA256 5e8cbf839df58f4fe24da7da7606ced0b9e86be6eefe225f1d3299e9b04942a9
MD5 085ee017c55ad3ed62ab15b905a53622
BLAKE2b-256 5cee290730f89b91e55f699b45cf847738ff3a6b816c0025d385cbf57c943bee

See more details on using hashes here.

File details

Details for the file pybricksdev-1.0.0a51-py3-none-any.whl.

File metadata

  • Download URL: pybricksdev-1.0.0a51-py3-none-any.whl
  • Upload date:
  • Size: 230.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.10.12 Linux/6.5.0-1025-azure

File hashes

Hashes for pybricksdev-1.0.0a51-py3-none-any.whl
Algorithm Hash digest
SHA256 db637a1264286ce493eb480cc3f4d05f3d6c41eddad4f4ba2c5227f5e80e8d00
MD5 85e9ce2c0b5904fe29d1ea4d0eb0c039
BLAKE2b-256 a22b21bf83fe594830ce4363c772cc88aec6d457d81be8c7643d2ec34c97459e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page