CrowPanel ESP32 4.2inch E-paper

技術関連

CrowPanel ESP32 4.2inch E-paper HMI Display with 400*300 Resolution, Black/White Color Driven By SPI Interface


製作サンプル


GitHub - Elecrow-RD/CrowPanel-ESP32-4.2-E-paper-HMI-Display-with-400-300
Contribute to Elecrow-RD/CrowPanel-ESP32-4.2-E-paper-HMI-Display-with-400-300 development by creating an account on GitHub.

[4.2-inch E-Paper display] 400*300 resolution, using ESP32-S3 as the main control, powerful performance.
[Ultra-low power consumption] It only consumes power when refreshing, extending battery life.
[Pure reflective mode] By reflecting ambient light instead of backlight to display content, it is clearly readable in direct sunlight.
[Power-off display retention] The content will not be lost even when there is no power.
[SPI and BAT interfaces] SPI interface
 for communication with other motherboards; onboard BAT interface, compatible with 2.2V~3.7V.
[❤️What you get] 24H Friendly Customer Service and 1 Year warranty.1x CrowPanel 4.2″ E-paper display,1x Charging Cable, 6x Tutorials and using demo.

GitHub - Elecrow-RD/CrowPanel-ESP32-4.2-E-paper-HMI-Display-with-400-300
Contribute to Elecrow-RD/CrowPanel-ESP32-4.2-E-paper-HMI-Display-with-400-300 development by creating an account on GitHub.

Details

Dual-Color vs Three-Color E-Paper: CrowPanel 4.2” ESP32 HMI Display Refresh Test
📢 Meet the latest addition to Elecrow's CrowPanel family: the CrowPanel ESP32 E-paper Display series! Perfect for shelf labels, price tags, badges, smart la...

CrowPanel 4.2″ ESP32 E-Paper Display

This CrowPanel ESP32 4.2 E-paper HMI display adopts advanced active matrix electrophoretic display technology and is equipped with a hard-coated anti-glare surface, which can keep the content clearly visible even in the sun, perfectly reproducing the appearance and reading experience of traditional paper. The built-in ESP32-S3 chip as the main control ensures powerful performance and fast and stable data transmission through the SPI interface. With a high resolution of 400*300, it provides a delicate display effect and adopts a classic black and white dual-color display to adapt to various application scenarios. It is also equipped with multiple interface and button designs, including TF card slot, BAT interface, UART0 interface, 2×10 pin GPIO interface, back button, home button and rotary switch, which is convenient for users to develop and operate. The white acrylic shell is not only beautiful but also protects the screen.

Based on the ESP32 chip, another highlight is its wide compatibility. It is compatible with the Arduino IDE development environment, simplifying the secondary development process. Also, its ultra-wide viewing angle design allows you to enjoy the same brilliant image from any angle. The ultra-low power consumption feature consumes only a small amount of power when refreshing, ensuring long-lasting battery life. Pure reflection mode means no backlight is required, and information remains clearly visible after power failure, without worrying about information loss.

Due to its excellent characteristics such as low power consumption, high contrast and high reflectivity, this e-ink screen is widely used in shelf labels, price tags, badges, smart labels, smart home devices, e-readers, smart wearable devices and other portable devices, and is an ideal choice for various smart devices and applications.

Quick Click to where you are interested: #Feature, #Customer’s project, #Specification, #Different Size Comparison, #Documents, #Review.

Designed and manufactured by Elecrow, customized requests can be discussed(based on MOQ), you can contact us at service@elecrow.com.

A Comprehensive Introduction to Elecrow Crowpanel ESP32 E-Paper HMI Screen
📢 Explore the Elecrow Crowpanel ESP32 E-Paper Screens – available in six sizes. Perfect for shelf labels, price tags, badges, smart labels, and smart home a...
feature of ESP32 4.2 inch E-paper HMI display

Advantages of E-paper

Electronic paper displays can clearly display images/text under lighting or natural light, without backlight, with lower power consumption and longer life due to partial refresh. Because its effect is similar to that of paper, it is often used as an e-reader.

