Skip to content

Support RockBase IoT NM-EPD-420-4C with EP42YR_400x300 panel - #166

Open
RockBase-iot wants to merge 5 commits into
OpenDisplay:mainfrom
RockBase-iot:nm-epd-420
Open

RockBase-iot wants to merge 5 commits into
OpenDisplay:mainfrom
RockBase-iot:nm-epd-420

Conversation

@RockBase-iot

Copy link
Copy Markdown

Adds full device support for the NM-EPD-420-4C:

  • Reuses the esp32-s3-N16R8 environment with 400×300 B/W/R/Y full-refresh support.
  • Adds panel mapping, GPIO, button, battery, and deep-sleep wake configuration.
  • Supports wake-time temperature and humidity sampling via AHT20.
  • Adds low-power peripheral initialization, device configuration, preset data, and a factory firmware image.
  • Partial refresh remains disabled for the four-color panel.

Verified on hardware: display refresh, physical buttons, BOOT wake, and battery reporting.

Tested with Home Assistant. The AHT20 need change the sensor.py to support sensor_type = 7 for AHT20.

@jonasniesner

Copy link
Copy Markdown
Member

Thank you for your PR. Instead of creating the devices files, please open a pr against the website repo. And and the .md file is not required. Once you address this, I will re review your PR and if it passes, merge it

@jonasniesner
jonasniesner marked this pull request as draft October 11, 2026 11:16
@RockBase-iot

Copy link
Copy Markdown
Author

Thanks for the feedback! I've addressed both points:

  • Removed the device files from this PR — devices/nm-epd-420-4c.yaml, devices/nm-epd-420.simple-config-preset.json, and docs/DEVICE_NM_EPD_420_4C.md are all gone. The PR now contains only the firmware code changes (panel mapping, NM420 init flag, AHT20 sensor support, and the od-device-cli.py enum update).

  • Opened a PR against the website repo with the driver board preset: Add RockBase IoT NM-EPD-420 (ESP32-S3) driver board preset opendisplay.org#165 — it adds the nm-epd-420-4c entry (driverBoards index 32) to simple-config-presets.json, pointing at the existing ep42yr-400x300 display preset and battery-650 power option, plus the matching simple-config-id-registry.json entry. Validated locally with .github/scripts/validate-simple-config-presets.py (simple-config OK: 89 presets; id/index registry stable).

Ready for re-review. Let me know if anything else needs adjusting.

@RockBase-iot
RockBase-iot marked this pull request as ready for review October 12, 2026 06:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants