Snagboot is an open-source cross-vendor recovery tool for embedded targets


Bootlin has just released the Snagboot open-source recovery tool for embedded platforms designed to work with multiple vendors, and currently STMicro STM32MP1, Microchip SAMA5, NXP i.MX6/7/8, Texas Instruments AM335x and AM62x, and Allwinner “sunxi” processors are supported. Silicon vendors usually provide firmware flashing tools, some closed-source binaries, that only work with their hardware. So if you work on STM32MP1 you’d use STM32CubeProgrammer, while SAM-BA is the tool for Microchip processors, NXP i.MX SoC relies on UUU, and if you’ve ever worked on Allwinner processors you’re probably family with sunxi-fel. Bootlin aims to replace all those with the Snagboot recovery tool. The Python tool is comprised of two parts: snagrecover using vendor-specific ROM code mechanisms to initialize external RAM and run the bootloader (typically U-Boot) without modifying any non-volatile memories. snagflash communicates with the bootloader over USB to flash system images to non-volatile memories, using either DFU, USB Mass Storage, or […]

MicroPython 1.20 released with Raspberry Pi Pico W support, mip package manager, smaller footprint

MicroPython 1.20 Pico W

Damien George has recently announced the release of MicroPython 1.20 with support for the Raspberry Pi Pico W board., a new lightweight package manager called mip, a smaller footprint thanks to the use of compressed type structs, and many other changes. mip package manager The new mip package manager uses a custom protocol optimized for embedded systems to query and install packages, and intends to replace upip for installing packages from micropython-lib or any URL. Mip can be run directly on a device, as long as it has network connectivity, or via mpremote from a host computer. Damien explains all pure-Python drivers have been moved from the micropython repository to the micropython-lib repository as part of the change in order to make it easier to install the packages needed for a given project. MicroPython is getting smaller The MicroPython binary size has been reduced by many kilobytes for all ports […]

Embedded Open Source Summit 2023 schedule – Zephyr OS, Security, IoT, Embedded Linux, and more

Embedded Open Source Summit 2023

The Linux Foundation has just announced the full schedule for the Embedded Open Source Summit, which will take place on June 27-30, 2023 in Prague, Czech Republic, as well as virtually starting on June 26. Over 175 sessions, birds of a feather (BoF) tracks, and workshops related to embedded and open-source innovation will be presented at the event itself comprised of six micro conferences: Automotive Linux Summit Europe, Embedded IoT Summit, Embedded Linux Conference, LF Energy Embedded Summit, Safety-Critical Software Summit, and Zephyr Project Developer Summit. Even though I’m not going to attend personally, I’ve gone through the schedule to create my own little virtual schedule with some sessions relevant that should be interesting to me and hopefully to CNX Software readers. Monday, June 26 (Virtual sessions) The first day of the event will have a Yocto Dev training in the morning, and a bunch of virtual sessions that are […]

Pinecil V2 Bluetooth LE soldering iron gets a web interface

Web interface Pinecil V2 soldering iron

It’s now possible to make use of the Pinecil V2 soldering iron‘s Bluetooth LE connectivity through a web-based interface used to monitor and/or set the temperature and power of the RISC-V soldering iron. When the Pinecil V2 soldering iron was launched with a Bouffalo Lab BL706 RISC-V Bluetooth microcontroller last summer, we were told there were main potential cases to make use of the Bluetooth LE features: OTA firmware upgrade and remote telemetry and control. The latter is now being taken care of by Joric who has written a  web application to visualize telemetry data and even control the temperature of the soldering iron. To be able to use the Bluetooth features, you’ll first need to install the latest Pinecil V2 firmware with blisp flashing utility before going to to pair your soldering iron as explained in the wiki. Note the implementation relies on the Web Bluetooth API which […]

Matter compatible ESP-ZeroCode modules enable plug-and-play automation solutions

ESP-ZeroCode modules