Advantages of 4.2 inch E-paper display
application of ESP32 4.2 inch E-paper HMI display
application of e-paper
hardware overview of ESP32 4.2 inch E-paper HMI display

Feature

  • CrowPanel 4.2-inch E-Paper display400*300 resolution, black and white, using SPI interface communication;
  • ESP32-S3 as the main chip, frequency up to 240MHz;
  • Pure reflection mode, no backlight required, completely relying on light reflection to display content, and the displayed content will not be lost even if the power is off;
  • Hard-coated anti-glare display surface, which can keep the content visible even under direct sunlight;
  • High contrast and high reflectivity provide a clearer and more vivid visual experience;
  • Ultra-low power consumption and partial refresh function, significantly saving energy and extending battery life;
  • Support full viewing angle, clearly visible from any angle;
  • Rich buttons and interfaces (such as GPIO interface, UART interface, home button, etc.) for easy development and operation;
  • Equip with the Arduino IDE development environment for a smooth development experience.

Spotlight Projects: See How Customers Are Using This E-Paper Display

Smart Planner for Kids on E-Paper Display using LVGLCrowPanel ESP32 4.2” E-paper + Home Assistant
Smart Planner for Kids on E-Paper Display using LVGLCrowPanel ESP32 4.2” E-paper + Home Assistant
CrowPanel ESP32 4.2” E-paper Wi-Fi Info-DispalyBuilding an E-Paper Analog Clock with ESP32 – Full Tutorial
ELECROW CrowPanel ESP32 4.2” E-paper Wi-Fi Info-DispalyBuilding an E-Paper Analog Clock with ESP32 - Full Tutorial
Weather Clock using Elecrow CrowPanel ESP32 4.2” E-Paper HMIE-Paper Display for Real-Time Weather Information
Weather Clock using Elecrow CrowPanel ESP32 4.2” E-Paper HMIE-Paper Display for Real-Time Weather Information

Where to use

  • Electronic label: supermarket or shelf product information and price;
  • E-book reader;
  • Electronic business card: display the corresponding participant information;
  • Smart home and other applications.

Specification

Size4.2 inch
MCUESP32-S3-WROOM-1-N8R8, up to 240 MHz
Flash8 MB
PSRAM8 MB
WiFiSupport
MaterialActive Matrix Electrophoretic Display (AM EPD)
Driver ChipSSD1683
Resolution400(H)*300(V) Pixel
Pixel pitch0.212*0.212
Viewing AngleFull Viewing Angle
Communication interface3-/4-wire SPI
InterfaceUART0x1, BATx1(SH1.0-2P), GPIOx1, TF Card Slot x1
ButtonDial Switchx1, Menu Buttonx1, Back Buttonx1, REST Buttonx1, BOOT Buttonx1
Development EnvironmentArduino IDE
Display ColorBlack and white
Refresh ModePartial refresh (saves more power)
Display Operation Voltage2.2~3.7V
CaseWhite Acrylic Case
Operation Temperature-0~50℃
Storage Temperature-25~70℃
Active Area84.8(H)*63.6(L)(H*L)

Different Size Comparison

Size1.54inch2.13inch2.9inch3.7inch4.2inch5.79inch
Colorblack, whiteblack, whiteblack, whiteblack, whiteblack, whiteblack, white
ChipESP32-S3ESP32-S3ESP32-S3-WROOM-1-N8R8ESP32-S3-WROOM-1-N8R8ESP32-S3-WROOM-1-N8R8ESP32-S3-WROOM-1-N8R8
Flash8MB8MB8MB8MB8MB8MB
PSRAM8MB8MB8MB8MB8MB8MB
Driver ChipSSD1680SSD1680ZSSD1680ZUC8253SSD1683SSD1683
Resolution152*152122*250128×296240*416400*300272*792
Partial RefreshYesYesYesYesYesYes
Communication InterfaceSPISPISPISPISPISPI
InterfaceUART0x1, BATx1UART0x1, BATx1, GPIOx1UART0x1, BATx1, GPIOx1, TF Card x1UART0x1, BATx1, GPIOx1, TF Card x1UART0x1, BATx1, GPIOx1, TF Card Slot x1UART0x1, BATx1, GPIOx1, TF Card Slot x1
ButtonDial Switchx1, Menu Buttonx1, Back Buttonx1, REST Buttonx1, BOOT Buttonx1Dial Switchx1, Menu Buttonx1, Back Buttonx1, REST Buttonx1, BOOT Buttonx1Dial Switchx1, Menu Buttonx1, Back Buttonx1, REST Buttonx1, BOOT Buttonx1Dial Switchx1, Menu Buttonx1, Back Buttonx1, REST Buttonx1, BOOT Buttonx1Dial Switchx1, Menu Buttonx1, Back Buttonx1, REST Buttonx1, BOOT Buttonx1Dial Switchx1, Menu Buttonx1, Back Buttonx1, REST Buttonx1, BOOT Buttonx1
Active Area37.18(H)*48.32(L)(H*L)31.2(H)*63.19(L)(H*L)29.056(H)*66.896(L)(H*L)47.04(H)*81.54(L)(H*L)84.8(H)*63.6(L)(H*L)47.74(H)*139.00(L)(H*L)

