Inkplate 4 TEMPERA ESPHome support and BME688 sensor access

Customer:

I have multiple Inkplate 4 TEMPERA units with glass panels. How can I use the TEMPERA with ESPHome? The crowdsupply page mentions ESPHome support, and I have other Inkplates like the 10 which are directly supported, but Inkplate 4/TEMPERA doesn’t seem to be listed as a display in ESPHome. I’d like to deploy them using ESPHome to display Home Assistant data initially, then explore more advanced features once they’re working.

I’ve also experimented with the TEMPERA’s BME688 sensor. This sensor works differently from the BME680 regarding air quality detection. Can this sensor be accessed directly? Specifically, could I use the Bosch API to update the sensor’s AI capabilities for different detection scenarios? More generally, can I access all the components on my various Inkplates directly, or only through the Inkplate API?

Originally submitted via email support on 3 May 2025. Migrated to the forum for community visibility.

Soldered Support:

An ESPHome implementation for Inkplate 4 TEMPERA is available here: GitHub - 00nippi/espstuff · GitHub

Official ESPHome support is being worked on but will take additional time.

The sensor on Inkplate 4 TEMPERA is the BME688, and it’s implemented in the Arduino library with an example here: Inkplate-Arduino-library/examples/Inkplate4TEMPERA/Advanced/Sensors/Inkplate4TEMPERA_BME688_Read/Inkplate4TEMPERA_BME688_Read.ino at dev · SolderedElectronics/Inkplate-Arduino-library · GitHub

The Arduino library is the best way to use Inkplate, offering the most features and fastest performance. Getting started with the Arduino library: Inkplate Get Started Page — Inkplate docs documentation

Customer:

I’ll check out the ESPHome implementation when I’m back home.

Regarding the BME688: I displayed the gas resistance values previously, but they didn’t provide useful data—the values stayed constant. This might be from the same code you provided.

The BME688 also has the ability to be configured and trained with Bosch AI Studio and the BME dev kit. I’m unsure if and how I could use this when the sensor is connected to the Inkplate and queried using the Inkplate API.

Is it possible to use some components on an Inkplate board directly while using the API for other parts, like the display? For example, could I connect to the various sensors on a TEMPERA using other libraries and still drive the display and touchscreen with the Inkplate API?

I also have a vintage Inkplate 10 (the blue one), which has less integrated hardware but documentation mentions I2C, SPI, and other support—so it should be possible to connect external components. What about newer Inkplates where sensors are already on the board and connected?

Soldered Support:

The constant gas resistance value you observed is just the basic reading. To unlock the full potential of this sensor, including specific gas detection and air quality analysis, you need to implement the Bosch BSEC library in your project. You can use the official Bosch library GitHub - boschsensortec/Bosch-BME68x-Library: Arduino library for the BME680 and BME688 sensors from Bosch Sensortec · GitHub with Inkplate, since Inkplate code runs on ESP32 and interfaces with all other peripherals.

You can include both the Inkplate API and the BME688 library together. For reference, see the Bosch example: Bosch-BME68x-Library/examples/forced_mode/forced_mode.ino at master · boschsensortec/Bosch-BME68x-Library · GitHub

To test the sensor library initially, you can use it standalone without the Inkplate library on the Inkplate device. The e-paper will remain static, but you can check the sensor’s working principles via the Serial monitor as shown in the example. This way you can test components individually before combining them, which is usually the complex part.

You can absolutely use the Inkplate API alongside other peripherals. You can also use the wakePeripheral and sleepPeripheral functions to power on devices physically before using external libraries: Inkplate-Arduino-library/src/boards/Inkplate4TEMPERA.cpp at 2dd263f2f9548aadac8638413a143beddf068a64 · SolderedElectronics/Inkplate-Arduino-library · GitHub

For vintage Inkplate 10 versus newer models like TEMPERA: the principle remains the same across all models. On newer devices like TEMPERA, sensors are pre-connected to specific ESP32 pins, while on older models you have more free pins available. Be careful not to create pin conflicts with the e-paper display controller when adding external components.