Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 0 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,6 @@ The list of available shells (to go after the `#` in the command) are:

- `esp-idf-full`: Includes toolchains for _all_ supported ESP32 chips (no ESP8266).
- `esp32-idf`: Includes toolchain for the ESP32.
- `esp32c2-idf`: Includes toolchain for the ESP32-C2.
- `esp32c3-idf`: Includes toolchain for the ESP32-C3.
- `esp32s2-idf`: Includes toolchain for the ESP32-S2.
- `esp32s3-idf`: Includes toolchain for the ESP32-S3.
- `esp32c6-idf`: Includes toolchain for the ESP32-C6.
- `esp32h2-idf`: Includes toolchain for the ESP32-H2.
- `esp32p4-idf`: Includes toolchain for the ESP32-P4.
- `esp8266-rtos-sdk`: Includes RTOS SDK toolchain for ESP8266 and esptool.
- `esp8266-nonos-sdk`: Includes NONOS SDK toolchain for ESP8266 and esptool.

Expand All @@ -38,13 +31,6 @@ If you're not using Nix 2.4+ or prefer not to need to enable flakes, you can clo

- `nix-shell shells/esp32-idf-full.nix`
- `nix-shell shells/esp32-idf.nix`
- `nix-shell shells/esp32c2-idf.nix`
- `nix-shell shells/esp32c3-idf.nix`
- `nix-shell shells/esp32s2-idf.nix`
- `nix-shell shells/esp32s3-idf.nix`
- `nix-shell shells/esp32c6-idf.nix`
- `nix-shell shells/esp32h2-idf.nix`
- `nix-shell shells/esp32p4-idf.nix`
- `nix-shell shells/esp8266-rtos-sdk.nix`
- `nix-shell shells/esp8266-nonos-sdk.nix`

Expand Down
6 changes: 3 additions & 3 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 2 additions & 16 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,6 @@
esp-idf-full
esp-idf-riscv
esp-idf-xtensa
esp-idf-esp32
esp-idf-esp32c2
esp-idf-esp32c3
esp-idf-esp32s2
esp-idf-esp32s3
esp-idf-esp32c6
esp-idf-esp32h2
esp-idf-esp32p4
gcc-xtensa-lx106-elf-bin
# esp8266-rtos-sdk # Broken
esp8266-nonos-sdk
Expand All @@ -49,14 +41,8 @@
devShells = rec {
default = esp-idf-full;
esp-idf-full = import ./shells/esp-idf-full.nix { inherit pkgs; };
esp32-idf = import ./shells/esp32-idf.nix { inherit pkgs; };
esp32c2-idf = import ./shells/esp32c2-idf.nix { inherit pkgs; };
esp32c3-idf = import ./shells/esp32c3-idf.nix { inherit pkgs; };
esp32s2-idf = import ./shells/esp32s2-idf.nix { inherit pkgs; };
esp32s3-idf = import ./shells/esp32s3-idf.nix { inherit pkgs; };
esp32c6-idf = import ./shells/esp32c6-idf.nix { inherit pkgs; };
esp32h2-idf = import ./shells/esp32h2-idf.nix { inherit pkgs; };
esp32p4-idf = import ./shells/esp32p4-idf.nix { inherit pkgs; };
esp-idf-riscv = import ./shells/esp-idf-riscv.nix { inherit pkgs; };
esp-idf-xtensa = import ./shells/esp-idf-xtensa.nix { inherit pkgs; };
# esp8266-rtos-sdk = import ./shells/esp8266-rtos-sdk.nix { inherit pkgs; }; # Broken
esp8266-nonos-sdk = import ./shells/esp8266-nonos-sdk.nix { inherit pkgs; };
};
Expand Down
20 changes: 5 additions & 15 deletions overlay.nix
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,14 @@ final: prev: let
'' alias;
};

