Skip to content

Tooling

Progress checklist

Install and version-check workstation tools before Prerequisites. Do not assume they are already present.

NUC packages (Java, Python) wait until Install Nucleus. This lab pins Python 3.12 on both hosts — Ubuntu 24.04’s default (apt install python3). No deadsnakes / extra interpreters.

ToolMinimumDemo / verified hereWhy
AWS CLI v2latestlatest

No feature pin — need iot + greengrassv2

jq1.6+1.7

Parse create-keys-and-certificate JSON

Python3.123.12.3

Ubuntu 24.04 default; ESP-IDF + NUC components (Espressif supports 3.10–3.14)

ESP-IDF5.15.3.2

ESP32-S3
Espressif ESP32-S3 — Wi‑Fi microcontroller used here as the Greengrass client device (not a second core).
target (supported since IDF v4.4)

Official install guide. Use the latest v2 bundle. On ARM use awscli-exe-linux-aarch64.zip.

Terminal window
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --update
aws --version
aws-cli/2.x.y Python/… Linux/… exe/x86_64.…
Terminal window
which aws
aws iot help >/dev/null && echo iot_ok
aws greengrassv2 help >/dev/null && echo greengrassv2_ok
/usr/local/bin/aws
iot_ok
greengrassv2_ok
Terminal window
sudo apt-get update
sudo apt-get install -y jq
jq --version
jq-1.7

Use a named profile with IoT / IAM / Greengrass permissions. This lab’s evidence pass used SSO profile lab:

Terminal window
aws sso login --profile lab
export AWS_PROFILE=lab
export AWS_REGION=ap-southeast-2
aws sts get-caller-identity
{
"UserId": "AROAEXAMPLE:you",
"Account": "123456789012",
"Arn": "arn:aws:sts::123456789012:assumed-role/AWSReservedSSO_AdministratorAccess_…/you"
}

Save the same profile name in config/walkthrough.env on Prerequisites.

ESP-IDF’s installer follows whichever python3 is first on PATH. Use Ubuntu 24.04’s default 3.12 (no PPA):

Terminal window
python3 --version
Python 3.12.3

If python3 points at a newer side install, put /usr/bin first (or call /usr/bin/python3.12) when you run IDF install.sh so the venv is …/idf*_py3.12_env.

Needed later to flash the ESP32-S3
Espressif ESP32-S3 — Wi‑Fi microcontroller used here as the Greengrass client device (not a second core).
. Follow Espressif’s ESP32-S3 get started and install v5.1 or later (evidence pass: 5.3.2).

Terminal window
. $HOME/esp/esp-idf/export.sh
idf.py --version
python --version
ESP-IDF v5.3.2
Python 3.12.3

python --version after export.sh is the IDF venv (3.12.x).

Any current stable IDF that lists the esp32s3 target is fine (ESP32-S3 get started).

Prerequisites.