First public, reproducible Zephyr RTOS board port for the M5Stack StickS3 / M5StickS3 K150 (ESP32-S3-PICO-1-N8R8), structured for upstream submission.
Verified on physical hardware (runtime-verified)
- Board discovery, build, flash, and boot/console (
m5stack_sticks3/esp32s3/procpu, Zephyr 4.4.0). - Buttons KEY1 / KEY2 (GPIO G11 / G12) via gpio-keys and the input subsystem.
- Bosch BMI270 IMU over I2C (0x68); live accelerometer tracks gravity.
- ST7789P3 LCD (135x240) over SPI2 mipi-dbi-spi, offsets x=52 / y=40. Photos of the panel cycling colours are in
evidence/. - The LCD power rail (L3B) is enabled by an interim M5PM1 PMIC regulator (
m5stack,m5pm1-l3b-regulator) that drives M5PM1 GPIO2 (PYG2) high, with a native_sim ztest (6/6 passing).
Validation app
The bundled app exercises the display and power-rail control. Build with -DCONFIG_APP_DISPLAY_DEMO=n for a quiet build that fills the screen once and only logs a heartbeat, so the panel does not flash. Both builds are verified on hardware (evidence/).
Not claimed yet (roadmap)
Full M5PM1 PMIC (charger, fuel-gauge, audio rails), IR TX/RX, ES8311 audio, and on-device power measurement are tracked as issues #1 to #4 and are not claimed to work until they have their own captured evidence.
Upstream
The interim regulator is intended to be replaced by the upstream M5PM1 MFD driver being introduced in Zephyr PR #109961 (for the M5Stack PaperColor board). The binding here is deliberately named m5stack,m5pm1-l3b-regulator to avoid clashing with the upstream m5stack,m5pm1-regulator. See docs/07_UPSTREAM_PLAN.md.
Notes
Apache-2.0, DCO sign-off on every commit. Honesty ladder (scaffolded, build-verified, flash-verified, runtime-verified, upstream-reviewed) is documented in docs/05_VALIDATION_MATRIX.md.