Skip to the content
2 layers57.2 × 52.1 mmKiCad Esp32 LotNoDisplay, the printed circuit board in 3D

這是一個基於 ESP32 的 LED 點矩陣顯示專案,整合了 WiFi 網頁設定、RTC 時間顯示、以及條碼掃描器輸入功能,適合用於創客空間或資訊看板。

Size
57.2 × 52.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
18
Nets
40
Pads
115
Tracks, vias
121, 2
Pours
1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
27 Sep 2024
Updated
3 Feb 2026

Overview

KiCad Esp32 LotNoDisplay is an open-source printed circuit board by Chihhao, from the Chihhao/ESP32-MAX7219-LED-Matrix-Display repository on GitHub. It is a 2-layer board of 57.2 × 52.1 mm with 18 parts on 40 nets, routed with 121 tracks and 2 vias.

It is built around the NODEMCU-32SLUA and BSS138. Its parts include 5 resistors, 5 connectors, 2 transistors, 1 capacitor and 1 IC. It belongs with the radio and wireless boards and the ESP32 and ESP8266 boards of this library.

Main components

2

README

README.md

💡 ESP32 MAX7219 LED Matrix Display

這是一個基於 ESP32 的 LED 點矩陣顯示專案,整合了 WiFi 網頁設定、RTC 時間顯示、以及條碼掃描器輸入功能,適合用於創客空間或資訊看板。
本專案提供兩種顯示規格的程式碼:

  1. 64x16 (寬版): 使用 16 個 MAX7219 模組 (雙排)。
  2. 64x8 (窄版): 使用 8 個 MAX7219 模組 (單排)。

📸 專案展示 (Gallery)

寬版 (64x16)

Big Demo Big Clock Big Backside Big Inside

窄版 (64x8)

Big Demo Barcode Reader

網頁設定介面

setting-page


✨ 功能特色 (Features)

  • 📶 WiFi AP 設定介面:
    • ESP32 啟動後建立獨立熱點 (AP),方便手機或電腦連線設定。
    • 提供網頁介面修改三組輪播訊息及同步系統時間。
    • 設定內容儲存於 EEPROM,斷電後資料不遺失。
  • ℹ️ 資訊顯示:
    • 輪播訊息: 支援三組自訂文字訊息 (僅支援英文),具備滾動與進場動畫效果。
    • 時間顯示: 內建 RTC 模組,可顯示大字體時間 (時:分) 與完整日期資訊。
    • 雙區顯示:
      • 64x16: 分為上下兩區 (Zone Upper / Zone Lower)。
      • 64x8: 分為左右兩區 (Zone Left / Zone Right)。
  • 🔫 條碼掃描互動:
    • 支援 PS2 介面的條碼掃描器。
    • 掃描條碼後,螢幕會暫停輪播,立即顯示掃描到的內容 (停留 30 秒)。
  • 🌱 節能排程:
    • 內建工作時間判斷,僅在 08:30 ~ 17:30 開啟顯示,其餘時間自動關閉以節省電力。

📦 版本說明 (Versions)

1. 64x16 寬版 (主要版本)

  • 程式碼路徑: esp32_MAX7219_64x16/
  • 硬體配置: 16 個 MAX7219 模組,排列為 64行 x 16列。
  • 顯示邏輯: 上下兩行同步顯示或顯示不同資訊。

2. 64x8 窄版

  • 程式碼路徑: esp32_MAX7219_64x8/
  • 硬體配置: 8 個 MAX7219 模組,排列為 64行 x 8列 (單排)。
  • 顯示邏輯:
    • 左側 (Zone Left): 固定顯示時間 (時:分)。
    • 右側 (Zone Right): 輪播文字訊息。

🛠️ 硬體與製作 (Hardware & Build)