Wiki & External links

What do they say?

An E-Ink Display with Controls for a Home Hub and a Really Useful Lapdock for easy KVM from ElecrowELECROW ESP32-S3 Displays!!!! Recommended Display for Makers!
Youtuber: Kit Betts-MastersYoutuber: Hakista TV (Pinoy Hacker)

商品ページ

CrowPanel 4.2”-ESP32 E-Paper Display 400*300 E-Paper HMI Screen, Black/White Display, SPI Interface
The CrowPanel is a 4.2'' E-Paper HMI display with 400x300 HD resolution, ultra-low power consumption, and sunlight-readable clarity. Powered by the ESP32-S3 MCU...

基盤情報

=== ESP32情報 ===
チップモデル: ESP32-S3
チップリビジョン: 0
CPUコア数: 2
CPU周波数: 240 MHz
Flash容量: 8 MB
PSRAM容量: 0 MB
  void setup() {
  Serial.begin(115200);
  delay(1000);
  
  Serial.println("\n=== ESP32情報 ===");
  Serial.print("チップモデル: ");
  Serial.println(ESP.getChipModel());
  Serial.print("チップリビジョン: ");
  Serial.println(ESP.getChipRevision());
  Serial.print("CPUコア数: ");
  Serial.println(ESP.getChipCores());
  Serial.print("CPU周波数: ");
  Serial.print(ESP.getCpuFreqMHz());
  Serial.println(" MHz");
  Serial.print("Flash容量: ");
  Serial.print(ESP.getFlashChipSize() / (1024 * 1024));
  Serial.println(" MB");
  Serial.print("PSRAM容量: ");
  Serial.print(ESP.getPsramSize() / (1024 * 1024));
  Serial.println(" MB");
}

テストコード

表示テスト

/*
 * CrowPanel ESP32 4.2" E-paper - GxEPD2版
 * 基本的なテキスト表示サンプル

 *  CrowPanel ESP32 4.2インチ E-paperディスプレイは
 *  ESP32-S3-WROOM-1-N8R8を搭載しています
    ボード設定を変えてください。
 */

#include "GxEPD2_BW.h"

// ピン定義
#define PWR  7   // 電源制御ピン(重要!)
#define BUSY 48
#define RES  47
#define DC   46
#define CS   45

// ディスプレイオブジェクト作成
GxEPD2_BW<GxEPD2_420_GYE042A87, GxEPD2_420_GYE042A87::HEIGHT> 
  epd(GxEPD2_420_GYE042A87(CS, DC, RES, BUSY));

// 電源制御関数(CrowPanel専用)
void epdPower(int state) {
  pinMode(PWR, OUTPUT);
  digitalWrite(PWR, state);
}

