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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b75c3667404df758ca74ad19d32ab6d403f322717d3a8e1295f513811b7cef7
|
|
| MD5 |
275b82795c1611fb9335f5ceef20d4ea
|
|
| BLAKE2b-256 |
302a551bda82a0e3319f69e92a81c45c1b507bd5738b6d2e9306c0be9de8c527
|
Provenance
The following attestation bundles were made for brasa-0.3.1.tar.gz:
Publisher:
publish.yml on martinmiglio/brasa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
brasa-0.3.1.tar.gz -
Subject digest:
3b75c3667404df758ca74ad19d32ab6d403f322717d3a8e1295f513811b7cef7 - Sigstore transparency entry: 1232109751
- Sigstore integration time:
-
Permalink:
martinmiglio/brasa@5c2c1736b712a4b93311d80f141b7b073cf18a6d -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/martinmiglio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5c2c1736b712a4b93311d80f141b7b073cf18a6d -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58ebd816bcd91c116857c93859728612c109d38189fbedd82917da740a911167
|
|
| MD5 |
19580ea718a4e5e1a7410075fab68f33
|
|
| BLAKE2b-256 |
3e6e723bb6d97fddc7563d3c0cfbc5a0023ce541fb37625336db269b78754ff2
|
Provenance
The following attestation bundles were made for brasa-0.3.1-py3-none-any.whl:
Publisher:
publish.yml on martinmiglio/brasa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
brasa-0.3.1-py3-none-any.whl -
Subject digest:
58ebd816bcd91c116857c93859728612c109d38189fbedd82917da740a911167 - Sigstore transparency entry: 1232109841
- Sigstore integration time:
-
Permalink:
martinmiglio/brasa@5c2c1736b712a4b93311d80f141b7b073cf18a6d -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/martinmiglio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5c2c1736b712a4b93311d80f141b7b073cf18a6d -
Trigger Event:
push
-
Statement type: