Skip to main content

NM-EPD-420

Overview

The NM-EPD-420 is an ESP32-S3 based 4.2-inch e-ink display development board. It is available with either a tri-color (Black / White / Red) e-paper panel or a dual-color (Black / White) e-paper panel, and features an audio codec (ES8311), environmental sensor (AHT20), RGB LED (WS2812), SD card slot, and optional LoRa modem (SX126x family) — making it ideal for low-power IoT dashboards, outdoor signage, and smart labeling applications.

NM-EPD-420 Dashboard

Hardware Specifications

Core

ItemSpecification
MCUESP32-S3 (dual-core Xtensa LX7 @ 240 MHz)
Flash16 MB
PSRAM8 MB (QIO OPI)
WirelessWi-Fi 4 (802.11 b/g/n) + Bluetooth 5 LE

Display

ItemSpecification
PanelGDEY042Z98 tri-color e-paper (or GYE042A87 black/white e-paper), same pinout
Size4.2 inches
Resolution400 × 300
Colors3-color (Black / White / Red) or 2-color (Black / White)
DriverGxEPD2
InterfaceSPI (FSPI)

The NM-EPD-420 currently supports both the tri-color panel (GDEY042Z98) and the black/white panel (GYE042A87). Their refresh performance differs as follows:

  • GDEY042Z98 Tri-color E-Paper:

    • SKU: NM-EPD-420
    • Full refresh (Black / White / Red) takes about 10 seconds; partial refresh is not supported.
    • For weather stations, dashboards, and similar applications, the tri-color panel provides richer visual effects but slower refresh speeds, making it suitable for static content display.
    • The default tri-color version does not include a LoRa module and is ideal for general desktop applications.
  • GYE042A87 Black/White E-Paper:

    • SKU: NM-EPD-420-BW
    • Full refresh (Black / White) takes about 2–3 seconds; partial refresh is supported, with partial refresh time around 1 second.
    • For applications requiring faster content updates, the black/white panel (GYE042A87) is recommended.
    • The NM-EPD-420-BW version supports a LoRa module by default, making it more convenient for indoor desktop LoRa node applications.

The LoRa version includes an HT-RA62 module (SX1262) for Meshtastic, MeshCore, and other LoRa applications. The non-LoRa version omits the module for general applications. The default NM-EPD-420-BW version supports LoRa to provide better screen refresh performance for relevant LoRa applications.

NM-EPD-420-LoRa

NM-EPD-420-NoLoRa

Onboard Peripherals

BlockPartInterfaceNotes
CodecES8311I2C 0x18 + I2SDAC → external PA → 8 Ω speaker
MicrophoneLMD4737 PDM DMICI2S (DMIC mode)16 kHz sample rate
T/RH SensorAHT20I2C 0x38Power-gated via PIN_TEMP_CTL
RGB LEDWS2812RMT1 pixel
SD CardμSDSPI (HSPI)Shared bus with LoRa
LoRa ModemSX126x familySPI (HSPI)CS / RST / BUSY GPIOs
ButtonsUSER, BOOTGPIOActive LOW, external pull-up
Audio AmpExternal Class-DEN GPIOEnabled by PIN_PA_CTRL HIGH

Pinout

EPD (FSPI)

SignalGPIODirection
SCK2OUT
MOSI1OUT
MISO--
CS46OUT
DC4OUT
RST5OUT
BUSY6IN

SD + LoRa (HSPI)

SignalGPIODirection
SCK9OUT
MOSI10OUT
MISO11IN
SD CS7OUT
LoRa NSS8OUT
LoRa RST12OUT
LoRa BUSY13IN
LoRa DIO114IN

I2S (ES8311)

SignalGPIODirection
MCLK21OUT
BCLK15OUT
LRCK / WS17OUT
DOUT (ESP→DAC)18OUT
DIN (ADC→ESP)16IN

I2C + Others

SignalGPIODirectionNotes
SDA39I/OAHT20 + ES8311 shared bus
SCL38OUT
TEMP_CTL40OUTAHT20 power gate (HIGH = on)
PA_CTRL41OUTExternal amplifier enable
USER button45INActive LOW
BOOT button0INActive LOW, RTC GPIO
LoRa EN47OUTLoRa module power enable, active HIGH
Codec EN44OUTAudio codec power enable, active HIGH
ADC EN43OUTADC module power enable, active HIGH
BATT_ADC3INBattery voltage divider sampling input

Authoritative source: src/config.h

Resources