I like interesting displays — and I also like ESPHome. So for a weekend project, I combined the two and got a Sharp Memory LCD (model LS032B7DD02) working with Home Assistant.
The result? A crisp, ultra-low-power display that shows real-time data from Home Assistant — all powered by an ESP32 and a custom ESPHome component.
My Internet provider offers static IP address only to business clients. Unfortunately, dynamic IPv4 address is also not an option, because it’s completely hidden behind provider’s NAT. Fortunately, there is an option to expose IPv6 host to the outside world:
As you see, I exposed my Home Assistant server and now I can use any dynamic DNS service with IPv6 support and register my domain name. The only problem is that my externally accessible IPv6 address changes over time. Most of dynamic DNS services have a dedicated API that allows you to update your IP address. In this post I’ll show you how to automate it in Home Assistant.
In one of the projects I’ve been working on we had quite a lot of functions in the Secure world and the OS running in the Nonsecure world. The OS was preemptive and could interrupt any secure function, so we had to reserve a secure stack for each task in addition to the non-secure stack. Moreover, some of the secure functions were using the HW secure engine, so there was a need to serialize secure function calls. The easiest way would be to create a wrapper for each secure function:
__attribute__((cmse_nonsecure_entry)) uint32_t SecureFunction(uint32_t param);
uint32_t NonSecureWrapper(uint32_t param)
{
uint32_t ret;
OS_LOCK_SECURE_MUTEX();
ret = SecureFunction(param);
OS_UNLOCK_SECURE_MUTEX();
return ret;
}
This definitely can work, but imagine you have 100+ functions with different number of arguments and you need a quick and universal solution.
You need it if:
If one of the above is what you need then this post is for you.
My open-source CNC step by step starts to work, so now it’s time to share some info about the stepper board. At the very beginning of the project I had to choose the board which will run grbl and after searching for a while I decided to use blackpill and grblHal. I’d say, this decision hit the spot. GrblHAL project is constantly evolving, main developer introduced new features, that are extremely useful. The only thing was missing: the breakout board for blackpill with isolated inputs.
I was looking for a relatively inexpensive module with BLE and capacitive touch and found this gem. It has ESP32-WROVER-B module, 3.5 inch SPI display with capacitive touch, USB type C connector and two expansion board connectiors.
It took me about two evenings to implement what I wanted, but I was a bit disappointed that this board was working only with USB Type A -> Type C cables. When I tried to connect Type C -> Type C cable, there was no power. As usual, the solution was very simple. It could be that you have a newer version, where this issue has already been fixed, but my version (3.2) still has this problem.