Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

py-esp32-ulp

py-esp32-ulp is an assembler toolchain for the ESP32 ULP (Ultra Low-Power) Co-Processor, written in MicroPython.

It can translate small assembly language programs to a loadable/executable ULP machine code binary, directly on the ESP32 microcontroller.

This is intended as an alternative approach to assembling such programs using the binutils-esp32ulp toolchain from Espressif on a development machine.

It can also be useful in cases where binutils-esp32ulp is not available.

Features

The following features are supported:

  • the entire ESP32 ULP instruction set

  • constants defined with .set

  • constants defined with #define

  • expressions in assembly code and constant definitions

  • RTC convenience macros (e.g. WRITE_RTC_REG)

  • many ESP32 ULP code examples found on the web will work unmodified

Quick start

To get going run the following directly on the ESP32:

# Step 1: Install py-esp32-ulp
# IMPORTANT: Ensure the ESP32 is connected to a network with internet connectivity.
import upip
upip.install('micropython-py-esp32-ulp')

# Step 2: Run an example
# First, upload examples/counter.py to the ESP32.
import counter

The examples/counter.py example shows how to assemble code, load and run the resulting binary and exchange data between the ULP and the main CPU.

Documentation

See docs/index.rst.

Requirements

The minimum supported version of MicroPython is v1.12.

An ESP32 is required to run the ULP machine code binary produced by py-esp32-ulp (the ESP32-S2 will not work as it is not binary compatible with the ESP32).

License

This project is released under the MIT License.

Metadata

Release files for micropython-py-esp32-ulp 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for micropython-py-esp32-ulp 1.1.0
File Size Uploaded Provenance Actions
micropython-py-esp32-ulp-1.1.0.tar.gz 16.2 kB Without provenance Details for micropython-py-esp32-ulp-1.1.0.tar.gz

Release files / micropython-py-esp32-ulp-1.1.0.tar.gz

Download URL micropython-py-esp32-ulp-1.1.0.tar.gz
Size 16.2 kB
Tags Source
SHA-256 checksum
How to use checksums
708f2b36195ae2c17de0483396939681999e004e072297d3bd9ad4b86787fd09
BLAKE2b-256 checksum
How to use checksums
b65990b952a291882ad595c3d06bd0bdd0de582017e02b18293136430ebf3dd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Security for micropython-py-esp32-ulp 1.1.0

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.

Release history Release notifications | RSS feed

This release
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