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.0a6-py3-none-win_arm64.whl (2.5 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

pymcu_avr-0.1.0a6-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.0a6-py3-none-manylinux_2_28_aarch64.whl (2.7 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

pymcu_avr-0.1.0a6-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.0a6-py3-none-win_arm64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a6-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.0a6-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 46531466c0693b1de55114213a548cbbdde9bf1c5c9a28ca0c520cf693d76e4e
MD5 22f7e20d0baa8190969156e7f7577491
BLAKE2b-256 7ef29f197ab6047f66fb64cf98b4a2bd88308f1eb7f0844c24bdd8bbdf952d6c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a6-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.0a6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 05f404cc8445a5809231ee941fbd07880dd47322b17d1b8f65daf31f0894da34
MD5 20bd85967279f542a07df7b73b0c590c
BLAKE2b-256 9e0a47fbfc7e139cf14e350bf5eecc49b506d29cc86dc17d5c157cc719f6d3ff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a6-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.0a6-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f11582eed48c90e02a39ec6730fd16d8b6694b629d1cc66b40f44a073f638511
MD5 1b049ca36d259d500402fe80dcb3649e
BLAKE2b-256 d2b48ce816ad2cf010844b1a0eb37495b6c4d50c23445eaaf07593a958d28e38

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a6-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.0a6-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9fd77ebee6a3c08cf2f57d5d04e4196d7800f0eb1d3c90c4228767f259afa25b
MD5 5bbbf95f7f91e186648178cb29113968
BLAKE2b-256 fc31fcf88ccfe3afc513711837d4a5cb8cf529b94452a9c271202cc391e9bee5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a6-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.0a6-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 35b77f6967cb86c8289c2d2e72d4c617ca0454f03adab35d5763b3e256e3bd31
MD5 43f80a227a32b4b8665d5a57bff57935
BLAKE2b-256 e8e3064f5007f38d6b58532ca2fd3a19f2d95406e25087d48f29c9b4cbf2e376

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