This release is a pre-release and may not be stable for production use.
pymcu-avr
AVR (ATmega/ATtiny) backend for the PyMCU compiler. Free and open source.
Bundles the pymcuc-avr AOT binary that reads .mir IR files and emits AVR assembly,
then drives the AVR toolchain to produce a flashable Intel HEX file.
Pipeline
pymcuc --emit-ir → firmware.mir (target-agnostic IR)
pymcuc-avr (this pkg) → firmware.asm (AVR assembly)
avr-as / avra → firmware.hex (Intel HEX)
Installation
pip install pymcu-avr
The AVR toolchain (avr-gcc, avr-as, avr-objcopy) is sourced (in order) from the
pymcu-avr-toolchain wheel cache, common system install paths, or PATH. A system
avr-gcc also works with no extra package:
# macOS
brew tap osx-cross/avr && brew install avr-gcc
# Debian/Ubuntu
apt install gcc-avr binutils-avr avr-libc
Supported targets
Families: atmega, attiny, at90, atxmega.
Examples: ATmega328P, ATmega2560, ATmega32U4, ATtiny85.
Layout
src/python/pymcu/backend/avr/ backend plugin — wraps pymcuc-avr
src/python/pymcu/toolchain/avr/ AVR toolchain driver (assemble → HEX)
src/csharp/lib/ AvrBackendProvider + codegen
src/csharp/cli/ pymcuc-avr runner CLI
src/csharp/debugserver/ GDB-stub debug server
src/csharp/profiler/ cycle-accurate profiler
tests/integration/ NUnit suite on the AVR8Sharp emulator
tests/testkit/ shared I2C-oracle machinery (transaction
stream, TWI recorder, oracle.py runner)
tests/oracle/ language oracle corpus (184 probes, pytest)
tests/oracle-circuitpython/ three-way SSD1306 oracle: CircuitPython
10.3.1 on RP2040Sharp vs CPython vs AVR
firmware (needs an RP2040Sharp sibling
checkout)
Testing
dotnet test tests/integration runs the AVR8Sharp suite; just test-oracle runs the language oracle corpus (tests/oracle) under both compiler front ends.
Status
Alpha (API) / stable (codegen). 700+ integration tests green across ATmega328P, ATmega2560, ATmega32U4, ATtiny85.
Metadata
Release files for pymcu-avr 0.1.0b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pymcu_avr-0.1.0b1-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| pymcu_avr-0.1.0b1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| pymcu_avr-0.1.0b1-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| pymcu_avr-0.1.0b1-py3-none-manylinux_2_28_aarch64.whl | Python 3 | none | Linux glibc 2.28+ ARM64 | Details |
| pymcu_avr-0.1.0b1-py3-none-macosx_14_0_arm64.whl | Python 3 | none | macOS 14.0+ ARM64 | Details |
| pymcu_avr-0.1.0b1-py3-none-macosx_13_0_x86_64.whl | Python 3 | none | macOS 13.0+ x86-64 | Details |
Total release size: 17.5 MB
Release files / pymcu_avr-0.1.0b1-py3-none-win_arm64.whl
| Download URL | pymcu_avr-0.1.0b1-py3-none-win_arm64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
1f61d42afabd9f0b51283cb4eb254a065273008cdddae4685dfb061301bc6a83
|
|
BLAKE2b-256 checksum How to use checksums |
ca7bc1060f6c71baf973c933cad8bffc7bcede056c0812fff7e73861b19d8a10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pymcu_avr-0.1.0b1-py3-none-win_amd64.whl
| Download URL | pymcu_avr-0.1.0b1-py3-none-win_amd64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
47dc0ee53a5cd022a6ef258afb551033505a28640d73e184fb8b1f4b262a7d2f
|
|
BLAKE2b-256 checksum How to use checksums |
8fbca0c0fd7343247249aaaf4977cb9111cd20ce68338c4feaa8296dfab2b3ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pymcu_avr-0.1.0b1-py3-none-manylinux_2_28_x86_64.whl
| Download URL | pymcu_avr-0.1.0b1-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
f423a609299d30c9a2f6046859872419451bb4c2f2342608a3602f83cb17d11b
|
|
BLAKE2b-256 checksum How to use checksums |
4ca0ec6d33e30095fd660d3381c2f0085fb1c3bb0420b4f032e1bb41e9262043
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pymcu_avr-0.1.0b1-py3-none-manylinux_2_28_aarch64.whl
| Download URL | pymcu_avr-0.1.0b1-py3-none-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
aa722cd1db8f8d1c98c1c2e86dd7c89dde0188eca02b92d9dbed55c4988e45fb
|
|
BLAKE2b-256 checksum How to use checksums |
8ec5a58d207776b032389f8bb6c1634820443c98dc79ab1bc1f83a65e10b900d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pymcu_avr-0.1.0b1-py3-none-macosx_14_0_arm64.whl
| Download URL | pymcu_avr-0.1.0b1-py3-none-macosx_14_0_arm64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | Python 3 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4291dad6543619410a6082eaaede20992fb0d8f21759cbff2f6323f69dad174f
|
|
BLAKE2b-256 checksum How to use checksums |
6a8a2bedf9a3ddfd15e6e6af16752d38d9ea64346edc963b6b5ee82336a4ba04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pymcu_avr-0.1.0b1-py3-none-macosx_13_0_x86_64.whl
| Download URL | pymcu_avr-0.1.0b1-py3-none-macosx_13_0_x86_64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | Python 3 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
3bd61569b00d68a722fef7f890bcf2c61251cbf8d26ac2f57c973138dd0eb359
|
|
BLAKE2b-256 checksum How to use checksums |
6e9e19f82377cdace27902ff921cdc8dd1704ce92a1e3e89f8f10c5716dbae17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for pymcu-avr 0.1.0b1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.