Espressif Systems has just announced the Matter-compatible ESP-ZeroCode modules with Wi-Fi and/or Thread (802.15.4) wireless connectivity that are designed as plug-and-play solutions for LED lights, outlets, switches, dimmers, relays, fans, and other lighting and electrical devices. I was only recently introduced to no-code programming in a recent post by Ninephon Kongangkab explaining how to use SenseCraft firmware for no-code programming on Wio Terminal. Basically, there’s no need to know Arduino, MicroPython, or any programming language, as the user just has to press a few buttons to configure an IoT device to meet his/her requirements. With the ESP-ZeroCode modules, Espressif offers something similar using several of their ESP32 chips. The first ESP-ZeroCode modules will be offered with either ESP32-C3 (aka ESP8685) or ESP32-C2 (aka ESP8684) WiFi & BLE RISC-V SoCs, or ESP32-H2 802.15.4 & BLE RISC-V microcontroller, and ships with a Matter compatible firmware that enables “near-zero investment in development”. Not […]

Arduino Lab for MicroPython – An experimental cross-platform MicroPython IDE for Arduino boards

Arduino Lab for MicroPython

Arduino boards have traditionally been programmed with C-like language in the Arduino IDE, but with the Arduino Lab for MicroPython, Arduino added MicroPython to several official Arduino boards. In the words of the Arduino Team, “not an official product yet, an experimental tool”, but I would not be surprised if it becomes an official IDE eventually as the company collaborated with Damien George, the creator of MicroPython, to port the official the virtual machine to a number of Arduino products, and Murilo Polese to develop the Arduino Lab for MicroPython cross-platform IDE for MicroPython.   The IDE looks familiar… Oh yes, I see it now, it’s basically the Arduino IDE, but for MicroPython… 😉  and many of the same features including supporting connection with a board, code upload, file transfer, plus a Python-specific interactive REPL shell. Arduino Lab for MicroPython features so far: MicroPython’s Read Eval Print Loop (REPL) Enter […]

RP2040 firmware converts Raspberry Pi Pico into a an I2C to USB bridge

RP2040 firmware I2C USB bridge

Nicolai Electronics’ rp2040-ic2-interface open-source firmware for the Raspberry Pi Pico (or other Raspberry Pi RP2040 boards) converts the board into an I2C to USB bridge to connect any I2C sensor or module to a PC or other hardware without GPIOs. The firmware implements the USB protocol expected by the I2C-Tiny-USB kernel driver used by the original I2C-Tiny-USB project for Microchip ATMega 8-bit AVR microcontrollers. The RP2040 is however not a fork of the original project, but instead a complete re-implementation of the firmware. You’ll need to connect your I2C sensor, display, or another module to the SDA (GPIO 2) and SCL (GPIO 3) pins of the Raspberry Pi RP2040 microcontroller and flash the “pre-release” firmware to the board. You’ll find it together with the source code written in C language on GitHub. Note the project has a “proof of concept status” and more testing is needed to make sure that […]

Home Assistant launches SkyConnect USB stick with Zigbee, Thread, Matter support

Home Assistant SkyConnect

The Home Assistant SkyConnect is a USB stick with support for Zigbee, Matter, and Thread connectivity designed to work with the popular Home Assistant open-source home automation solution, and enables users to bring Home Assistant Yellow (previously known as Home Assistant Amber) functionality to any platform running Home Assistant. The USB dongle is based on a Silicon Labs EFR32MG21 Gecko Series 2 Arm Cortex-M33 wireless microcontroller with an 802.15.4 multi-protocol 2.4 GHz radio that can concurrently run both Zigbee 3.0 (EmberZNet/EZSP) and Thread/Matter (OpenThread/Spinel) stacks/protocols at the same time by using firmware in RCP RCP (Radio Co-Processor) mode. Home Assistant SkyConnect specifications: MCU – Silabs EFR32MG21 Arm Cortex-M33 microcontroller @ up to 80 MHz with DSP and FPU, up to 1024 KB flash, up to 96 KB RAM, 2.4 GHz radio Wireless Protocols – Zigbee, Matter, Thread TX Power – up to +20dBm RX sensitivity – -104dBm (250kbps) 2.4 GHz […]