tutorials News - CNX Software - Embedded Systems News

My experience upgrading the BIOS of a Windows 11 mini PC (with BitLocker) in 2026

Khadas Mind 2 BIOS update

I don’t always update the BIOS of my system, but when I do, I always make sure to waste several hours doing so. Last time I did that was in 2020, but this happened again when I updated the BIOS for the Khadas Mind 2 to test it with the Mind xPlay display and Mind Graphics 2 dock. Khadas provides the BIOS with instructions to update the Mind 2 mini PC, and it’s supposed to take five minutes, but I ended up wasting two about hours… The first step is to download and extract a zip file (mind-2-bios-v1.07-260122.zip), then start the Flash_BIOS upgrade program, and finally wait for the upgrade to complete. That part went great. No problem, but when the system rebooted, I was greeted by a BitLocker window asking me to enter a recovery key to carry on with the boot process. There’s no way to avoid this, […]

Idle CPU power management: cpuidle

Linux Kernel cpuidle subsystem architecture

Twenty years ago, it was easy for an operating system kernel to go idle: when there were no tasks to run, “the idle loop” would be scheduled. Early idle loops were basically empty infinite loops that did nothing while waiting for the next interrupt to happen. This saved power simply by avoiding running instructions that needed power-hungry components such as the cache or FPU! Over time, changing technology has allowed multiple additional hardware mechanisms to reduce power to be introduced. With these new options available today, the idle loop is responsible for choosing and deploying the “best” way to go idle. As a brief reminder, entering and returning from an idle state has a cost, and that cost can be measured both in time and in energy. Typically, the shallowest idle state is “nearly free” to enter/exit, whilst deeper idle states have increasingly higher costs to enter and exit. If […]

Reminder: enable ZRAM on your Linux system to optimize RAM usage (and potentially save money)

ZRAM zstd compression ram sticks

With the price of RAM getting out of control, it might be a good idea to remind Linux users to enable ZRAM so they can get better performance without upgrading memory, or save money on their next single board computer by selecting a board with the right amount of memory.

I had already written about the subject when I enabled ZRAM on a ODROID-XU4Q in 2018 using zram-config, and did the same on my Ubuntu laptop at the time. In recent days, I found Firefox crashing often due to running out of memory on my system with 16GB of RAM, and the Linux 7.0 release reminded me about ZRAM, since there were some related changes. So I decided to check the current swap configuration on my Ubuntu 24.04 laptop:

Getting started with SONOFF Dongle Plus MG24 Zigbee adapter using Home Assistant

SONOFF Dongle Plus MG24 review AirGuard TH MINI-ZB2GS-L

We have received a sample of the SONOFF Dongle Plus MG24 (also known as Dongle-PMG24) Zigbee/Thread USB dongle for review. As its name implies, it’s based on a Silicon Labs EFR32MG24 wireless chip, and the company claims up to 200 meters range thanks to an included 3dBi antenna. It is compatible with Windows, Linux, macOS, Raspberry Pi OS, and other operating systems that support USB serial drivers. The dongle works seamlessly with popular open-source platforms, such as Home Assistant, Zigbee2MQTT, ioBroker, and OpenHAB. In this review, we will go through an unboxing of the SONOFF Dongle Plus MG24, before connecting it to a Raspberry Pi 4 running Home Assistant. We will use two Zigbee devices from SONOFF: the  AirGuard TH (SNZB-02DR2) temperature and humidity sensor with an LCD, and the MINI DUO-L (MINI-ZB2GS-L) dual-channel/2-gang Zigbee 3.0 switch to demonstrate how to use the dongle with Home Assistant. SONOFF Dongle Plus […]

FlashESP is an all-in-one web-based tool for ESP32/ESP8266 Arduino development and firmware flashing

FlashESP Web-based ESP32 programming tool

FlashESP is a web-based tool allowing the development of Arduino sketches and firmware flashing for ESP32 and ESP8266 hardware platforms. I initially thought it was similar to ESP Web Tools for flashing firmware from the web and used by projects like ESPHome, but it goes further than that, and it looks like an Arduino Cloud Editor for ESP32/ESP8266 instead, since users can select boards, write code, load libraries, and flash the resulting firmware from a compatible web browser without installing anything else on their computer. FlashESP key features: Cloud Compilation – Real-time compilation with live logs. Auto Configuration – Intelligent board and library detection. One-Click Flash – Web Serial integration. Connect your ESP via USB and flash directly from a compatible browser (WebSerial support needed) without any drivers or downloads. Public Explorer – Discover community projects. Flexible Visibility – Create private projects for your team, public for the world, or […]

Mongoose Wizard builds professional embedded device dashboards for microcontrollers like ESP32, STM32, NXP, RPi and others (Sponsored)

Mongoose Wizard

Cesanta Software introduced Mongoose Wizard – a no-code visual tool that enables embedded developers to effortlessly build a professionally looking device dashboard (WebUI) and REST API without writing any frontend code, transforming the microcontroller (MCU) board into a browser-accessible web dashboard for control, monitoring, and updates. Whether for prototyping or building production devices, integrating a web dashboard into firmware gives end users intuitive and powerful control. Designed for use in Industrial, Automotive, Smart home, or any Internet of Things product (machinery, devices, appliances, etc.) that benefits from a browser-based interface. Mongoose Wizard utilises the Mongoose Library, an open source network library for C/C++. Mongoose Library provides event-driven non-blocking APIs for TCP, UDP, HTTP, WebSocket, MQTT, and other protocols. It is designed for connecting devices and bringing them online. On the market since 2004, used by a vast number of open-source and commercial products – it even runs on the International […]

Easily create an ESP32-C5 dual-band Wi-Fi analyzer

ESP32-C5 DevKit wiring to Display

Chen Liang (陳亮) has found an interesting use case for the Espressif ESP32-C5: a dual-band Wi-Fi analyzer showing the signal strength of 2.4 GHz and 5 GHz WiFi access points in your area. It works like one of the Wi-Fi analyzer apps on your phone, except it relies on an ESP32-C5 board and a display support for the Arduino_GFX libraries, for example, based on the ILI9341 driver, as it’s easier for beginners since the code does not need to be changed. Here’s what it looks like. You can follow the instructions provided by Chen to reproduce the setup. It’s fairly straightforward. He specifically used an ESP32-C5-DevkitC-1 board (or one of the clones) along with an ILI9341 display (not sure about the exact model, but any should do) and wired them together using a breadboard as shown in the photo below. You’ll then need to fire up the Arduino IDE, install Arduino […]

Using the Raspberry Pi 500+ keyboard PC as a regular Bluetooth keyboard

Using Raspberry Pi 500+ as a Bluetooth Keyboard

While the Raspberry Pi 500+ is a fully functional Linux keyboard PC, it’s also possible to use it as a regular mechanical Bluetooth keyboard. This week, I had a problem with my regular Logitech wireless keyboard and mouse combo, so I sent it back to the shop for repair since it was still under warranty. Then somebody forgot the RF dongle for her own combo at home, so long story short, we ended up with one third spare keyboard for two people. Not ideal. But luckily, we just completed the review of the Raspberry Pi 500+ keyboard PC, so we had a spare mechanical keyboard, and the btferret project allowed us to use it as a Bluetooth keyboard, which I’m using right now to write this article. We could have used the Pi 500+ as a Linux machine directly, but we would have had to reinstall all the software we […]