Skip to content

ESPHome-TRMNL 7.5"

Files

Creality Cloud GitHub ☕︎ Buy the author a cup of tea 🡥


Description

This is an e-ink screen running esphome firmware to display information from your inker server, and controlled by Home Assistant. img

  • INKER - create screens without a single line of code

img

  • Home Assistant Integration

    • MQTT Connection: Instant data exchange with your server.
    • Energy efficiency and logic: The screen "understands" when you are not at home or in the room and pauses updates to save battery life.
    • The Power of ESPHome: Thanks to the (ESPHome) firmware, the device supports connecting a huge number of additional sensors.
  • Case:

    • Compact and stylish: Minimalist case (175.6 x 116.6 x 11.25 mm) with narrow bezels, where all attention is focused on the screen.
    • Ergonomics: Convenient buttons are located in plain sight — you no longer have to grope for them on the back panel.
    • Three placement options: stand (desktop), hanger (wall-mounted), magnets (wall-mounted).
    • Easy assembly: The case is assembled with reliable latches — no unnecessary screws and complex mounting.

Components

Component Link Pcs Note
ePaper display 7.5" ePaper display 7.5 ePaper display 7.5 bp Aliexpress 1 This is a 3-color B/W/R display, but you can only use B/W due to lack of RAM.
supported displays
Maximum screen dimensions 171.20 x 112.20 x 1.50 mm
USB C plug (male) USB C plug Aliexpress 1
USB C socket (female) USB C socket Aliexpress 1
Slide switch TLZWLA SS12F15VG4 Slide switches Aliexpress 1
Tactile button 6X6X10 img Aliexpress 1
Waveshare E-Paper ESP32 Driver Board (V3) img Aliexpress 1
Li-ion battery 1 Maximum thickness 7.4 mm. Updating once an hour, a 1400 mAh (5.18 Wh) battery lasts for about a month of operation
TP4056 charging module img Aliexpress 1
100 kOhm resistor 2
Neodymium magnet 8x3mm img 5 5 magnets securely hold the 150g display on a metal door
T-7000/B-7000 glue 1

Circuit Diagram

img

link to the project

Assembly

img

  1. Set switch #1 on the ESP32 to position A.

img

  1. Set switch #2 on the ESP32 to the "ON" position. This switch controls the power to the UART module via USB. When the module is not in use, you can manually turn it off to save power (if switch 2 is in the "OFF" position, downloading the program is impossible).

  2. Remove the red PWR LED from the Waveshare E-Paper ESP32 Driver Board to save energy.

  3. To make the ESP32 driver board thinner, desolder the header pins on its bottom side. (Tip: first pry up and remove the plastic between the pins using a screwdriver).

  4. Apply T-7000/B-7000 glue around the magnets so that the case does not slip on smooth metal surfaces.

Firmware Installation

  1. Install ESPHome Device Builder
    Open your Home Assistant instance and show the add-on dashboard.

  2. Download the configuration file esphome-trmnl.yaml and change the values to your own.

Variable Value Description
fw_version 1.0.1 esphome-trmnl Firmware version
server_url http://192.168.1.123:80 Inker server URL
mqtt_broker_ip 192.168.1.100 Mosquitto broker IP address
manual_ip_static_ip 192.168.1.222 Display static IP address
manual_ip_gateway 192.168.1.1 Local network gateway
manual_ip_subnet 255.255.255.0 Local network subnet
name trmnl System name of the device (lowercase letters, numbers, hyphens, up to 24 chars)
friendly_name TRMNL Name in the Home Assistant UI
model 7.50in-bV3 E-ink display model
wifi_output_power 8.5dB Wi-Fi transmit power (from 8.5 to 20.5 dB)
img_type BINARY Internal image encoding method
img_format PNG Format in which the image is encoded.
img_url_setup_logo http://raw.github.../setup-logo.bmp Placeholder image
deep_sleep_delay 1000ms Delay before going to sleep
sleep_time 3600 Default sleep time (sec.)
error_sleep_duration 1200 Sleep time on error (sec.)
reset_duration 200 ms Display reset operation duration
wifi_connect_delay 15s Wi-Fi connection timeout
mqtt_connect_delay 500ms Delay after successful MQTT connection
status_led GPIO2 Status LED pin (commented out)
button GPIO32 Control button pin
adc_pin GPIO34 ADC pin (for battery monitoring)
deep_sleep_pin GPIO32 Deep sleep wake-up pin
clk_pin GPIO13 SPI Clock pin
mosi_pin GPIO14 SPI MOSI pin
cs_pin GPIO15 SPI Chip Select pin
dc_pin GPIO27 Data/Command pin
busy_pin GPIO25 Busy pin (To prevent irreversible damage to the display, you must invert the BUSY pin on gdew0154m09, Waveshare 7.30in-f, and Waveshare 7.50in V2 models (and probably V3 and other new models). Set the busy pin to inverted: true in the settings)
reset_pin GPIO26 Display hardware reset pin
  1. Add to ESPHome's secrets.yaml
mqtt_password: #пароль для подключения к MQTT
wifi_ssid: #имя вашей wifi сети
wifi_password #пароль вашей wifi сети
  1. Upload the edited yaml to ESPHome and flash the firmware to the ESP32

Home Assistant Configuration

  1. Install Inker

  2. Install Mosquitto broker
    Open the Mosquitto broker panel in your Home Assistant.

  3. In the "Configuration" tab of the Mosquitto broker, enter the "name" and "mqtt_password" that you used in the firmware.

  4. Install the MQTT integration
    MQTT

  5. Turn on the screen, and it should appear in the MQTT integration.

  6. Install the blueprint
    Open in Home Assistant

Buy the author a cup of tea ☕︎

Battery Voltage Sensor Calibration (ADC Calibration)

  1. Record the readings at battery voltages of 4.20, 4.19, 3.75, 3.50, and 3.00 V.

  2. Enter the data into the filter. To the left of (->) is the battery voltage, to the right is the voltage measured by the multimeter.

    sensor:
  - platform: adc
    ...
    id: battery_voltage
    ...
       - calibrate_linear:
           - 3.00 -> 3.12
           - 3.50 -> 3.51
           - 3.75 -> 3.79
           - 4.19 -> 4.19
           - 4.20 -> 4.21
    on_value:
      - text_sensor.template.publish:
          id: battery_voltage_text
          state: !lambda 'return str_sprintf("%.2f", x).c_str();'

Help! Something isn't working.

  • Incorrect display: if the image quality is low or the device does not work, try toggling switch #1 on the ESP32.

  • Nothing works -> open web.esphome.io and connect the panel via USB to check the logs.

  • Esphome hasn't updated but stopped compiling working firmware: delete the folders C:\Users\name_user.platformio and .esphome\build

Share with friends
Link copied!