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

Status

Alpha (API) / stable (codegen). 700+ integration tests green across ATmega328P, ATmega2560, ATmega32U4, ATtiny85.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pymcu_avr-0.1.0a7-py3-none-win_arm64.whl (2.5 MB view details)

Uploaded Python 3Windows ARM64

pymcu_avr-0.1.0a7-py3-none-win_amd64.whl (2.6 MB view details)

Uploaded Python 3Windows x86-64

pymcu_avr-0.1.0a7-py3-none-manylinux_2_28_x86_64.whl (2.9 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

pymcu_avr-0.1.0a7-py3-none-manylinux_2_28_aarch64.whl (2.7 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

pymcu_avr-0.1.0a7-py3-none-macosx_14_0_arm64.whl (2.7 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

File details

Details for the file pymcu_avr-0.1.0a7-py3-none-win_arm64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a7-py3-none-win_arm64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}

File hashes

Hashes for pymcu_avr-0.1.0a7-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 7331512c07e866c4efe508b95e0798dfc2d3bf6ceeedbd81b55bfaf50e756645
MD5 36f5243e1b5ccf0ea15b68342f65cc07
BLAKE2b-256 05b5e44b604df12fa3bef1802794a4b96be4be3284c59cbfc96c85ca4616e4e3

See more details on using hashes here.

File details

Details for the file pymcu_avr-0.1.0a7-py3-none-win_amd64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a7-py3-none-win_amd64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}

File hashes

Hashes for pymcu_avr-0.1.0a7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ef781fe8ab45eb8ef99fd71a2cb065cb7f4ee9d61810985ecc8b58308760a9ed
MD5 3f4830a35ea7d4dfa0c0384b50789f0e
BLAKE2b-256 2491bad3700fe68c7cd87434973919da1d80dc06e3f8781e93bf415768c5d980

See more details on using hashes here.

File details

Details for the file pymcu_avr-0.1.0a7-py3-none-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a7-py3-none-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: Python 3, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}

File hashes

Hashes for pymcu_avr-0.1.0a7-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 193dd448df35eb692756bbc9287a67b7abac00ee4e29c15904d366a1b0e40b63
MD5 123d34cc45ca96d56cd39408d63c58ab
BLAKE2b-256 6e6bc298791d4dd42a0b5489e7345a1ca57fe921a44f478b64f657209a1482e0

See more details on using hashes here.

File details

Details for the file pymcu_avr-0.1.0a7-py3-none-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a7-py3-none-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: Python 3, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}

File hashes

Hashes for pymcu_avr-0.1.0a7-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e317b32d0df313feac28e64c09e64ab36f86f51a8db316d5fbe280964aea5b77
MD5 30aab9912f40169411b9043b11e50a2f
BLAKE2b-256 0df0b7d769bfab6cebe83b88002277c246dd5c185addffd50c118a45dd09e51c

See more details on using hashes here.

File details

Details for the file pymcu_avr-0.1.0a7-py3-none-macosx_14_0_arm64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a7-py3-none-macosx_14_0_arm64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: Python 3, macOS 14.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}

File hashes

Hashes for pymcu_avr-0.1.0a7-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ffa1a0b8340a3cb8dc27e85953a9ec95a4bb4a848baa858b27eae18892781d57
MD5 0d68b0ef9a9d2d676fd21ef8bada085e
BLAKE2b-256 275d86375035997f8ae814962be1ecc6dd1ad11a225a07ba1b708af81abc3baa

See more details on using hashes here.

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