2022-02-08 10:57:01 +01:00
Inkplate 6, 10 and 6 Plus
=========================
2021-01-16 01:20:08 +01:00
.. seo ::
:description: Instructions for setting up Inkplate E-Paper displays in ESPHome.
2021-05-12 09:36:04 +02:00
:image: inkplate6.jpg
2021-01-16 01:20:08 +01:00
2022-02-08 10:57:01 +01:00
All-in-one e-paper display `` Inkplate 6 `` , `` Inkplate 10 `` and `` Inkplate 6 Plus `` .
2021-12-22 00:56:56 +01:00
2022-02-08 10:57:01 +01:00
The Inkplate 6, 10 and 6 Plus are powerful, Wi-Fi enabled ESP32 based six-inch e-paper displays -
recycled from a Kindle e-reader. Its main feature is simplicity.
2021-12-22 00:56:56 +01:00
2021-01-16 01:20:08 +01:00
Learn more at `Inkplate's website <https://inkplate.io/> `__
2021-05-12 09:36:04 +02:00
.. figure :: images/inkplate6.jpg
2021-01-16 01:20:08 +01:00
:align: center
:width: 75.0%
Inkplate 6
.. code-block :: yaml
# Example minimal configuration entry
mcp23017:
- id: mcp23017_hub
address: 0x20
display:
2021-02-20 22:02:46 +01:00
- platform: inkplate6
2021-01-16 01:20:08 +01:00
id: inkplate_display
greyscale: false
partial_updating: false
update_interval: 60s
2021-12-22 00:56:56 +01:00
model: inkplate_6
2021-01-16 01:20:08 +01:00
ckv_pin: 32
sph_pin: 33
gmod_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 1
gpio0_enable_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 8
oe_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 0
spv_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 2
powerup_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 4
wakeup_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 3
vcom_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 5
.. warning ::
When using the Inkplate epaper module, the GPIO pin numbers above *cannot be changed* as they are
hardwired within the module/PCB.
.. warning ::
Inkplate module cannot perform partial update if 3 bit mode is on.
It just ignores the function call in that case.
2021-02-20 22:02:46 +01:00
Configuration variables:
***** ***** ***** ***** *** *
2021-01-16 01:20:08 +01:00
- **id** (*Optional* , :ref: `config-id` ): Manually specify the ID used for code generation.
2022-02-08 10:57:01 +01:00
- **model** (*Optional* , enum): Specify the model. Defaults to `` inkplate_6 `` .
- `` inkplate_6 ``
- `` inkplate_10 ``
- `` inkplate_6_plus ``
2023-07-30 23:10:35 +02:00
- `` inkplate_6_v2 ``
2022-02-08 10:57:01 +01:00
2021-07-28 23:56:11 +02:00
- **greyscale** (*Optional* , boolean): Makes the screen display 3 bit colors. Defaults to `` false ``
- **partial_updating** (*Optional* , boolean): Makes the screen update partially, which is faster, but leaves burnin. Defaults to `` false ``
2021-01-16 01:20:08 +01:00
- **full_update_every** (*Optional* , int): When partial updating is enabled, forces a full screen update after chosen number of updates. Defaults to `` 10 ``
- **lambda** (*Optional* , :ref: `lambda <config-lambda>` ): The lambda to use for rendering the content on the display.
See :ref: `display-engine` for more information.
- **update_interval** (*Optional* , :ref: `config-time` ): The interval to re-draw the screen. Defaults to `` 5s `` .
- **pages** (*Optional* , list): Show pages instead of a single lambda. See :ref: `display-pages` .
- **ckv_pin** (**Required** , :ref: `config-pin` ): The CKV pin for the Inkplate display.
- **gmod_pin** (**Required** , :ref: `config-pin` ): The GMOD pin for the Inkplate display.
- **gpio0_enable_pin** (**Required** , :ref: `config-pin` ): The GPIO0 Enable pin for the Inkplate display.
- **oe_pin** (**Required** , :ref: `config-pin` ): The OE pin for the Inkplate display.
- **powerup_pin** (**Required** , :ref: `config-pin` ): The Powerup pin for the Inkplate display.
- **sph_pin** (**Required** , :ref: `config-pin` ): The SPH pin for the Inkplate display.
- **spv_pin** (**Required** , :ref: `config-pin` ): The SPV pin for the Inkplate display.
- **vcom_pin** (**Required** , :ref: `config-pin` ): The VCOM pin for the Inkplate display.
- **cl_pin** (*Optional* , :ref: `config-pin` ): The CL pin for the Inkplate display.
Defaults to GPIO0.
- **le_pin** (*Optional* , :ref: `config-pin` ): The LE pin for the Inkplate display.
Defaults to GPIO2.
- **display_data_0_pin** (*Optional* , :ref: `config-pin` ): The Data 0 pin for the Inkplate display.
Defaults to GPIO4.
- **display_data_1_pin** (*Optional* , :ref: `config-pin` ): The Data 1 pin for the Inkplate display.
Defaults to GPIO5.
- **display_data_2_pin** (*Optional* , :ref: `config-pin` ): The Data 2 pin for the Inkplate display.
Defaults to GPIO18.
- **display_data_3_pin** (*Optional* , :ref: `config-pin` ): The Data 3 pin for the Inkplate display.
Defaults to GPIO19.
- **display_data_4_pin** (*Optional* , :ref: `config-pin` ): The Data 4 pin for the Inkplate display.
Defaults to GPIO23.
- **display_data_5_pin** (*Optional* , :ref: `config-pin` ): The Data 5 pin for the Inkplate display.
Defaults to GPIO25.
- **display_data_6_pin** (*Optional* , :ref: `config-pin` ): The Data 6 pin for the Inkplate display.
Defaults to GPIO26.
- **display_data_7_pin** (*Optional* , :ref: `config-pin` ): The Data 7 pin for the Inkplate display.
Defaults to GPIO27.
2022-02-08 10:57:01 +01:00
Complete Inkplate 6 example
***** ***** ***** ***** ***** **
2021-01-16 01:20:08 +01:00
The following is a complete example YAML configuration that does a few things beyond the usual
Wi-Fi, API, and OTA configuration.
.. code-block :: yaml
# Example configuration entry
esphome:
name: inkplate
2022-02-10 23:10:43 +01:00
esp32:
2021-01-16 01:20:08 +01:00
board: esp-wrover-kit
logger:
wifi:
2022-02-10 23:10:43 +01:00
ssid: !secret wifi_ssid
password: !secret wifi_password
ap: {}
2021-01-16 01:20:08 +01:00
captive_portal:
ota:
api:
switch:
- platform: restart
name: "Inkplate Reboot"
id: reboot
- platform: gpio
id: battery_read_mosfet
pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 9
inverted: true
- platform: template
name: "Inkplate Greyscale mode"
lambda: return id(inkplate_display).get_greyscale();
turn_on_action:
- lambda: id(inkplate_display).set_greyscale(true);
turn_off_action:
- lambda: id(inkplate_display).set_greyscale(false);
- platform: template
name: "Inkplate Partial Updating"
lambda: return id(inkplate_display).get_partial_updating();
turn_on_action:
- lambda: id(inkplate_display).set_partial_updating(true);
turn_off_action:
- lambda: id(inkplate_display).set_partial_updating(false);
sensor:
- platform: adc
id: battery_voltage
update_interval: never
attenuation: 11db
pin: 35
- platform: template
name: "Inkplate Battery Voltage"
lambda: |-
id(battery_read_mosfet).turn_on();
delay(1);
float adc = id(battery_voltage).sample();
id(battery_read_mosfet).turn_off();
return adc;
filters:
- multiply: 2
i2c:
mcp23017:
- id: mcp23017_hub
address: 0x20
binary_sensor:
- platform: status
name: "Inkplate Status"
id: system_status
- platform: gpio
name: "Inkplate Touch Pad 1"
pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 10
- platform: gpio
name: "Inkplate Touch Pad 2"
pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 11
- platform: gpio
name: "Inkplate Touch Pad 3"
pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 12
time:
- platform: sntp
id: esptime
font:
- file: "Helvetica.ttf"
id: helvetica_96
size: 96
- file: "Helvetica.ttf"
id: helvetica_48
size: 48
display:
2021-02-20 22:02:46 +01:00
- platform: inkplate6
2021-01-16 01:20:08 +01:00
id: inkplate_display
greyscale: false
partial_updating: false
update_interval: 60s
ckv_pin: 32
sph_pin: 33
gmod_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 1
gpio0_enable_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 8
oe_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 0
spv_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 2
powerup_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 4
wakeup_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 3
vcom_pin:
2021-05-12 09:36:04 +02:00
mcp23xxx: mcp23017_hub
2021-01-16 01:20:08 +01:00
number: 5
lambda: |-
it.fill(COLOR_ON);
it.print(100, 100, id(helvetica_48), COLOR_OFF, TextAlign::TOP_LEFT, "ESPHome");
it.strftime(400, 300, id(helvetica_48), COLOR_OFF, TextAlign::CENTER, "%Y-%m-%d", id(esptime).now());
it.strftime(400, 400, id(helvetica_96), COLOR_OFF, TextAlign::CENTER, "%H:%M", id(esptime).now());
if (id(system_status).state) {
it.print(700, 100, id(helvetica_48), COLOR_OFF, TextAlign::TOP_RIGHT, "Online");
} else {
it.print(700, 100, id(helvetica_48), COLOR_OFF, TextAlign::TOP_RIGHT, "Offline");
}
2022-02-08 10:57:01 +01:00
Inkplate 6 Plus Touchscreen
***** ***** ***** ***** ***** **
2022-07-06 21:53:23 +02:00
The Inkplate 6 Plus has a built in touchscreen supported by ESPHome. Note you need to enable pin 12 on the mcp23017 to enable the touchscreen
Below is a config example with touchscreen power swtich:
2022-02-08 10:57:01 +01:00
.. code-block :: yaml
2022-07-06 21:53:23 +02:00
switch:
- platform: gpio
name: 'Inkplate Touchscreen Enabled'
restore_mode: ALWAYS_ON
pin:
mcp23xxx: mcp23017_hub
number: 12
inverted: true
2022-02-08 10:57:01 +01:00
touchscreen:
- platform: ektf2232
interrupt_pin: GPIO36
rts_pin:
mcp23xxx: mcp23017_hub
number: 10
on_touch:
- logger.log:
2022-07-06 21:53:23 +02:00
format: "touch x=%d, y=%d"
args: ['touch.x', 'touch.y']
2022-02-08 10:57:01 +01:00
2022-07-06 21:53:23 +02:00
Inkplate 6 Plus Backlight
***** ***** ***** ***** ***** **
2022-02-08 10:57:01 +01:00
2022-07-06 21:53:23 +02:00
The Inkplate 6 Plus has a built in backlight supported by ESPHome.
Below is a config example:
.. code-block :: yaml
power_supply:
- id: backlight_power
keep_on_time: 0.2s
enable_time: 0s
pin:
mcp23xxx: mcp23017_hub
number: 11
2022-02-08 10:57:01 +01:00
2022-07-06 21:53:23 +02:00
output:
- platform: mcp47a1
id: backlight_brightness_output
power_supply: backlight_power
light:
- platform: monochromatic
output: backlight_brightness_output
id: backlight
default_transition_length: 0.2s
name: '${friendly_name} Backlight'
2023-07-30 23:10:35 +02:00
Inkplate 6 v2
***** ***** ***** ***** ***** **
The Inkplate 6 v2 has a slightly different configuration. The main difference is that it is using pca6416a instead of the mcp23017.
Below is a config example:
.. code-block :: yaml
# Example minimal configuration entry
pca6416a:
- id: pca6416a_hub
address: 0x20
display:
- platform: inkplate6
id: inkplate_display
greyscale: true
partial_updating: false
update_interval: never
model: inkplate_6_v2
ckv_pin: 32
sph_pin: 33
gmod_pin:
pca6416a: pca6416a_hub
number: 1
gpio0_enable_pin:
pca6416a: pca6416a_hub
number: 8
oe_pin:
pca6416a: pca6416a_hub
number: 0
spv_pin:
pca6416a: pca6416a_hub
number: 2
powerup_pin:
pca6416a: pca6416a_hub
number: 4
wakeup_pin:
pca6416a: pca6416a_hub
number: 3
vcom_pin:
pca6416a: pca6416a_hub
number: 5
2022-07-06 21:53:23 +02:00
2021-01-16 01:20:08 +01:00
See Also
--------
- :doc: `index`
2022-02-08 10:57:01 +01:00
- :doc: `/components/touchscreen/ektf2232`
2021-01-16 01:20:08 +01:00
- `Arduino Inkplate 6 library <https://github.com/e-radionicacom/Inkplate-6-Arduino-library> `__ by `E-radionica.com <https://e-radionica.com/> `__
- :ghedit: `Edit`