Heatshrink – An ultra-lightweight compression library for embedded systems

Heatshrink

When I wrote about Bangle.js 2 JavaScript smartwatch yesterday, I noticed they used “Heatshrink compression” in ESPruino firmware.  I can’t remember ever reading about Heatshrink before, and indeed there are no results while searching on CNX Software. Heatshrink is an open-source data compression library designed for resources-constrained embedded systems that works with as little as 50 bytes of RAM. That’s impressive, so let’s investigate. The library is written in C language and was released about 8 years ago on Github with the following key features: Low memory usage – As low as 50 bytes with specific parameters, and usually under 300 bytes are needed. Incremental, bounded CPU use – Input data is processed in tiny bites Static or dynamic memory allocation Released under an ISC license which allows you to use the library freely, even in commercial products. The internal workings of the library are explained as follows: Heatshrink is […]

Getting started with Bluetrum AB32VG1 RISC-V Bluetooth audio board using RT-Thread

Bluetrum AB32VG1 RISC-V Bluetooth audio board

Bluetrum AB32VG1 is a development board based on AB5301A RISC-V microcontroller designed for Bluetooth audio applications as well as general-purpose projects that works with RT-Thread real-time operating system. RT-Thread sent me a board for review, and I’ll write about my experience in a getting started guide for Bluetutm AB32VG1 trying out the RT-Thread Studio IDE with the LED blink and audio samples, as there’s no Bluetooth sample at this time… Bluetrum AV32VG1 Unboxing The board ships with a USB-C cable for power and programming. It offers Arduino UNO headers for expansion, a MicroSD card slot, a USB host port, a 3.5mm audio jack, an IR receiver, and a few buttons. There’s nothing to do on the bottom of the board apart from a QR Core for the WeChat app. There are also several configuration jumpers, but I could not find any documentation about these and did not mess with the […]

Your VGA monitor may be easier to repair than you think

Repair VGA monitor LG Flatron W1934S

When a VGA monitor does not start at all, a common reason is that one or two capacitors are damaged. All you need to do to repair it is to replace them, and you’re good to go. It’s quite easier than you think, and I’ll show you how. I was tasked with repairing a VGA monitor, namely an LG Flatron W1934S, that would not turn on anymore. All I could see what the blue power LED blinking regularly, about every two seconds. Since so far, I had a 100% success rate in failing to repair TVs, I was not confident, and I thought maybe the monitor is some special state making it not turn on, as it happened to me with another monitor a few years ago. But a web search revealed the problem was probably a power supply board issue with one of the capacitors damaged and, in theory, […]

How to use PinePhone as a mobile hotspot

PinePhone SIM Card MicroSD Card

I’ve recently started using my Android phone as a mobile hotspot with mixed results so instead, I’ve switched to using PinePhone as a hotspot with Manjaro Arm Linux with Plasma Mobile instead, and performance seems much more stable now. Early this year, I received Pinephone with PostMarketOS beta, and after playing with it a bit I did not do much with it so far. But in recent times, I’ve been staying in various places without WiFi, so I purchased a lost cost SIM card with a one-year cellular data plan to be able to work from any location using my Android 10 smartphone (Huawei Y9 Prime 2019) as a mobile hotspot. It works most of the time, but sometimes I have massive packet loss, and the only way to recover is to turn off and on the hotspot, and in some cases even reboot the phone. Playing with settings on […]

Coral Dev board news – NXP critical firmware update, manufacturing demo, and WebCoral in Chrome

WebCoral Coral USB Accelerator Chrome

Google Coral is a family of development boards, modules, M.2/mPCIe cards, and USB sticks with support with local AI, aka on-device or offline AI, based on Google Edge TPU. The company has just published some updates with one important firmware update, a manufacturing demo for worker safety & visual inspection, and the ability to use the Coral USB accelerator in Chrome. Coral firmware update prevents board’s excessive wear and tear If you own the original Coral development board or system-on-module based on NXP i.MX 8M processor, you may want to update your Mendel Linux installation with:

The update includes a patch from NXP with a critical fix to part of the SoC power configuration. Without this patch, the SoC might overstress and the lifetime of your board could be reduced. Note this only affects NXP-based boards, so other Coral products such as Coral Dev Mini powered by Mediatek MT8167S […]

Combining OSTree and SW Containers for reliable IoT Device updates

OSTree IoT devices

CNXSoft: This is a guest post by Drew Moseley, Technical Solutions Architect at Toradex, explaining how the company updates Linux IoT devices firmware with OSTree (aka libostree) open-source operating system build and deployment tool, as well as Docker software containers. Every day more and more connected devices are being brought to market and estimates for the total size of the Internet of Things (IoT) market are as high as $1.5 trillion by 2027. Gas pumps, medical devices, and point of sale systems are increasingly connected, making it virtually impossible to avoid interacting with these devices, even for complete Luddites. In the home, devices such as power meters, light switches, and security cameras are commonly internet-enabled allowing for smart home functionality. The level of complexity in the software for these devices increases with the functionality, and the number of devices with software defects in the field is growing. In many cases, […]

Allwinner D1 RISC-V processor SDK & Documentation

Allwinner D1 SDK

We published information about Allwinner D1 SBC and processor a few weeks ago. The news was pretty interesting as it’s the first RISC-V processor from the company, and one of the first affordable RISC-V SBC. But all we had at the time was hardware information from a leak, or rather from China-only Allwinner developer website. But now the company has added more information to its open-source development website with the release of documentation, now only in Chinese, as well as the Allwinner D1 Tina SDK. Eventually, there should be a better SDK via linux-sunxi community and some are already working on the Allwinner D1 SBC, but let’s try to get the SDK from Allwinner and build the code from source using the documentation. First, you’d need to register on Allwinner open-source website and click on signup. You’ll probably want to select Email registration. Now fill your username, select a country, […]

Arduino Core mbed 2.0 supports Raspberry Pi Pico & Arduino Nano RP2040 Connect

Raspberry Pi Pico Arduino mBed

Last week, we noted and tried the unofficial Raspberry Pi Pico Arduino Core that works on RP2040 boards, including Raspberry Pi Pico. Everything was super early to set up and the blink sample worked just fine. But Arduino recently tweeted about the Arduino Core mbed 2.0 release that adds for Raspberry Pi RP2040 boards including Arduino Nano RP2040 Connect and Raspberry Pi Pico boards. Arduino first used mbed for their Arduino Nano 33 BLE board as they didn’t have an official Arduino core for the Nordic nRF52840 Cortex-M4 microcontroller, and it appears they’ve done the same for Raspberry Pi RP2040 whose mbed implementation itself relies on the C SDK. Let’s have a try, how hard can it be? We can find the release and changelog on Github with some instructions on the main Github. First, we can clone the repo in the sketchbook directory (See Arduino IDE’s preferences) which in […]