void setup() {
  Serial.begin(115200);
  Serial.println("CrowPanel E-paper 初期化中...");
  
  // ディスプレイ電源ON
  epdPower(HIGH);
  delay(100);
  
  // E-paper初期化
  epd.init(115200, true, 50, false);
  epd.setRotation(0);
  epd.setTextColor(GxEPD_BLACK);
  
  // 全画面更新モード
  epd.setFullWindow();
  epd.fillScreen(GxEPD_WHITE);
  
  // テキスト表示
  epd.setTextSize(3);
  epd.setCursor(80, 80);
  epd.println("CrowPanel");
  
  epd.setTextSize(2);
  epd.setCursor(50, 130);
  epd.println("ESP32 E-paper");
  
  epd.setTextSize(1);
  epd.setCursor(50, 180);
  epd.println("Resolution: 400x300");
  epd.setCursor(50, 200);
  epd.println("Driver: GxEPD2");
  epd.setCursor(50, 220);
  epd.println("Status: OK!");
  
  // 枠を描画
  epd.drawRect(0, 0, 400, 300, GxEPD_BLACK);
  
  // 画面更新(数秒かかります)
  Serial.println("画面更新中...");
  epd.display();
  
  // スリープモード
  epd.hibernate();
  
  Serial.println("初期化完了!");
}

void loop() {
  // E-paperは静的表示なので何もしない
  delay(1000);
}

部分更新テストコード

/*
 * E-paper 部分更新テスト
 * drawPaged()を使用 - 座標修正版
 */

#include "GxEPD2_BW.h"

// ピン定義
#define PWR  7
#define BUSY 48
#define RES  47
#define DC   46
#define CS   45

// ボタン定義
#define BTN_MENU    2
#define BTN_EXIT    1
#define ROT_UP      6
#define ROT_DOWN    4
#define ROT_CONF    5

GxEPD2_BW<GxEPD2_420_GYE042A87, GxEPD2_420_GYE042A87::HEIGHT> 
  epd(GxEPD2_420_GYE042A87(CS, DC, RES, BUSY));

int counter = 0;

// 部分更新エリアの定義(グローバル座標)
const uint16_t BOX_X = 100;
const uint16_t BOX_Y = 130;
const uint16_t BOX_W = 200;
const uint16_t BOX_H = 60;

void epdPower(int state) {
  pinMode(PWR, OUTPUT);
  digitalWrite(PWR, state);
}

// フル画面描画用のコールバック
void drawFull(const void* pv) {
  epd.setFullWindow();
  epd.fillScreen(GxEPD_WHITE);
  epd.drawRect(10, 10, 380, 280, GxEPD_BLACK);
  
  epd.setTextColor(GxEPD_BLACK);
  epd.setTextSize(2);
  epd.setCursor(80, 30);
  epd.print("Partial Update Test");
  
  epd.setCursor(40, 100);
  epd.print("Counter:");
  
  // カウンター表示エリア
  epd.drawRect(BOX_X, BOX_Y, BOX_W, BOX_H, GxEPD_BLACK);
  epd.setTextSize(5);
  epd.setCursor(BOX_X + 40, BOX_Y + 15);
  epd.print(counter);
  
  epd.setTextSize(1);
  epd.setCursor(30, 220);
  epd.print("MENU/CONF: Partial | EXIT: Full refresh");
  epd.setCursor(30, 240);
  epd.print("ROT_UP: +10 | ROT_DOWN: -10");
}

// 部分更新用のコールバック(グローバル座標で描画)
void drawPartial(const void* pv) {
  epd.setPartialWindow(BOX_X, BOX_Y, BOX_W, BOX_H);
  
  // グローバル座標で描画
  epd.fillRect(BOX_X, BOX_Y, BOX_W, BOX_H, GxEPD_WHITE);
  epd.drawRect(BOX_X, BOX_Y, BOX_W, BOX_H, GxEPD_BLACK);
  epd.setTextColor(GxEPD_BLACK);
  epd.setTextSize(5);
  epd.setCursor(BOX_X + 40, BOX_Y + 15);
  epd.print(counter);
}

