What we've been reading in July (2022)
Here are the articles, videos, and tools that we’ve been excited about this July
We hope you enjoy these links, and we look forward to hearing what you’ve been reading in the comments or on the Interrupt Slack.
Articles & Learning
Virtual Panel: Debugging Embedded Devices in Production - Memfault
Phillip Johnston from Embedded Artistry, Alvaro Prieto from Sofar Ocean, Noah Pendleton from Memfault, and I will be chatting about how we currently and in the past have debugged our firmware while it’s in the hands of the customer. We’ve all worked on many hardware devices and have been doing this for years. - Tyler
Webinar: How to Build and Maintain IoT Management Systems for Scale - Memfault
Chris and I are summarizing a number of things hardware companies need to think about and address before they start trying to ship thousands of devices to end customers. Trust us, it can get hard quickly, and a company’s success in shipping might make fighting fires and debugging that much more difficult. Tune in! - Tyler
The Engineer’s Guide To Matter - by Ovyl by Michael Eatherly
So my colleague and I have been digging into Matter (formerly CHIP). We found there was a lot of marketing-level information about it, but not a lot of good technical breakdowns, so we wrote one, if anyone is interested - Nick Sinas from Ovyl.
An Everywhere GUI Stack in C++ - Stratify Labs
Stratify Labs took LVGL and a few other libraries such as LWIP, mbedtls, and SDL (for desktops) and hooked them all together to produce a one-stop shop for building GUI’s for embedded and testing those GUI’s on Linux, macOS, and Windows. Pretty awesome!
Multiband Embedded Antennas - DigiKey by Steven Keeping
Interesting information about the antenna used on the Nordic Thingy:91 dev board (note: DigiKey sells the antenna in question, but the article is quite good)
Zig is becoming more production-worthy - Zig monthly
Zig is looking to become one of the new languages that people will enjoy using on embedded. Follow along with the recent developments by subscribing to this newsletter.
Testing Zig for embedded development - The Missing Bit by Nicolas Goy
A simple post that shows how the author got started with an STM32L0 and the Zig programming language.
Sensor Watch - Green Boards Underway, Battery Experiments, and a Teardown Session Tomorrow! - Crowd Supply by Joey Castillo
Update from the fun Sensor Watch project, talking about battery life. I think this project is awesome on a couple of fronts- retrofitting a classic watch with modern internals, having to heavily optimize power consumption, and figuring out how to display the most information on a fixed-function LCD! Great project. - Noah
LinuxCard - Dmitry.GR by Dmitry Grinberg
A very interesting project describing what it takes to run Linux on an Atmel SAMD21 series Cortex-M chip - Noah
Firefox Profiler - Firefox
Firefox has an online profiler viewer, which accepts traces in a few formats, including from the Linux perf tool! Example run from a simple Fibonacci C program. - Noah
Unit Testing of QP/C (qpc) based active objects using CppUTest - Cove Mountain Software by Matthew Eshleman
A unit test library to help with testing QP with CppUTest - Tyler
IAR Build Tools for Arm now on Linux with normal license?
Did IAR actually open up their Linux compiler port to everyone with a normal license? “Makes IAR Build Tools independent of host platform and use the same license on both Linux and Windows.” Never thought I’d see the day. I would still recommend using open-source tools, but sometimes that isn’t possible.
Zigbee Insights Series - Naveen PS by Naveen PS
Some good discoveries and summaries by the author about Zigbee.
What’s the Most Portable Way to Include Binary Blobs in an Executable? by Laurence Tratt
We all want to do it often - include binary files in our C/C++ projects. This author goes through the various hoops they jumped through to do this.
Projects & Tools
tio/tio: A simple serial device I/O tool
Super cool, simpler terminal for interfacing with the serial console on embedded devices. Notable features include automatic connect & reconnect, support for non-standard baud rates, locally echo’ing characters (so your firmware doesn’t have to), and local line timestamps. Sweet! Although I still suggest everyone use miniterm, this is a new one I need to investigate!
A pretty nicely worked out mechanical keyboard project with a firmware written in Rust and debuggable via knurling-rs. The author points to his Reddit Post for the back-story. - Noah
An emulator which accepts STM32 firmware and SVD files to configure the machine. It’s primarily used by the author to emulate 3D printer software. - Tyler
A project to help developers get started using Zig with embedded devices.
grep.app - code search
Really quickly search through a lot of public GitHub repositories for snippets of code or existing implementations for reference purposes. Incredibly useful and magical tool! We’ve mentioned it before but worth a roundup mention. It’s so useful.
Power Profiler Kit II - Nordic Semiconductors
A nice and pretty inexpensive power analyzer from Nordic (very out of stock at the moment, unfortunately) - Noah
Announcements & News
Early Access to Blecon
Blecon enables devices to communicate with a web service via Bluetooth Low Energy. We are running an early access program for evaluating Blecon. If you’re building a device or service in any field and have a potential use case in mind for Blecon, you can apply to receive a sample device or modem and try it out - Donatien Garnier from Blecon
Nordic Semiconductor announces its first Wi-Fi chip, the dual-band Wi-Fi 6 nRF7002 - Nordic Semiconductor
It’s out! The nRF7 Nordic MCU with Wi-Fi. Let’s hope they can keep these things in stock. Here’s to hoping that it has an onboard ETB or MTB!
[RFC] Function Multi-Versioning on Arm - GCC GNU Mailing List by Daniel Kiss
ARM working on adding function multi-versioning to their toolchain - Noah