--- tags: - micro-controllers - C - ESP32 --- > The ESP-IDF is the SDK, provided by Expressif, for programming the ESP32 with > C and C++. > Ensure you are a member of the `uucp` group so that you have serial access, > using `usermod -a -G uucp $USER` ## Installation ```sh yay -Sy esp-idf ``` ## Pre-requisites: ```txt To use ESP-IDF: 1. Run /opt/esp-idf/install.sh to install ESP-IDF to ~/.espressif. You only have to do this once after installing or upgrading the esp-idf package. 2. Run `source /opt/esp-idf/export.sh` to add idf.py and idf_tools.py to your current PATH. You will have to do this in every terminal where you want to use ESP-IDF. Alternatively, you can add "source /opt/esp-idf/export.sh" to ~/.bashrc or the equivalent for your shell to load ESP-IDF automatically in all terminals. ``` Must run ```sh . /opt/esp-idf/export.sh ``` In any terminal where you want to compile to the device. ![](../img/esp-32-shell-confirmation.png) ## Compilation process To demonstrate compilation, I have copied one of the demo projects provided: ```sh cp -r /opt/esp-idf/examples/get-started/hello_world . ``` To initialise the project, run: ```sh idf.py set-target esp32 ``` > Python is used as the client for automated processes/bootstrapping etc, even > though the code that runs on the device is written in C.