deprecatedAlias = builtins.foldl' (acc: pair: acc // (mkDeprecatedAlias pair.arch pair.name pair.alias)) {} [
{ name = "esp-idf-esp32"; alias = esp-idf-xtensa; arch = "xtensa"; }
{ name = "esp-idf-esp32s2"; alias = esp-idf-xtensa; arch = "xtensa"; }
{ name = "esp-idf-esp32s3"; alias = esp-idf-xtensa; arch = "xtensa"; }
{ name = "esp-idf-esp32c2"; alias = esp-idf-riscv; arch = "riscv"; }
{ name = "esp-idf-esp32c3"; alias = esp-idf-riscv; arch = "riscv"; }
{ name = "esp-idf-esp32c6"; alias = esp-idf-riscv; arch = "riscv"; }
{ name = "esp-idf-esp32h2"; alias = esp-idf-riscv; arch = "riscv"; }
{ name = "esp-idf-esp32p4"; alias = esp-idf-riscv; arch = "riscv"; }
];
in deprecatedAlias // {
in {
inherit esp-idf-full esp-idf-xtensa esp-idf-riscv;

# ESP8266
gcc-xtensa-lx106-elf-bin = prev.callPackage ./pkgs/esp8266/gcc-xtensa-lx106-elf-bin.nix { };
esp8266-rtos-sdk = prev.callPackage ./pkgs/esp8266/esp8266-rtos-sdk/esp8266-rtos-sdk.nix { };
esp8266-nonos-sdk = prev.callPackage ./pkgs/esp8266/esp8266-nonos-sdk/esp8266-nonos-sdk.nix { };
gcc-xtensa-lx106-elf-bin = prev.callPackage ./pkgs/esp8266/gcc-xtensa-lx106-elf-bin.nix {};
esp8266-rtos-sdk = prev.callPackage ./pkgs/esp8266/esp8266-rtos-sdk/esp8266-rtos-sdk.nix {};
esp8266-nonos-sdk = prev.callPackage ./pkgs/esp8266/esp8266-nonos-sdk/esp8266-nonos-sdk.nix {};

# QEMU
qemu-esp32 = prev.callPackage ./pkgs/qemu-esp32 { };
qemu-esp32 = prev.callPackage ./pkgs/qemu-esp32 {};
}
21 changes: 9 additions & 12 deletions pkgs/esp-idf/default.nix
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
owner ? "espressif",
repo ? "esp-idf",
rev ? "v5.5.2",
sha256 ? "sha256-xYlj8uG/nxeMMNdAY8AbBiA7RYuEOOxoDyb+wVK8QWc=",
rev ? "v6.0.1",
sha256 ? "sha256-4KJa686qc+u7XkF/GS2o53l1SpwP2EmdqAn/qmlL1yU=",
toolsToInclude ? [
"xtensa-esp-elf-gdb"
"riscv32-esp-elf-gdb"
Expand Down Expand Up @@ -69,6 +69,7 @@ let
# This list is from `tools/requirements/requirements.core.txt` in the
# ESP-IDF checkout.
setuptools
packaging
click
pyserial
cryptography
Expand All @@ -85,9 +86,15 @@ let
esp-idf-size
tree-sitter
tree-sitter-grammars.tree-sitter-c
esp-idf-diag
pyclang
psutil
construct
rich
psutil

tree-sitter
tree-sitter-grammars.tree-sitter-c
argcomplete

freertos_gdb
Expand Down Expand Up @@ -200,16 +207,6 @@ EOF
buildExample = callPackage ./build-example.nix { inherit esp-idf; };
targets = [
"esp32"
"esp32c2"
"esp32c3"
"esp32s2"
"esp32s3"
"esp32c5"
"esp32c6"
"esp32h2"
"esp32p4"
"esp32c61"
"esp32h21"
];
in
esp-idf // {
Expand Down
46 changes: 21 additions & 25 deletions pkgs/esp-idf/python-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
# https://dl.espressif.com/dl/esp-idf/espidf.constraints.v5.5.txt
# on 2025-07-18.
#
# Versions found by running this in a fresh venv:
# pip install -r esp-idf/tools/requirements/requirements.core.txt --constraint=espidf.constraints.v5.5.txt --dry-run
# Versions found by running this script:
# ./pkgs/esp-idf/update-python-packages.sh v6.0.1
{
fetchPypi,
fetchurl,
Expand All @@ -13,13 +13,13 @@ with pythonPackages;
rec {
idf-component-manager = buildPythonPackage rec {
pname = "idf-component-manager";
version = "2.2.2";
version = "3.0.2";
pyproject = true;

src = fetchPypi {
inherit version;
pname = "idf_component_manager";
sha256 = "sha256-HKOJIThQ05khSBhDzVjX+cF2hWrBivNZXmQZWBpIGvc=";
sha256 = "sha256-GZ1MJbJNdCwtuzCYREsorKacEzzUkpDIXeC+AzkWbJQ=";
};

build-system = [
Expand All @@ -36,11 +36,11 @@ rec {

pydantic
pydantic-core
pydantic-core
pydantic-settings
pyparsing

packaging
psutil
pyyaml
ruamel-yaml
requests
Expand All @@ -61,13 +61,13 @@ rec {

esp-coredump = buildPythonPackage rec {
pname = "esp-coredump";
version = "1.13.1";
version = "1.16.0";
pyproject = true;

src = fetchPypi {
inherit version;
pname = "esp_coredump";
sha256 = "sha256-rz0HbQ4DHB7vClZICYW/Q13N+48MWqEpnup0TyYFzIk=";
sha256 = "sha256-1Jog+q8+sXh4/7NRtYHrfjLUeTPU0KFIkAxck2HoNUs=";
};

build-system = [
Expand All @@ -89,7 +89,7 @@ rec {

esptool = buildPythonPackage rec {
pname = "esptool";
version = "4.9.0";
version = "5.3.dev2";
pyproject = true;

build-system = [
Expand All @@ -98,20 +98,20 @@ rec {

src = fetchPypi {
inherit pname version;
sha256 = "sha256-9ja0VS84c835TPry1cN/VAfx8z33NkPv7lE4ZzELao4=";
sha256 = "sha256-EExxdDegGiSJk6qf0bYUUVkelWN/iMmhVe/or0t6XZc=";
};

doCheck = false;

propagatedBuildInputs = [
intelhex
argcomplete
bitstring
cryptography
ecdsa
pyserial
reedsolo
pyyaml
rich-click
click
];

# Replaces esptool.py import with .esptool.py-wrapped
Expand All @@ -135,7 +135,7 @@ rec {

esp-idf-kconfig = buildPythonPackage rec {
pname = "esp-idf-kconfig";
version = "2.5.0";
version = "3.8.1";
pyproject = true;

build-system = [
Expand All @@ -145,18 +145,14 @@ rec {
src = fetchPypi {
inherit version;
pname = "esp_idf_kconfig";
sha256 = "sha256-G65GbZh1tlOITRJG1bDKfHq247f0/1pzLjyAljHg45I=";
sha256 = "sha256-Ska7+/apSvI0dcsYpbomjppD9rnZ7Oj0LLGfs+mz+o8=";
};

doCheck = false;

propagatedBuildInputs = [
kconfiglib

# These packages aren't declared as dependencies but will fail idf.py's
# initial dependency check.
intelhex
rich
pyparsing
];

meta = {
Expand All @@ -166,13 +162,13 @@ rec {

esp-idf-monitor = buildPythonPackage rec {
pname = "esp-idf-monitor";
version = "1.7.0";
version = "1.9.0";
pyproject = true;

src = fetchPypi {
inherit version;
pname = "esp_idf_monitor";
sha256 = "sha256-lU5ec8f7d3R+PzBkfiCVbYbnD7ZO1rOJC3TA5ulKGdk=";
sha256 = "sha256-DDjaDD04PUtjBYY7jfjqbgkwOtWm1bqSznGzHxz3AM4=";
};

build-system = [
Expand All @@ -195,7 +191,7 @@ rec {

esp-idf-size = buildPythonPackage rec {
pname = "esp-idf-size";
version = "1.7.1";
version = "2.2.0";
pyproject = true;

build-system = [
Expand All @@ -205,7 +201,7 @@ rec {
src = fetchPypi {
inherit version;
pname = "esp_idf_size";
sha256 = "sha256-labUYKJukzADWq8eHCXM83FgVJdWIUMgzMqEBNl9zBs=";
sha256 = "sha256-Sxl+j9Ece8Y/TfF51gs2IrQR9epNuTORG4nNpa433d8=";
};

doCheck = false;
Expand Down Expand Up @@ -290,7 +286,7 @@ rec {

esp-idf-panic-decoder = buildPythonPackage rec {
pname = "esp-idf-panic-decoder";
version = "1.4.1";
version = "1.5.0";
pyproject = true;

build-system = [
Expand All @@ -300,13 +296,14 @@ rec {
src = fetchPypi {
inherit version;
pname = "esp_idf_panic_decoder";
sha256 = "sha256-l0HQFZlWB0PkiK4EkiIotYBkX5hXHCu9v+f0noUcKwM=";
sha256 = "sha256-ewk/ehul/f135CqWBIe1pDP2Dc2r84zJgXbykfw6iPs=";
};

doCheck = false;

propagatedBuildInputs = [
pyelftools
pyparsing
];

meta = {
Expand All @@ -332,7 +329,6 @@ rec {

propagatedBuildInputs = [
pyyaml
click
rich
];

Expand Down
1 change: 1 addition & 0 deletions pkgs/esp-idf/setup-hook.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ addIdfEnvVars() {
export IDF_TOOLS_PATH="$IDF_PATH/tools"
export IDF_PYTHON_CHECK_CONSTRAINTS=no
export IDF_PYTHON_ENV_PATH="$(readlink $IDF_PATH/python-env)"
export ESP_IDF_VERSION="$(cat $1/version.txt | sed 's/^v//')"
addToSearchPath PATH "$IDF_TOOLS_PATH"

# Extra paths from `export.sh` in the ESP-IDF repo.
Expand Down
16 changes: 6 additions & 10 deletions shells/esp32c2-idf.nix → shells/esp-idf-riscv.nix
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,10 @@
},
}:

builtins.warn
"[DEPRECATION WARNING] Chip specific shell will be removed starting ESP-IDF 6.0. Use esp-idf-full instead."
pkgs.mkShell {
name = "esp-idf-riscv-shell";

pkgs.mkShell
{
name = "esp-idf-esp32c2-shell";

buildInputs = with pkgs; [
esp-idf-esp32c2
];
}
buildInputs = with pkgs; [
esp-idf-riscv
];
}
16 changes: 6 additions & 10 deletions shells/esp32c3-idf.nix → shells/esp-idf-xtensa.nix
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,10 @@
},
}:

builtins.warn
"[DEPRECATION WARNING] Chip specific shell will be removed starting ESP-IDF 6.0. Use esp-idf-full instead."
pkgs.mkShell {
name = "esp-idf-xtensa-shell";

pkgs.mkShell
{
name = "esp-idf-esp32c3-shell";

buildInputs = with pkgs; [
esp-idf-esp32c3
];
}
buildInputs = with pkgs; [
esp-idf-xtensa
];
}
Loading