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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.28+ ARM64

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

Uploaded Python 3macOS 14.0+ ARM64

pymcu_avr-0.1.0a8-py3-none-macosx_13_0_x86_64.whl (2.9 MB view details)

Uploaded Python 3macOS 13.0+ x86-64

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a8-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.0a8-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 13afbb3ab9c156f3593db8e7468ddd225247b246ca6f184dfe2ca6e1f0740a68
MD5 427ea9dafa793cebdef15359ce6e9f08
BLAKE2b-256 020a1826daecd12eea7fa28cee316dce5520c17283a280f48ac2289f31680bbb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a8-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.0a8-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 1fe0029fa5e3966182e6ce2be9f33f4ee5e72bab61df54737486049c7fd1c808
MD5 5492bfb4ab94c7e944ffa71cedf08ffc
BLAKE2b-256 203bfe77fc85b7c971476c37afd6ce04f25ee000ee6c42ef625829b8d0e4ccd3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a8-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.0a8-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 502a504b7c9e5f2d5527431e3358da28059f413af5afb8100553538341756ce7
MD5 f52b0d2b3ea2436772de258f8f7ecb44
BLAKE2b-256 eee15f6b713fa333df50c2126927c44a8ce5d8b81695e157c34ff284fb2fd4d2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a8-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.0a8-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 646717dba6d45f1983cad6d6b0d3fb0db4b47277bd81cc8baf3acb98b256bf67
MD5 59e121a7d7b0b5cc53071fc590f467f6
BLAKE2b-256 0ee59410d95d38e6c996c7cab4fc0a270a1259cba2994e97f72c2402a307e954

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a8-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.0a8-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0e3a1756c95cb42a5f7312de4b3cc9b9dde70a677f147ff8d8fe283ad0c51acb
MD5 23c9b1a70bae721d1cf51d20fbe27664
BLAKE2b-256 c3cab2a84b9a65efa6ccb0f147a2d31211eb7b2d3a7907f11cba09f56a362f47

See more details on using hashes here.

File details

Details for the file pymcu_avr-0.1.0a8-py3-none-macosx_13_0_x86_64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a8-py3-none-macosx_13_0_x86_64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: Python 3, macOS 13.0+ 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.0a8-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 84bd4c0d7710a7ecc4ea291a545b098bf28f97bdb2493f571d16771b7d08c4ca
MD5 c4cf1b33b82495fdb0279c1a26be67b4
BLAKE2b-256 931df678f14dcf0b0a9feb78e0b93644a1278e04159262ee95214d45e729f500

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