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.
People working in modern EDAs like KiCAD or Altium know that having a 3D view of the PCB is really a killer feature. What can be better than drinking a cup of coffee and having a final look at your nice board before sending it to the factory? And what can be more annoying than an empty space instead of some fancy components? When I started developing my custom breakout for black pill running grblHAL FW, I was missing a black pill 3D model. I know there are some on the Internet, but I’ll not give any links here because they are published in a mesh form, without any source code. So, I decided to create my own model.