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, these systems are designed, produced, and shipped without any consideration […]

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, enter a company name, password, and email. For the 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 my case was ~/Arduino:

We’ll also need to clone […]

Crowbits Master Kit Tutorial – Part 2: ESP32 intrusion scanner and visual programming

Crowbits Intrusion Scanner

I started Crowbits Master Kit review last month by checking out the content, user manual, and some of the possible projects for the ESP32 educational kit including a 2G phone and a portable game console. For the second part of the review, I’ll go through one of the lessons in detail, namely the intrusion scanner to show the whole process and how well (or not) it works. Let’s go to Lesson 5 directly, although I’d recommend going through the first lessons that provide details about the hardware and visual programming basics using Letscode program, which is basically a custom version of Scratch for Crowbits The user manual introduces the project, explains it is to detect intruders, and lists the learning goals as we’ll learn how to control the servo and play music on the Crowbits kit. Kit Assembly But first, we’ll have some assembly to do, in a similar way that’s we’d assemble a LEGO robotics kit. Each assembly step […]

Encoding and decoding AVIF pictures with open-source software & libraries

avif vs png

One of the new features of Android 12 is support for the AVIF file format that provides much smaller files at the same level of quality. Jake Archibald has done a great job comparing AVIF format to JPEG, WebP, and other still picture formats, and the results are really impressive. Besides Android 12, AVIF is already supported in Chrome browser, will be enabled by default in Firefox 86, but here’s we’ll look at some of the open-source programs and libraries that allow you to manipulate AVIF pictures. With libavif library, AOMedia has published a reference implementation in C, together with avifenc and avifdec tools, that rely on various codecs, but it appears rav1e is recommended for encoding AVIF picture, while dav1d is the best choice for AVIF decoding. libavif will not automatically build the codec, and they need to be enabled in CMakeLists.txt

as well as define the path for the selected codec. rav1e AVIF encoding library and cavif-rs […]

Maker Pi Pico STEM board mini review with CircuitPython

Maker Pi Pico First Boot

In my early list of third-party Raspberry Pi RP2040 boards, I shortly mentioned Cytron Maker Pi Pico baseboard for Raspberry Pi Pico that exposes all pins via female headers, includes LEDs for all GPIOs pin, six Grove connectors, three user push-buttons, one RGB LED, a piezo buzzer, an audio jack, a MicroSD card, and an ESP-01 socket to add WiFi connectivity. The beta version sold for $5, and at the time I missed that included Raspberry Pi Pico board as well, so basically you got a free baseboard. The Malaysian company has now sent me a review sample to play around with, so let’s have a closer at the hardware and code samples for the board. Maker Pi Pico Unboxing and Specifications I received the board in Cytron package together with a pinout diagram for Raspberry Pi Pico, and we can see the latter is already soldered to Maker Pi Pico. Maker Pi Pico specifications: Based on Raspberry Pi Pico […]

Getting Started with Raspberry Pi Pico using MicroPython and C

Raspberry Pi Pico Blink LED

Raspberry Pi Pico board was just launched last Thursday, but thanks to Cytron I received a sample a few hours after the announcement, and I’ve now had time to play with the board using MicroPython and C programming language. I went to the official documentation to get started, but I had to look around to achieve what I wanted to do, namely blinking some LEDs, so I’ll document my experience with my own getting started guide for Raspberry Pi Pico using a computer running Ubuntu 20.04 operating system. The instructions will be similar for Windows and Mac OS. Preparing the hardware In theory, we could just get started with the board alone, but since I got some headers with my board, I also took the opportunity to try out Pine64 Pinecil soldering iron powered by MINIX NEO P2 USB-C power supply. The soldering iron worked great for about one minute, and then I started to have problems with soldering… Looking […]

Reading Vehicle OBD-II data through CAN within a containerized application in Embedded Linux

telematics applications overview-GNSS CAN Cloud embedded Linux

CNXSoft: This is a guest about OBD-II and CAN support in embedded Linux by Andre Márcio de Lima Curvello, Sr. FAE and Technical Evangelist, Toradex A connected world makes it possible to track your online orders being shipped to your home through your smartphone in real-time, and getting information about your vehicle such as tire pressure, outside temperature, and even details like if a lamp is broken – has begun to be possible via smartphones in modern vehicle models. But behind the magic of knowing where the truck carrying your package is at all times and other details of the vehicle, there is a very complex world made of embedded devices ‘talking’ to each other so the information makes its way from the device to you. In this article, you will learn how to create an application to communicate with a vehicle through CAN via the OBD-II standard. We use modern software containerization with Docker and Torizon, the state-of-the-art Industrial Embedded […]