📝 材料清單 (BOM)

  1. 微控制器: NodeMCU-32S (ESP32)
  2. 顯示模組: MAX7219 Dot Matrix Module (FC-16 形式)
    • 64x16 版本需 16 片 (或 4 組 4合1 模組串接)
    • 64x8 版本需 8 片
  3. RTC 時鐘模組: DS3231
  4. 輸入裝置: PS2 介面條碼掃描器 (或 PS2 鍵盤) + PS/2 母座 PS2 Port
  5. 電源供應:
    • 64x16 版本: 建議使用 5V 4A (至少 3A),以確保全亮時系統穩定。
    • 64x8 版本: 建議使用 5V 2A。
  6. 其他:
    • Reset Button Reset Button
    • PCB (可參考下方 Gerber 檔)
    • 3D 列印外殼
    • 強力磁鐵 (直徑 18.2mm / 厚 2mm)
    • 深色透明壓克力 (雷射切割)

🔌 接線說明 (Pinout)

模組接腳名稱ESP32 GPIO備註
MAX7219CLK18SPI Clock
DATA (DIN)23SPI MOSI
CS5Chip Select
PS2 ScannerData36Input Only
Clock39Input Only
DS3231SDA21I2C SDA (Default)
SCL22I2C SCL (Default)

原理圖 (Schematic)

Schematic

PCB 設計

Layout Preview Module Preview

3D 外殼模型

Case

軟體設定 (Software Setup)

函式庫依賴

請在 Arduino IDE 中安裝以下函式庫:
註:版本號為開發時使用的版本,建議使用最新版,若有問題可嘗試回退。

  1. Arduino IDE : 1.8.19
  2. ESP32 Board Library : 3.0.4
  3. MD_Parola by MajicDesigns (v3.7.3)
  4. MD_MAX72xx by MajicDesigns (v3.5.1)
  5. Bonezegei_DS3231 (v1.0.2)
  6. PS2Keyboard (v2.4)
  7. Time (TimeLib) (v1.6.1)

⚠️ 編譯常見問題與修正 (Compilation Troubleshooting)

如果您在編譯過程中遇到錯誤,請參考以下修正方式:

  1. 錯誤:narrowing conversion of '49828' from 'int' to 'uint8_t'

    • 原因:PS2Keyboard 程式庫 (v2.4) 原始碼包含特殊符號 '¤',在新版編譯器中會被視為多位元組整數而報錯。
    • 解法:需手動修改程式庫檔案 PS2Keyboard.cpp (通常位於 Documents/Arduino/libraries/PS2Keyboard/PS2Keyboard.cpp)。
      • 開啟檔案,找到第 265 行附近的程式碼:0 /*CapsLock*/, 0 /*Rshift*/, PS2_ENTER /*Enter*/, '¤', 0, '#', 0, 0,
      • 將 '¤' 替換為 0xA4:0 /*CapsLock*/, 0 /*Rshift*/, PS2_ENTER /*Enter*/, 0xA4, 0, '#', 0, 0,
  2. 錯誤:'class PS2Keyboard' has no member named 'clear'

    • 原因:標準版 PS2Keyboard v2.4 不包含 clear() 函式。
    • 解法:本專案程式碼已針對此問題進行修正 (使用 while(keyboard.available()) keyboard.read(); 取代)。若您使用舊版程式碼或自行撰寫,請留意此差異。

🚀 使用說明 (Usage)

  1. ⚡ 啟動: 送電後,顯示器會顯示初始訊息或時間。
  2. 🔗 連線設定:
    • 搜尋 WiFi SSID: ESP32_LedDisplay (64x16) 或 LedDisplay_Nory (64x8)
    • 密碼: ESP32_LedDisplay (64x16) 或 LedDisplay_Nory (64x8)
    • 註:SSID 與密碼定義於程式碼開頭,可自行修改。
  3. 🌐 網頁控制:
    • 連線成功後,手機或電腦通常會自動跳出設定頁面 (Captive Portal)。
    • 若未自動跳出,請開啟瀏覽器輸入網址 http://192.168.4.1。
    • 設定介面說明:
      • 開關 (08:30 ~ 17:30): 手動開啟或關閉顯示器 (預設依據工作時間自動開關)。
      • 旋轉 180 度: 若安裝方向相反,可開啟此選項將畫面翻轉。
      • 訊息欄位 (1~3): 輸入欲輪播的英文訊息。
      • 傳送文字: 將輸入的訊息更新至顯示器。
      • 重置預設文字: 恢復預設的歡迎訊息。
      • 校正時間: 將 ESP32 RTC 時間同步為目前手機/電腦的時間。
  4. 🔢 條碼輸入:
    • 直接使用連接的掃描器掃描條碼,螢幕將顯示 "Input: [條碼內容]"。

