forked from genewildish/Mainline
7.6 KiB
7.6 KiB
Klubhaus Doorbell — Hardware Spec Sheet
Derived from source code analysis of klubhaus-doorbell and manufacturer datasheets.
The project targets three ESP32-based development boards, each with an integrated TFT display and touch input. All three are all-in-one "ESP32 + screen" modules (not a bare Arduino with a separate breakout).
Board 1 — ESP32-32E (2.8″ ILI9341)
| Attribute | Value |
|---|---|
| Manufacturer | Hosyond (likely) |
| Module | ESP32-32E (ESP32-WROOM-32 family) |
| SoC | ESP32-D0WD-V3, Xtensa dual-core 32-bit LX6 |
| Max clock | 240 MHz |
| SRAM | 520 KB |
| ROM | 448 KB |
| Flash | 4 MB (external QSPI) — per FQBN FlashSize=4M |
| PSRAM | Flagged in build (-DBOARD_HAS_PSRAM) — likely present but unconfirmed capacity |
| WiFi | 2.4 GHz 802.11 b/g/n |
| Bluetooth | v4.2 BR/EDR + BLE |
| Display driver | ILI9341 |
| Display size | ~2.8″ (inferred from .crushmemory note "original 2.8″ ILI9341") |
| Resolution | 320 × 240 (landscape rotation 1) |
| Display interface | 4-line SPI |
| Color depth | 65K (RGB565) |
| Touch | XPT2046 resistive (SPI) |
| Backlight GPIO | 22 |
| SPI pins | MOSI 23, SCLK 18, CS 5, DC 27, RST 33 |
| Touch CS | GPIO 14 |
| SPI clock | 40 MHz (display), 20 MHz (read), 2.5 MHz (touch) |
| Serial baud | 115200 |
| USB | Type-C (programming / power) |
| Display library | TFT_eSPI (vendored) |
Board 2 — ESP32-32E-4″ (Hosyond 4.0″ ST7796)
| Attribute | Value |
|---|---|
| Manufacturer | Hosyond |
| Module | ESP32-32E |
| SoC | ESP32-D0WD-V3, Xtensa dual-core 32-bit LX6 |
| Max clock | 240 MHz |
| SRAM | 520 KB |
| ROM | 448 KB |
| Flash | 4 MB (external QSPI) — per FQBN FlashSize=4M |
| PSRAM | Flagged in build (-DBOARD_HAS_PSRAM) — likely present but unconfirmed capacity |
| WiFi | 2.4 GHz 802.11 b/g/n |
| Bluetooth | v4.2 BR/EDR + BLE |
| Display driver | ST7796S |
| Display size | 4.0″ |
| Resolution | 320 × 480 (landscape rotation 1) |
| Display interface | 4-line SPI |
| Color depth | 262K (RGB666) per manufacturer; firmware uses RGB565 |
| Touch | XPT2046 resistive (SPI) |
| Backlight GPIO | 27 (active HIGH) |
| SPI pins | MISO 12, MOSI 13, SCLK 14, CS 15, DC 2, RST tied to EN |
| Touch CS / IRQ | GPIO 33 / GPIO 36 |
| SPI clock | 40 MHz (display), 20 MHz (read), 2.5 MHz (touch) |
| Serial baud | 115200 |
| Physical size | 60.88 × 111.11 × 5.65 mm |
| USB | Type-C |
| Display library | TFT_eSPI (vendored) |
| Reference | lcdwiki.com/4.0inch_ESP32-32E_Display |
Board 3 — Waveshare ESP32-S3-Touch-LCD-4.3
| Attribute | Value |
|---|---|
| Manufacturer | Waveshare |
| Module | ESP32-S3-WROOM-1-N16R8 |
| SoC | ESP32-S3, Xtensa dual-core 32-bit LX7 |
| Max clock | 240 MHz |
| SRAM | 512 KB |
| ROM | 384 KB |
| PSRAM | 8 MB (onboard) |
| Flash | 16 MB — per FQBN FlashSize=16M |
| WiFi | 2.4 GHz 802.11 b/g/n |
| Bluetooth | v5.0 BLE |
| Antenna | Onboard PCB antenna |
| Display driver | RGB parallel (16-bit, 5-6-5 R/G/B channel split) |
| Display size | 4.3″ |
| Resolution | 800 × 480 |
| Color depth | 65K |
| Touch | GT911 capacitive, 5-point, I2C |
| Touch I2C | SDA 8, SCL 9, INT 4, addr 0x14 (runtime) / 0x5D (defined in config) |
| I/O expander | CH422G (I2C, shared bus with touch) — controls backlight, LCD reset, SD CS, etc. |
| Pixel clock | 14 MHz (LovyanGFX Bus_RGB) |
| USB | Type-C (UART via CH343P + native USB HW CDC on GPIO 19/20) |
| Peripheral interfaces | CAN, RS485, I2C, UART, TF card slot (SPI via CH422G EXIO4), ADC sensor header |
| Partition scheme | app3M_fat9M_16MB (3 MB app, 9 MB FAT) |
| Serial baud | 115200 |
| Display library | LovyanGFX (vendored) |
| Reference | waveshare.com/wiki/ESP32-S3-Touch-LCD-4.3 |
RGB bus pin map (Board 3)
| Signal | GPIOs |
|---|---|
| Red R0–R4 | 1, 2, 42, 41, 40 |
| Green G0–G5 | 39, 0, 45, 48, 47, 21 |
| Blue B0–B4 | 14, 38, 18, 17, 10 |
| DE / VSYNC / HSYNC / PCLK | 5, 3, 46, 7 |
Known unknowns
These are facts the code references or implies but does not pin down:
- PSRAM size on Boards 1 & 2. The build flag
-DBOARD_HAS_PSRAMis set for both ESP32-32E targets, but the capacity (typically 4 MB or 8 MB on ESP32-WROOM-32 variants) is never stated in the code or config. Hosyond product pages list some models with PSRAM and some without. - Exact screen panel size for Board 1. The
.crushmemoryfile calls it "original 2.8″ ILI9341," but the ILI9341 driver is also used on 2.4″ and 3.2″ panels. No board_config.h comment names the panel size explicitly. - Board 1 manufacturer. The code doesn't name Hosyond for the 2.8″ board the way it does for the 4″. It could be a generic ESP32-32E devkit from any number of vendors.
- Board 1 SPI MISO pin. Not defined in
tft_user_setup.h(only MOSI/SCLK/CS/DC/RST are set). This means SPI read-back from the display may not be wired or used. - Serial port path. All three
board-config.shfiles default to/dev/ttyUSB0, which is a Linux convention. The actual development machine appears to be macOS, so the real port (e.g./dev/cu.usbserial-*) is likely overridden at runtime. - GT911 I2C address discrepancy (Board 3).
board_config.hdefinesGT911_ADDR 0x5DbutLovyanPins.hconfigures the touch at address0x14. Both are valid GT911 addresses; the runtime address depends on the INT pin state at boot. The code comment says "IMPORTANT: Address 0x14, not 0x5D!" suggesting 0x5D was tried and didn't work. - CH422G expander pin mapping (Board 3).
LovyanPins.hdefines symbolic names (TP_RST=1,LCD_BL=2,LCD_RST=3,SD_CS=4,USB_SEL=5) but these are CH422G expander output indices, not ESP32 GPIOs. The I2C init sequence that drives these pins lives inDisplayDriverGFX.cpp, which was not fully inspected.
Unknown unknowns
Things that are plausibly relevant but entirely absent from the codebase:
- Power supply specs. No code references input voltage ranges, regulators, or battery charging circuits, though the Waveshare board has a PH2.0 LiPo header and the Hosyond boards support external lithium batteries with onboard charge management.
- Thermal limits / operating temperature range. Not mentioned anywhere.
- Hardware revision / PCB version. No version identifiers for any of the three physical boards.
- Antenna characteristics. The Waveshare board uses an onboard PCB antenna; the Hosyond boards likely do as well. Gain, radiation pattern, and any shielding considerations are unaddressed.
- Display viewing angle / brightness / contrast. The Hosyond 4″ is listed as TN type (narrower viewing angles); the Waveshare 4.3″ is likely IPS but not confirmed in code.
- ESD / EMC compliance. No mention of certifications (FCC, CE, etc.).
- Deep sleep / low-power modes. The firmware uses
millis()-based timing and a display-off state, but never enters ESP32 deep sleep. Whether the hardware supports wake-on-touch or wake-on-WiFi is not explored. - Audio hardware. The Hosyond boards support external speakers per their datasheets, and the codebase has no audio code. The Waveshare board does not appear to have onboard audio.
- SD card. The Waveshare board has a TF card slot (CS via CH422G EXIO4), and the Hosyond boards have TF card slots as well. The firmware does not use storage.