HomePlate
Home Assistant E-Ink Dashboard on the Inkplate 10
Activities Screenshots
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
- Incorporate WiFi Manager for settings
Setup
Hardware
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.
hass.md and dashboard.md
More information inInkplate
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.