void setup() {
  Serial.begin(115200);
  
  pinMode(BTN_MENU, INPUT_PULLUP);
  pinMode(BTN_EXIT, INPUT_PULLUP);
  pinMode(ROT_UP, INPUT_PULLUP);
  pinMode(ROT_DOWN, INPUT_PULLUP);
  pinMode(ROT_CONF, INPUT_PULLUP);
  
  epdPower(HIGH);
  delay(100);
  
  epd.init(115200, true, 50, false);
  epd.setRotation(0);
  
  Serial.println("=== Partial Update Test ===");
  Serial.println("MENU/CONF: +1");
  Serial.println("ROT_UP: +10");
  Serial.println("ROT_DOWN: -10");
  Serial.println("EXIT: Full refresh");
  
  // 初回フル描画
  epd.drawPaged(drawFull, 0);
  epd.hibernate();
  
  Serial.println("Ready!");
}

void loop() {
  // MENU or CONF: +1
  if (digitalRead(BTN_MENU) == LOW || digitalRead(ROT_CONF) == LOW) {
    delay(150);
    counter++;
    if (counter > 9999) counter = 0;
    
    Serial.print("Partial: ");
    Serial.println(counter);
    
    epd.drawPaged(drawPartial, 0);
    epd.hibernate();
    
    delay(200);
  }
  
  // ROT_UP: +10
  if (digitalRead(ROT_UP) == LOW) {
    delay(150);
    counter += 10;
    if (counter > 9999) counter = 0;
    
    Serial.print("Partial: ");
    Serial.println(counter);
    
    epd.drawPaged(drawPartial, 0);
    epd.hibernate();
    
    delay(200);
  }
  
  // ROT_DOWN: -10
  if (digitalRead(ROT_DOWN) == LOW) {
    delay(150);
    counter -= 10;
    if (counter < 0) counter = 9999;
    
    Serial.print("Partial: ");
    Serial.println(counter);
    
    epd.drawPaged(drawPartial, 0);
    epd.hibernate();
    
    delay(200);
  }
  
  // EXIT: フルリフレッシュ
  if (digitalRead(BTN_EXIT) == LOW) {
    delay(150);
    
    Serial.println("Full refresh");
    
    epd.drawPaged(drawFull, 0);
    epd.hibernate();
    
    delay(200);
  }
}

DeepSleepからの復帰について

ESP32-S3で使えるRTC GPIO(deepSleepウェイクアップ対応)

GPIORTC GPIO備考
GPIO 0RTC_GPIO0Strappingピン(注意)
GPIO 1RTC_GPIO1✅ BTN_EXIT
GPIO 2RTC_GPIO2✅ BTN_MENU
GPIO 3RTC_GPIO3Strappingピン
GPIO 4〜18RTC_GPIO4〜18使用可能
GPIO 19〜20RTC_GPIO19〜20USB-JTAG用
GPIO 21RTC_GPIO21使用可能
GPIO 26〜48なし❌ RTC非対応

良いニュースです!

CrowPanelのボタンピンは:

  • BTN_MENU (GPIO 2) → RTC_GPIO2 ✅ 対応
  • BTN_EXIT (GPIO 1) → RTC_GPIO1 ✅ 対応

両方ともRTC GPIOなので、deepSleep中のウェイクアップに使えます!

Strappingピン(ストラッピングピン)は、ESP32が起動する瞬間にチップの動作モードを決めるための特別なピンです。

ESP32の電源が入った瞬間(リセット直後)に、これらのピンの電圧(HIGHかLOW)を読み取って、起動モードを決定します。

ESP32-S3のStrappingピン

GPIO役割
GPIO 0起動モード選択(通常実行 or ダウンロードモード)
GPIO 3JTAG関連
GPIO 45電圧設定(VDD_SPI)
GPIO 46ROM起動メッセージ出力設定

例:GPIO 0の動作

起動時の状態結果
HIGH(または浮き)通常起動(プログラム実行)
LOWダウンロードモード(書き込み待ち)

CrowPanelでの影響

ボタンのピンを確認すると:

  • BTN_MENU (GPIO 2) → Strappingピンではない ✅ 安全
  • BTN_EXIT (GPIO 1) → Strappingピンではない ✅ 安全

なので、deepSleepのウェイクアップに使っても問題ありません。

もしStrappingピンをウェイクアップに使うと、ボタンを押しながら電源が入った場合に意図しないモード(ダウンロードモードなど)で起動してしまう可能性があります。CrowPanelの設計では、そのリスクは避けられています。

タイトルとURLをコピーしました