Getting Started with Embedded Linux on RISC-V in QEMU

RISC-V Linux QEMU Buildroot

RISC-V is getting more and more popular, but if you want to run Linux on actual hardware it’s currently fairly expensive since you either need to rely on HiFive Unleashed SBC ($999), or expensive FPGAs. Another solution is running Linux RISC-V via QEMU emulator,  and I showed how to do this using BBL (Berkeley Boot Loader),  Linux 4.14, and busybear rootfs. If you check the comments section of that earlier post you could also try out Fedora RISC-V images in QEMU. Bootlin has now published a presentation showing how to run embedded Linux on RISC-V in QEMU with many of the same components as in the previous instructions, but with a more up-to-date Linux kernel (5.4), and using Buildroot to build everything from scratch including the toolchain, BBL, the Linux kernel, and a Busybox based root file system. They explain each step in detail in the 45-page presentation to allow you to customize your final firmware to your requirements for …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Fingerprint Identification with STM32 MCU and Serial TFT LCD Module

STM32 Fingerprint TFT LCD

CNXSoft: This is a guest post by Amy working for STONE Technology, a company specializing in industrial liquid crystal display modules This month, I planned to develop a fingerprint door lock project. When I selected the fingerprint identification module, the project was suspended. However, I thought that since the fingerprint identification module had been purchased, I would simply test it. This fingerprint module can be easily purchased online, connected over UART to an MCU  board. It supports fingerprint scanning, fingerprint entry, fingerprint comparison, and fingerprint deletion. Since the fingerprint module manufacturer provides a demo program for STM32F103 series microcontrollers, I bought a small development board based on STM32F103C8T6. The demo program of the fingerprint module uses LED lights to prompt the user to enter the fingerprint and compare the status (success or failure). But I want to use an LCD display, so I chose a 480×272 resolution serial LCD display. The specific model of this display is STONE STVC050WT-01, which …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

How to install Duet 2 Maestro Board on HE3D K280 3D Printer

Duet 2 Maestro Wires Description

Quite a while ago I reviewed the HE3D K280 delta 3D printer.  Up until now, I did no mods other than the ones that I completed during the initial build. I have been very happy with it with the exception of the noise caused by inexpensive drivers and the salmon skin due to the drivers as well. The K280 prints big and pretty accurate at modest speeds. Today I am outlining how I upgraded to a Duet 2 Maestro mainboard. With this upgrade, I am jumping from an 8-bit board with generic drivers to a 32-bit board with TMC2224 drivers. The upgrade was quite painless and straightforward but not without a few hiccups. The Maestro is Duet’s entry-level board for about $130. I attempted the Bigtreetech SKR 1.3 with TMC2130’s but the firmware wasn’t quite there yet. I opened an issue on Marlin’s GitHub page which explains the issue in detail here. I only had one major issue with the …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Sovol SV01 Upgrade with BigTreeTech SKR mini E3 Control Board

Sovol SV01 Upgrade: Bigtreetech SKR mini E3

Karl here with a quick upgrade guide. The one complaint I had in the review of the SV01 3D printer was it was loud. Today we are going to look at resolving part of the problem by replacing the Creality board with the BigTreeTech SKR mini E3 V1.2 control board sold on Amazon for around $37. Fan noise at a later date. This board is ideal because the SD card, USB, and screws line up for nearly a perfect replacement. I did not bother hooking up the filament runout sensor. I have never found them particularly useful and always ensure I start with enough filament and bypassed it for the review. The board comes with TMC2209 drivers which significantly reduce the stepper motor noise as well as stop any salmon skin. SKR Mini E3 Warning This board is a replacement for the board found on the Ender 3. Below is from the manual. I purchased a clamp meter to test …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Changing Ubuntu Apt Mirror from the Command Line, and the Lack of Arm64 Mirrors

apt mirror updater

When you install Ubuntu on a computer, you’d normally go through the installation ISO which guides you through a wizard where you select your location among other things, and that means you get connected to the mirror closest to your location allowing timely updates. But for those of us who flash Ubuntu images on Arm SBC’s, the mirror is normally fixed to the one set by the developer be it in China or Slovakia, or defaults to the US mirror. It still works, but it can be slower than necessary. In a computer, an easy way to change that from Ubuntu desktop to launch Software & Update program and change the download from field to a mirror in your country or neighboring country as shown below. But I’ve found myself mostly connecting to boards over SSH since it’s easier that way for reviews. One way to change the mirror would be to edit /etc/apt/sources.list manually, or just not bother, but …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

How I Adopted a Ubiquiti Unifi Security Gateway on my Existing Home Network

Ubiquity Security Gateway

Hey Karl here with a quick write up on how I adopted a Ubiquiti Unifi Security Gateway (USG) into my existing home network. I ran into a few issues so I wanted to share and hopefully help someone else. I have had 2 Unifi access points cover my home for several years now and I recently upgraded my internet to 100 Mbps. I was maxing out at about 95 Mbps with downloads on my existing 100 Mbps Linksys router and I knew I was leaving some bandwidth on the table. Spectrum is my internet provider and I have always got more than what I paid for. I placed an order on Amazon and 24 hours later it was delivered. I have a couple of things that made this challenging. First I run my network on a subnet with devices that have static IP address and I host my own Unifi controller and don’t use the cloud version. I also …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

PicoLibC is a Lightweight C library for Embedded Systems


Well-known developer,  Keith Packard has recently announced the launch of “picolibc” through his blog.  Picolibc is a C Library for embedded systems which  is suitable for small micro-controllers, and this standard C library API’s allows to run even in low memory (RAM) devices. This is an upgraded version of “newlib-nano” with few interesting changes which includes replacement of “stdio” lib with ATMEL-specific printf code adopted from avrlibc. As part of this library, Keith also launched picocrt,  which is responsible for initializing memory and invoking various constructors before calling its own C program, the main function. Features picolibc is a revised version of newlibc, without full-fledged stdio lib and uses lightweight stdio lib from avrlibc, which is more suitable to low memory embedded devices. Meson build-system eases the build process of picolibc source tree for various target platform and hardware. Updated the math test suite to use Glibc as a reference The library is BSD licensed, and non-BSD components were removed …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

How to Easily Calibrate Retraction in 3D Printers

Retraction Calibration 3D Printers

Hey, Karl here with a short article on retraction tuning. I really enjoy reviewing 3D printers and all things 3D printing with one exception…. when I have to calibrate retraction (aka retraction tuning). It takes so much time. What is Retraction? While 3D printing on a standard FDM printer, the filament is pushed with an extruder motor that has a gear attached. It pushes the filament, either directly into the hotend assembly or through a Bowden tube to the hotend. Molten plastic is then layered to produce a model. When it is printing nearly all prints require non-extruding movements. During the extruding moves pressure builds up and in order to stop stringing and blobbing during non-printing moves, a retraction happens. There are 2 main variables that affect this: the speed it moves and the distance. In the past, I would take a calibration model and adjust these 2 variables and test. This can take a long time. First, I had …

Support CNX Software – Donate via PayPal or become a Patron on Patreon