Skip to main content

MicroPython developer tools — flash, deploy, watch, monitor.

Project description

brasa

MicroPython developer tools. Flash, deploy, watch, monitor.

Install

pip install brasa

Commands

brasa dev            # deploy, watch for changes, stream serial
brasa deploy         # compile & push src/ to device
brasa flash          # download firmware + flash device
brasa serial         # read-only serial monitor
brasa repl           # interactive REPL
brasa diff           # diff local src/ vs device files
brasa detect         # show connected device port
brasa exec "expr"    # run expression on device
brasa restart        # reboot device

All commands auto-detect the serial port. Override with --port /dev/cu.xxx.

Configuration

Create a brasa.toml in your project root (or add [tool.brasa] to pyproject.toml):

[firmware]
board = "ESP8266"
variant = "GENERIC-FLASH_2M_ROMFS"
version = "1.27.0"
date = "20251209"

[deploy]
src = "src"
env_file = ".env"
boot_files = ["boot.py", "main.py"]
romfs = true
mpy_compile = true

[serial]
baud_rate = 115200

[port]
patterns = ["/dev/cu.usbserial*", "/dev/cu.wchusbserial*", "/dev/cu.SLAB_USBtoUART*"]

Commands that don't need config (detect, serial, repl, restart, exec) work without it. Commands that do (flash, deploy, dev, diff) will error if no config is found.

All fields have defaults — a minimal config works:

[firmware]
version = "1.27.0"
date = "20251209"

Workflow

brasa flash          # flash firmware (first time or update)
brasa dev            # deploy + watch + serial monitor (daily development)
brasa diff           # check what's different on device

Why

Every MicroPython project re-invents the same Makefile: detect the serial port, lock it, flash firmware, deploy files, watch for changes, read serial output. Brasa replaces that with a single CLI that works across projects.

Requirements

  • Python 3.12+
  • macOS or Linux

Project details


Download files

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

Source Distribution

brasa-0.3.1.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brasa-0.3.1-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file brasa-0.3.1.tar.gz.

File metadata

  • Download URL: brasa-0.3.1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for brasa-0.3.1.tar.gz
Algorithm Hash digest
SHA256 3b75c3667404df758ca74ad19d32ab6d403f322717d3a8e1295f513811b7cef7
MD5 275b82795c1611fb9335f5ceef20d4ea
BLAKE2b-256 302a551bda82a0e3319f69e92a81c45c1b507bd5738b6d2e9306c0be9de8c527

See more details on using hashes here.

Provenance

The following attestation bundles were made for brasa-0.3.1.tar.gz:

Publisher: publish.yml on martinmiglio/brasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brasa-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: brasa-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for brasa-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 58ebd816bcd91c116857c93859728612c109d38189fbedd82917da740a911167
MD5 19580ea718a4e5e1a7410075fab68f33
BLAKE2b-256 3e6e723bb6d97fddc7563d3c0cfbc5a0023ce541fb37625336db269b78754ff2

See more details on using hashes here.

Provenance

The following attestation bundles were made for brasa-0.3.1-py3-none-any.whl:

Publisher: publish.yml on martinmiglio/brasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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