> ## Content Index
> Fetch the complete content index at: https://broddin.be/llms.txt
> Use this file to discover other available public pages before exploring further.

# Fancy in-wall panels using NSPanel, ESPHome and HomeAssistant
- URL: https://broddin.be/fancy-in-wall-panels-using-nspanel-esphome-and-homeassistant/
- Published: 2023-07-04T10:22:36.000Z
- Updated: 2026-07-20T12:35:35.000Z
- Author: Tim Broddin
- Tags: diy, esp32, esphome, home assistant, smart home, #wordpress, #Import 2024-02-03 13:15, #broddin, #Migrated-1784487752640, #wp, #wp-post, #Import 2026-07-19 19:02

/

In the past, I’ve written about [turning your house into a smart home](https://broddin.be/2021/02/01/home-assistant-turning-your-home-into-a-smart-home/) using Home Assistant. Since we are currently in the midst of a home renovation, I’ve been doing lots of research on how to make it even smarter.

One of the products I came across while digging into this is the [NSPanel](https://sonoff.tech/product/central-control-panel/nspanel/?ref=broddin.be), a relatively cheap (€50) panel, consisting of a 3.5” 480\*320px LCD screen, two buttons (and relays), a temperature sensor and a buzzer.

![](https://broddinblog.on-forge.com/storage/666/nspanel.jpg)

Under the hood, it sports an ESP32 microcontroller and a custom [Nextion](https://nextion.tech/?ref=broddin.be) touchscreen. These Nextion screens are quite fascinating, they contain some storage which you flash with a custom firmware, containing all the UI and interactions needed. By doing so, low powered devices like an ESP32 can display snappy high-resolution user interfaces without breaking a sweat.

By default, it runs its own firmware, which you can control using the eWelink app, which is a no-go for me. I want deep Home Assistant integration, and I don’t want to be dependent on a closed ecosystem that might not be there anymore in a couple of years.

## Alternative firmwares

Fortunately, there are cool people around who think the same. There’s plenty of alternative firmware around:

- [NSPanel Lovelace UI](https://docs.nspanel.pky.eu/?ref=broddin.be): based on Tasmota, allows you to configure the UI with a configuration file.
- [NSPanelManager](https://www.kickstarter.com/projects/nspanelmanager/nspanel-manager-open-source-wall-switch-software?ref=broddin.be): a promising looking project, which is still in early development. Once it’s released it will offer easy configuration of multiple panels through a UI.
- [NSPanel\_HA\_Blueprint](https://github.com/Blackymas/NSPanel%5FHA%5FBlueprint?ref=broddin.be): ESPHome based, with easy configuration through a HomeAssistant Blueprint.

I settled on the last one, because it’s the easiest to configure at this moment, and it looks pretty and well maintained.

### Installation

Since the NSPanel doesn’t have a USB-port, flashing the custom firmware requires some steps. You’ll need a USB-to-serial converter, some wires, and some bravery to do this. I followed this easy to follow guide by Mark Watt, and won’t be writing down every step.

There are however two things I discovered, that might help people ending up here through Google:

### Getting the NSPanel into boot mode

I couldn’t get the ESP32 into boot mode by connecting the `IO0` to the pin indicated in the video. It would somehow short and my USB-to-serial adapter would disappear from my device tree and get really hot, really fast ???? Connecting it to the other ground pin (the one above) worked fine, though.

![](https://broddinblog.on-forge.com/storage/667/cleanshot-2023-07-04-at-102254-at-2x-1.png)

### Booting the NSPanel after flashing

After flashing, (and disconnecting the cable from `IO0` to ground) the display didn’t turn on, and when inspecting the serial port in Arduino IDE I could see that it tried booting, but failed with messages such as `rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)`. I really thought I fried the board while flashing.

Turns out, you can flash the NSPanel with 3.3V, but you cannot power it that way. I took a 220V power cable, connected it to live and neutral, put it in the wall, and boom … the device powered on.

![](https://broddinblog.on-forge.com/storage/668/img-5591.jpg)

## Configuration & usage

After you’ve flashed the NSPanel, it will be discovered by Home Assistant as a ESPHome device. After this device is added, you’ll have to click a button to update the touch screen’s firmware. This part is a bit finicky and there is a [whole Wiki page](https://github.com/Blackymas/NSPanel%5FHA%5FBlueprint/wiki/%28EN%29-Common-Issues-TFT-Upload?ref=broddin.be) describing how to troubleshoot this. Hosting `nspanel_eu.tft` locally and trying a couple of times did the trick for me.

Configuration is done using a Blueprint, which is very convenient. It might not be the most user-friendly UI (it’s pages and pages of options), but it works.

![](https://broddinblog.on-forge.com/storage/669/cleanshot-2023-07-04-at-105730-at-2x.png)

We’re living in a rental house while waiting for the renovations in our home to finish, so I don’t have many entities I can add to this config yet. But once we’re moved, I intend to use the panels to control our lights and shades.

\---

SONOFF also has a “Pro” version of this panel, the [NSPanel Pro](https://sonoff.tech/product/central-control-panel/nspanel-pro/?ref=broddin.be). It doesn’t have an ESP32 inside, but instead runs Android on an ARM chip. It’s also hackable, and can display the HomeAssistant UI through a kiosk browser. The biggest downside is that it doesn’t have any physical buttons. I’m currently thinking about a place to integrate this into our home ????