⚠️ 注意事項

  • 工作時間: 若在 08:30 前或 17:30 後測試,螢幕將保持關閉。可修改程式碼中的 isWorkTime() 函式調整時段。
  • PS2 接腳: GPIO 36/39 為僅輸入 (Input Only) 接腳,適用於單向傳輸的掃描器。

Parts

18
QtyValueFootprintReferences
4MountingHoleMountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H2, H3, H4
310KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2, R4, R8
21KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR3, R5
2BSS138Package_TO_SOT_SMD:SOT-23Q1, Q2
1470uFCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC1
15V電源Connector_BarrelJack:BarrelJack_HorizontalJ3
1Barcode ReaderLibrary:Connector_Mini-DIN_Female_6Pin_2rowsJ1
1I2CConnector_Molex:Molex_KK-254_AE-6410-04A_1x04_P2.54mm_VerticalJ5
1MAX7219_DisplayConnector_Molex:Molex_KK-254_AE-6410-05A_1x05_P2.54mm_VerticalJ2
1NodeMCU-32SLibrary:MODULE_ESP32-DEVKITCU2
1ResetConnector_Molex:Molex_KK-254_AE-6410-02A_1x02_P2.54mm_VerticalJ4

Similar boards

  • 2 layers50 × 100 mmCorrector de postura, the printed circuit board in 3D

    Corrector de postura

    agustin-arg/Posture

    Dispositivo electrónico de corrección de postura corporal

    23 parts5
  • 2 layers30.5 × 77.5 mmProyecto sensor temperatura, the printed circuit board in 3D

    Proyecto sensor temperatura

    unla-investigacion-desarrollo/ecosistema-iot

    Antes de desarrollar el sistema final, realizamos una etapa de exploración donde investigamos y experimentamos con las siguientes tecnologías:

    8 parts5
  • 2 layers91.4 × 76.2 mmArm pcb, the printed circuit board in 3D

    Arm pcb

    AashishKanted/Kratos_Arm

    2023-24 Code base for the robotic arm of the kratos rover

    24 parts2
  • 2 layers64.1 × 98.3 mmLora life jacket, the printed circuit board in 3D

    Lora life jacket

    bytecod3/lora-life-jacket

    Electronic device for life jackets with LORA data transmission

    17 parts2Apache-2.0
  • 2 layers65.5 × 51.8 mmIOT, the printed circuit board in 3D

    IOT

    hopkinskong/eie553-iot-hardware

    ESP32 IOT Smart Lock Device Hardware Schematic and PCB used in the course "EIE553 Security in Data Communication".

    14 parts2
  • 2 layers80 × 100 mmPcb v3, the printed circuit board in 3D

    Pcb v3

    2026MakerClub/PCB

    projects with pcb, custom and commonly used schemes, footprints...etc.

    21 parts1
  • 2 layers169 × 87 mmThermostat v2, the printed circuit board in 3D

    Thermostat v2

    ANTzacalie/termo-pro-esp32

    Full-featured smart thermostat built on the ESP32 platform.

    26 parts1CERN-OHL-P-2.0
  • 2 layers41.5 × 85 mmBase station, the printed circuit board in 3D

    Base station

    bytecod3/ear-tag

    Ear tag with LORA

    4 parts1MIT

Questions

How big is the KiCad Esp32 LotNoDisplay PCB?

It measures 57.2 × 52.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the KiCad Esp32 LotNoDisplay use?

18 parts, built around the NODEMCU-32SLUA and BSS138. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the KiCad Esp32 LotNoDisplay KiCad files?

From the Chihhao/ESP32-MAX7219-LED-Matrix-Display repository on GitHub, at the commit this page was made from: the board is KiCad/KiCad_Esp32_LotNoDisplay.kicad_pcb and its schematic KiCad/KiCad_Esp32_LotNoDisplay.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the KiCad Esp32 LotNoDisplay design in my own project?

Its repository states no licence, so its author keeps all rights: ask Chihhao before reusing the design.