Google Pigweed Libraries Streamline Embedded Software Development on 32-bit Microcontrollers

Pigweed pw_watch

There are many components required for embedded software development, including cross-toolchain, a build system like buildroot or YoCto Project, and debugging tools like OpenOCD.  Once you’ve installed those, development involving several steps including building the code, flashing it to the board, and then running the program on the target. Google would like to make embedded software development to be as easy as web development as possible, similar to editing a file and running it in a web browser, so they’ve just released Pigweed open-source collection of embedded-targeted libraries/modules to streamline the development process for 32-bit microcontrollers such as STMicro STM32L452 or Nordic Semi nRF52832. Pigweed aims to help all steps of the process including tools/environment setup, program development, and code submission. Setup consists of running a bootstrap script that will automatically install tools such as Python 3.8, clang-format, and an Arm compiler in a virtual environment in order to leave the system’s default environment unmodified. There are several development “pw_” …

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

Getting Started with RT-Thread Nano RTOS on RISC-V Processors

GD32V Project Eclipse

CNXSoft: This is a guest post by RT-Thread explaining how to create your first program running on their real-time operating system using a GD32V  RISC-V MCU board as an example. This article describes how to “port” RT-Thread Nano to the RISC-V architecture, using the Eclipse IDE, GCC toolchain, and a basic project for the Gigadevice GD32V103 MCU. Foreword RT-Thread is an open-source embedded real-time operating system. RT-Thread has a standard version and a Nano version. The standard version consists of a kernel layer, components and service layer, and IoT framework layer, while the Nano version has a very small footprint and refined hard real-time kernel, better suited to resource-constrained microcontroller units (MCU). The main steps for porting Nano are as follows: Prepare a basic Eclipse project and get the RT-Thread Nano source code. Add the RT-Thread Nano source code to the base project and add the corresponding header path. Modify Nano, mainly for the interrupt, clock, memory, and application, to …

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

Google Summer of Code 2020 Mentoring Organizations Announced

Google Summer of Code 2020

Every year Google organizes the Summer of Code inviting students to work on open-source projects and even get paid for it. The company first select mentoring organizations, before accepting applications from students. Google has now announced the 200 organizations/projects that have been selected for Summer of Code 2020. Many projects are higher-level software development such as web development or desktop programs development but there are also projects closer to the hardware-side of things with operating systems and multimedia projects. Some interesting organization and/or  projects part of the audio / graphics / video / multimedia category include: apertus Association developing AXIOM open-source hardware camera FFmpeg multimedia framework to decode, encode, transcode, de/mux, stream, filter & play audio and video stream found in many projects OpenCV Open Source Computer Vision Library for computer vision and deep learning applications. XOrg foundation for X Window System and related projects such as Mesa, DRI, Wayland, etc… Some operating systems part of GSoC 2020 include: Amahi …

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

Getting Started with NVIDIA Jetson Nano Devkit: Inference using Images, RTSP Video Stream

Jetson Nano RTSP Stream Inference

Last month I received NVIDIA Jetson Nano developer kit together with 52Pi ICE Tower Cooling Fan, and the main goal was to compare the performance of the board with the stock heatsink or 52Pi heatsink + fan combo. But the stock heatsink does a very good job of cooling the board, and typical CPU stress tests do not make the processor throttle at all. So I had to stress the GPU as well, as it takes some efforts to set it up all, so I’ll report my experience configuring the board, and running AI test programs including running objects detection on an RTSP video stream. Setting up NVIDIA Jetson Nano Board Preparing the board is very much like you’d do with other SBC’s such as the Raspberry Pi, and NVIDIA has a nicely put getting started guide, so I won’t go into too many details here. To summarize: Download the latest firmware image ( at the time of the review) …

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

Sony Spresense 6-core MCU Development Board Now Supports Java

Sony Spresense board was introduced in spring 2018 with a 6-core Cortex-M4 microcontroller from the company, GPS & GLONASS, as well as audio support. The breadboard-compatible board could also be inserted into an Arduino UNO R3 compatible base board, and Sony offered support for both the Arduino IDE and a C-based NuttX-based SDK. You’ll find some more details and photos in our “review”. Sony has now partnered with MicroEJ to provide developers with Java support on Spresense board through MicroEJ Virtual Execution Environment (VEE). A Java simulator (VEE Virtual Device) allows you to develop software for Spresense independently of the hardware. Beside plenty of libraries, MicroEJ VEE features MEJ32 32-bit virtual core is compatible with various architectures including ARM Cortex-M, ARM Cortex-Ax, RX, V85, MIPS32, TriCore, and Tensilica. Java enables application portability which means that any GUI/IoT/Security or application code can run on various embedded systems supported by MicroEJ VEE. There are three main tools for developers: MicroEJ SDK to …

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

The Arduino Pro IDE Targets Professional Developers

Arduino Pro IDE

It is an underlying fact that Arduino changed or better still evolved the makers, electronics, DIY, open-source, or whatever ecosystem you can think of. It brought the power of creation to the average users irrespective of your current skill set or experiences. Engineers, Scientists, hobbyists, Professors, Makers, and others and have used the ecosystem Arduino has created to build and teach new things. Aside from the fantastic hardware that made all these possible, one of the significant contributors to this easy to use growing community is the IDE. The Arduino IDE is very simplified for newbies to use. Although the Arduino Classic IDE is a pretty decent IDE for building Arduino based projects, it doesn’t offer much for large scale projects or has the tools advance developers needs. I migrated to using Atmel Studio because of what the Arduino IDE was lacking, and others have considered using other IDEs like Visual Studio. The Arduino team announced the release of an …

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

py-videocore6 Raspberry Pi 4 GPGPU Python Library Leverages VideoCore 6 GPU

py-videocore6 Raspberry Pi 4 GPGPU

Raspberry Pi 4 SBC was released at the end of June with a new Broadcom BCM2711B SoC that also includes VideoCore 6 (VC6) GPU for 2D and 3D graphics, and that could also be used for general-purpose GPU computing (GPGPU). In the past we’ve seen companies such as Idein leveraged VideoCore 4 GPGPU capabilities in Raspberry Pi 3 / Zero to accelerate image recognition, and they released a python library (py-videocore) for that purpose. The problem is that the VideoCore 6 GPU found in RPi 4 is quite different than the VideoCore 4 GPU in earlier versions of the Raspberry Pi Foundation board as forum member phiren explains: I’ve been looking though the open source drivers and here are some of my observations: vc6 is clearly derived from vc4, but it is significantly different. vc6 is only a slight extension over vc5 The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and …

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