Skip to content

lanrat/homeplate

Repository files navigation

HomePlate

Home Assistant E-Ink Dashboard on the Inkplate 10

homeplate

Features

  • Display Home Assistant dashboards on a beautiful e-ink display
  • Display WiFi QR Codes for guests/friends to connect to home/guest wifi
  • Can display messages directly from Home Assistant over MQTT
  • Makes full use of the ESP32's cores with FreeRTOS
  • Reports sensor data to Home Assistant over MQTT (Temperature, Battery, WiFi, etc..)
  • Can change Activity displayed via MQTT Command (HASS dashboard, WiFi QR, Stats, text message, etc..)
  • Syncs RTC over NTP
  • Touch-pad buttons can start activities and wake from sleep
  • 1 month+ battery life!
  • Low battery warning displayed and sent over MQTT
  • OTA updates over WiFi
  • Partial screen updates in grayscale mode.
  • Power saving sleep mode.
  • Display any PNG image from MQTT Command

Future Ideas

Setup

See hardware.md

Home Assistant Dashboard

Create a Home Assistant Dashboard you want to display. I recommend using the kiosk-mode, card-mod and layout-card plugins to customize and tune the dashboard for your display.

Setup sibbl's hass-lovelace-kindle-screensaver or my fork hass-screenshot to regularly screenshot the desired dashboards for the HomePlate.

More information in hass.md and dashboard.md

Inkplate

Install PlatformIO. Then copy src/config_example.h to src/config.h and enter your settings.

Build & run with:

pio run

If you have the Inkplate10v2 (without the additional MCP expander and touchpads), use the inkplate10v2 environment:

pio run -e inkplate10v2

The first flash/installation needs to be done over USB. Future updates can be done over USB or WiFi with:

pio run -e ota

To monitor serial output without re-flashing:

pio device monitor

Updating

git pull
pio upgrade
pio pkg update
pio run --target clean

Debugging

Touchpad Sensitivity

On some devices, the touchpads can be overly sensitive. This can cause lots of phantom touch events preventing the Homeplate from going into sleep and using up a lot of power.

Sometimes running pio run --target=clean can resolve this before you build & flash the firmware.

The touchpad sensitivity is set in hardware by resistors, but the touch sensors are calibrated on bootup when the Device first gets power. I have found that USB power can mess with this calibration. If you are using battery power, restarting the Homeplate (by using the power switch on the side of the PCB) without USB power attached is enough to fix the sensitivity.

Alternatively, the touchpads can be completely disabled by setting #define TOUCHPAD_ENABLE false in config.h.

Waveform

If you get the following error while booting your inkplate, run the Inkplate_Wavefrom_EEPROM_Programming example to update your Inkplate's waveform.

Waveform load failed! Upload new waveform in EEPROM. Using default waveform.

Older Inkplates don't appear to ship with an updated waveform. I found waveform 3 looks the best for mine.