Tooling
Progress checklist
Overview
Section titled “Overview”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.
Version matrix
Section titled “Version matrix”| Tool | Minimum | Demo / verified here | Why |
|---|---|---|---|
| AWS CLI v2 | latest | latest | No feature pin — need |
| jq | 1.6+ | 1.7 | Parse |
| Python | 3.12 | 3.12.3 | Ubuntu 24.04 default; ESP-IDF + NUC components (Espressif supports 3.10–3.14) |
| ESP-IDF | 5.1 | 5.3.2 | ESP32-S3 |
Install AWS CLI v2
Section titled “Install AWS CLI v2”Official
install guide.
Use the latest v2 bundle. On ARM use awscli-exe-linux-aarch64.zip.
Install the CLI
Section titled “Install the CLI”curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install --updateaws --versionaws-cli/2.x.y Python/… Linux/… exe/x86_64.…Confirm AWS CLI
Section titled “Confirm AWS CLI”which awsaws iot help >/dev/null && echo iot_okaws greengrassv2 help >/dev/null && echo greengrassv2_ok/usr/local/bin/awsiot_okgreengrassv2_okInstall jq
Section titled “Install jq”sudo apt-get updatesudo apt-get install -y jqjq --versionjq-1.7Configure the profile
Section titled “Configure the profile”Use a named profile with IoT / IAM / Greengrass permissions. This lab’s evidence
pass used SSO profile lab:
Sign in and confirm identity
Section titled “Sign in and confirm identity”aws sso login --profile labexport AWS_PROFILE=labexport AWS_REGION=ap-southeast-2aws 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.
Python 3.12 (workstation)
Section titled “Python 3.12 (workstation)”ESP-IDF’s installer follows whichever python3 is first on PATH. Use Ubuntu
24.04’s default 3.12 (no PPA):
python3 --versionPython 3.12.3If 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.
ESP-IDF
Section titled “ESP-IDF”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).
Confirm IDF version
Section titled “Confirm IDF version”. $HOME/esp/esp-idf/export.shidf.py --versionpython --versionESP-IDF v5.3.2Python 3.12.3python --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).