mirrexagon / nixpkgs-esp-dev

Nix flake and overlay for ESP8266 and ESP32 development.
Creative Commons Zero v1.0 Universal
115 stars 52 forks source link
esp-idf esp32 esp8266 nix nixpkgs

nixpkgs-esp-dev

ESP8266 and ESP32(-C3, -S2, -S3, -C6, -H2) packages and development environments for Nix.

This repo contains derivations for ESP-IDF, and most of the toolchains and tools it depends on (compilers for all supported targets, custom OpenOCD for Espressif chips, etc.).

Released into the public domain via CC0 (see COPYING).

Getting started

nix develop

The easiest way to get started is to run one of these commands to get a development shell, without even needing to download the repository (requires Nix 2.4 or later):

The list of available shells (to go after the # in the command) are:

nix-shell

If you're not using Nix 2.4+ or prefer not to need to enable flakes, you can clone the repo and use one of:

to get the same shells as with nix develop.

Note: nix develop will use the nixpkgs revision specified in flake.nix/flake.lock, while using nix-shell will use your system nixpkgs by default.

Creating a custom shell environment

You can create a standalone shell.nix for your project that downloads nixpkgs-esp-dev automatically and creates a shell with the necessary packages and environment setup to use ESP-IDF.

See examples/shell-standalone.nix for an example.

Overriding ESP-IDF and ESP32 toolchain versions

There is a default version of ESP-IDF specified in pkgs/esp-idf/default.nix. To use a different version of ESP-IDF or to pin the version, override a esp-idf-* derivations with the desired version and the hash for it. The correct version of the tools will be downloaded automatically.

See examples/shell-override-versions.nix for an example.

Overlay

This repo contains an overlay in overlay.nix containing all the packages defined by this repo. If you clone the repo into ~/.config/nixpkgs/overlays/, nixpkgs will automatically pick up the overlay and effectively add the packages to your system nixpkgs.