What we've been reading in January
Here are the articles, videos, and tools that we’ve been excited about this January.
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
Memfault Webinar on March 2nd - Utilizing Memfault to Debug Your Embedded Devices
Noah and Eric, both firmware engineers at Memfault, will be presenting how to use Memfault to debug embedded devices. If you don’t yet know the powers of Memfault or want to learn more about the features and use cases, check it out!
Memfault Webinar - How to Monitor, Debug, and Update Infineon Devices with Memfault’s IoT Reliability Platform
Abhishek Khinvesra and Clark Jarvis from Infineon and I gave a webinar demonstrating integrating Memfault with Infineon devices using their wonderful Modus Toolbox. The recording is linked.
From C++ to Rust - Stratify Labs
A post comparing Rust and C++ from an avid C++ fan learning Rust.
Bounded Flexible Arrays in C — kees
How the Linux kernel is trying to make fixed-size arrays less error-prone using the compiler!
How a CPU works: Bare metal C on my RISC-V toy CPU · Florian Noeding’s blog
Someone tries to emulate a RISC-V processor in a C program, and then run a C program on that “CPU”. Fun post, and the references at the bottom of the post are very useful.
You Need a Build System
Great write up from the Roku team on architecting a build system for their OS - Francois
No, the ESP32-S2 is not faster at floating point operations (and how do you actually speed up division on the ESP32?)
A short article about floating point on the ESP32-S2 processor - Tyler
Glitching the Olimex LPC-P1343
Playing around with power supply voltages to glitch a hardware FPGA. TIL about the hardware hacking training mentioned in the article! - Tyler
The most thoroughly commented embedded CMakeLists file
A thoroughly commented CMakeLists.txt file for an embedded project, from the Interrupt slack.
An Introduction to Modern CMake · Modern CMake
First of two really nice CMake best practices/guides. I learned a lot! - Noah
Effective Modern CMake - mbinna (Gist)
Second great CMake best practice guide - Noah
Embedded System Lecture Notes
List of embedded systems courses from a Carnegie Mellon University professor.
Welcome — Wenting’s Web Page
From HN, A very nice writeup on a technique for outputting grayscale on a 1-bit LCD - Noah
Getting started with WiFi on Raspberry Pi Pico W board - CNX Software
A nice and straightforward getting started guide for the Raspberry Pi Pico W - Noah
Embedded Systems Software [ESS], the modern approach - by Rodrigo Peixoto
Blog post describing using Zephyr + Rust - Eric
Interesting profiler that popped up on the Zephyr Discord - Eric
jakkra/ZSWatch: ZSWatch - the Open Source Zephyr™ based Smartwatch, including both HW and FW.
A very nice open source Zephyr smartwatch based on Nordic BLE MCUs - Noah
sekigon-gonnoc/Pico-PIO-USB: USB host/device implementation using PIO of raspberry pi pico (RP2040).
Very cool hack using the RP2040 PIO peripheral for additional USB device or host ports - Noah
Taking over a Dead IoT Company
Now, 5 years after the company collapsed, I acquired one of their signs to investigate why the company failed. Along the way I ended up taking over the company’s sign control domain and writing an exploit to get full control of any signs still in the field.
How to level up your soldering - Twitter
A wonderful thread on soldering tips - Noah
Quiet, ultrathin AirJet solid state active cooling chips could replace fans - CNX Software
Another very interesting, exotic MEMS device - Noah
trofi’s blog: New make –shuffle mode
Make 4.4 now has an option, –shuffle, which will shuffle build inputs to make sure that you’ve correctly set up your Makefiles to produce deterministic builds regardless of the order of inputs. - Tyler