Skip to content

feat: add RockBase IoT NM-EPD-420 board support#10569

Open
RockBase-iot wants to merge 1 commit into
meshtastic:developfrom
RockBase-iot:nm-epd-420
Open

feat: add RockBase IoT NM-EPD-420 board support#10569
RockBase-iot wants to merge 1 commit into
meshtastic:developfrom
RockBase-iot:nm-epd-420

Conversation

@RockBase-iot
Copy link
Copy Markdown

NM-EPD-420 is an ESP32-S3 based device with:

  • 4.2" GDEY042Z98 tri-color EPD (driven B/W/R, 400x300, FSPI)
  • SX1262 LoRa transceiver (Heltec RA62, HSPI)
  • AHT20 temperature/humidity sensor (I2C, power-gated via GPIO40)
  • Battery monitoring (GPIO43 enable, GPIO3 ADC, 2.0x multiplier)
  • WS2812 LED (GPIO47), USER button (GPIO45)

Changes:

  • boards/nm_epd_420.json: PlatformIO board definition
  • variants/esp32s3/nm_epd_420/: variant.h, platformio.ini, nicheGraphics.h, pins_arduino.h for both classic GxEPD2 and InkHUD environments
  • src/platform/esp32/architecture.h: add HW_VENDOR mapping for NM_EPD_420
  • src/PowerFSM.cpp: skip screensaver for boards with EINK_KEEP_SCREEN_ACTIVE
  • src/graphics/EInkDisplay2.cpp/h: 3-color EPD support, NM_EPD_420 rotation
  • src/graphics/EInkDynamicDisplay.cpp/h: configurable refresh rate macros
  • src/graphics/draw/UIRenderer.cpp: custom dashboard frame for NM_EPD_420
  • src/modules/Telemetry/EnvironmentTelemetry.cpp/h: compile-time screen enable
  • src/modules/Modules.cpp: load EnvironmentTelemetry when screen enable forced

🤝 Attestations

  • I have tested that my proposed changes behave as described.
  • I have tested that my proposed changes do not cause any obvious regressions on the following devices:
    • Heltec (Lora32) V3
    • Heltec Vision Master E290
    • LilyGo T-Deck
    • LilyGo T-Beam
    • RAK WisBlock 4631
    • Seeed Studio T-1000E tracker card
    • Other (please specify below)

NM-EPD-420 is an ESP32-S3 based device with:
- 4.2" GDEY042Z98 tri-color EPD (driven B/W, 400x300, FSPI)
- SX1262 LoRa transceiver (HSPI)
- AHT20 temperature/humidity sensor (I2C, power-gated via GPIO40)
- Battery monitoring (GPIO43 enable, GPIO3 ADC, 2.0x multiplier)
- WS2812 LED (GPIO47), USER button (GPIO45)

Changes:
- boards/nm_epd_420.json: PlatformIO board definition
- variants/esp32s3/nm_epd_420/: variant.h, platformio.ini, nicheGraphics.h,
  pins_arduino.h for both classic GxEPD2 and InkHUD environments
- src/platform/esp32/architecture.h: add HW_VENDOR mapping for NM_EPD_420
- src/PowerFSM.cpp: skip screensaver for boards with EINK_KEEP_SCREEN_ACTIVE
- src/graphics/EInkDisplay2.cpp/h: 3-color EPD support, NM_EPD_420 rotation
- src/graphics/EInkDynamicDisplay.cpp/h: configurable refresh rate macros
- src/graphics/draw/UIRenderer.cpp: custom dashboard frame for NM_EPD_420
- src/modules/Telemetry/EnvironmentTelemetry.cpp/h: compile-time screen enable
- src/modules/Modules.cpp: load EnvironmentTelemetry when screen enable forced
@github-actions
Copy link
Copy Markdown
Contributor

@RockBase-iot, Welcome to Meshtastic!

Thanks for opening your first pull request. We really appreciate it.

We discuss work as a team in discord, please join us in the #firmware channel.
There's a big backlog of patches at the moment. If you have time,
please help us with some code review and testing of other PRs!

Welcome to the team 😄

@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@github-actions github-actions Bot added the hardware-support Hardware related: new devices or modules, problems specific to hardware label May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

first-contribution hardware-support Hardware related: new devices or modules, problems specific to hardware needs-review Needs human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants