# Board research notes

Research was performed against vendor documentation and vendor-maintained
repositories on 2026-10-01.

## M5Stack StopWatch (implemented first)

- ESP32-S3R8, 16 MB flash, 8 MB octal PSRAM.
- 466x466 CO5300 QSPI AMOLED and CST820B touch controller.
- Buttons A/B are GPIO2/GPIO1; display and touch reset are controlled through
  the M5IOE1 expander. M5PM1 provides power management.
- Other hardware: vibration motor, BMI270 IMU, RX8130CE RTC, ES8311 audio
  codec, MEMS microphone, AW8737A amplifier.
- M5Stack's official ESP-IDF user demo pins its toolchain to ESP-IDF 5.5.4.
- The firmware uses M5GFX 0.2.21, M5PM1 1.0.6, and M5IOE1 1.0.8 with the
  official demo's explicit HAL initialization order. M5GFX's generic board
  autodetection also contains StopWatch support, but requires the full
  RTC/IMU/touch signature before constructing the display and is not used here.
- Audio was checked against official UserDemo commit
  `6b4aa125288b6fe9dca661f10159f6e1e5ee785c`: I2S0 uses MCLK GPIO18, BCLK
  GPIO17, LRCK GPIO15, DAC data GPIO21 (ADC input GPIO16), 44.1 kHz,
  16-bit Philips stereo slots. ES8311 uses the existing I2C bus and MCLK via
  `esp_codec_dev` 1.5.4. M5IOE1 pin 3 enables audio, M5IOE1 pin 10 and GPIO14
  enable the speaker amplifier.

Official sources:

- <https://docs.m5stack.com/en/core/StopWatch>
- <https://github.com/m5stack/M5StopWatch-UserDemo>
- <https://github.com/m5stack/M5Unified>
- <https://github.com/m5stack/M5GFX>
- <https://github.com/m5stack/M5PM1>
- <https://github.com/m5stack/M5IOE1>

## Waveshare ESP32-S3-Touch-AMOLED-1.75C (reserved)

- ESP32-S3R8, 16 MB flash, 8 MB octal PSRAM.
- 466x466 CO5300 QSPI AMOLED with CST9217 capacitive touch.
- AXP2101 PMIC, QMI8658 IMU, PCF85063 RTC, ES7210 dual microphone ADC,
  ES8311 speaker codec, microSD, PWR and BOOT buttons.
- Waveshare maintains an ESP-IDF managed BSP named
  `waveshare/esp32_s3_touch_amoled_1_75`; use it for the second board rather
  than copying its low-level drivers.

Official sources:

- <https://docs.waveshare.com/ESP32-S3-Touch-AMOLED-1.75>
- <https://github.com/waveshareteam/ESP32-S3-Touch-AMOLED-1.75>
- <https://github.com/waveshareteam/Waveshare-ESP32-components/tree/master/bsp/esp32_s3_touch_amoled_1_75>
