Skip to content
Merged
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
46 changes: 20 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,12 @@ Our custom data is in the following folders:

## 🔧 Prerequisites

- **ESP-IDF 5.x** (P4 target support required)
- **ESP-IDF v5.4.2** (tested with the ESP32-P4 target)
- **Python 3.8+** (for build scripts)
- Toolchain installed per [Espressif instructions](https://docs.espressif.com/projects/esp-idf/en/latest/esp32p4/get-started/)

> Tested with ESP-IDF v5.4.2 for esp32p4; newer releases may require additional fixes.

Optional:
- Mosquitto broker + Home Assistant for end-to-end testing
- Frigate (or any RTSP/MJPEG camera source)
Expand All @@ -122,17 +124,26 @@ Optional:

## 🛠️ Build Instructions

1. **Clone repo & submodules**
1. **Clone the repo**

git clone https://github.com/baba-dev/M5Tab5-UserDemo.git
cd M5Tab5-UserDemo
python fetch_repos.py # fetch or update M5 & LVGL components
cd M5Tab5-UserDemo

Comment on lines +127 to +131

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Restore dependency fetch step before building Tab5 firmware

The new quickstart flow no longer fetches the external components that the Tab5 build requires. Following these steps from a fresh clone leaves dependencies/ empty, but platforms/tab5/main/CMakeLists.txt declares mooncake, mooncake_log, and smooth_ui_toolkit in REQUIRES, so idf.py build will fail with missing-component errors. Please reintroduce a step (e.g., python fetch_repos.py) or document another way to populate those dependencies before invoking the build.

Useful? React with 👍 / 👎.

2. **Select the Tab5 platform**

cd platforms/tab5

2. **Set ESP32-P4 target**
3. **Set ESP32-P4 target**

idf.py set-target esp32p4

3. **Configure (optional)**
Only required once per build directory unless you clean the build output.

4. **Build firmware**

idf.py build

5. **Configure (optional)**

idf.py menuconfig

Expand All @@ -150,7 +161,7 @@ This uses **ESP Web Tools** to flash `firmware.bin` described by `manifest.json`

## 🚀 Flash & Monitor

Connect Tab5 over USB-C.
Connect Tab5 over USB-C. Run the following from `platforms/tab5/`.

Flash:

Expand Down Expand Up @@ -188,25 +199,8 @@ Exit with Ctrl+].

- Test camera performance with multiple stream types; pick best one for latency.

### Devcontainer (ESP-IDF v5.5)
This repo includes a Docker-based devcontainer using `espressif/idf:release-v5.5`.
- Rebuild/Reload Dev Container in VS Code.
- Inside the container, the ESP-IDF environment is auto-loaded via `${IDF_PATH}/export.sh`.
- Verify: `bash scripts/check_idf_env.sh`
- Build: `idf.py build`
- Format: `idf.py clang-format` (or `bash scripts/format.sh`)

### CI builds (ESP-IDF v5.5.x, ESP32-P4)
GitHub Actions uses Espressif’s Docker-based builder to compile this repo.
- IDF: `v5.5.1`
- Target: `esp32p4`
- Submodules: checked out recursively
- Cache: ccache

Locally, the devcontainer auto-exports the IDF env, so `idf.py` works in any shell:
- Check: `bash -lc 'idf.py --version'`
- Build: `scripts/build.sh`
- Format: `scripts/format.sh`
### UI golden snapshots
Run `scripts/update_goldens.sh` after UI changes to refresh the LVGL golden screenshots used by snapshot tests.

------------

Expand Down
Loading