Skip to main content
Pre-release

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)

Table of built distributions (wheels) for pymcu-avr 0.1.0b1
File
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page