What we've been reading in August (2022)
Here are the articles, videos, and tools that we’ve been excited about this August
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
-
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 -
Virtual Panel: Debugging Embedded Devices in Production - Memfault
I had a blast talking to Phillip Johnston from Embedded Artistry and Alvaro Prieto from Sofar Ocean about how we debug hardware and firmware in production. Alvaro has some great stories! -
Debugging with GDB Introduction - Azeria Labs
A nice tutorial on debugging with GDB on ARM and gef. - Francois -
Building a Panel out of e-ink Electronic Shelf Labels by rbaron
A cool reverse engineering task to build something new out of discarded e-ink supermarket shelf labels - Francois. -
WCH CH569 RISC-V SoC Offers USB 3.0, Gigabit Ethernet, High-Speed SERDES & HSPI Interfaces - CNX Software by Jean-Luc Aufranc
Very interesting dev board with USB 3.0 and Gigabit Ethernet, based on a RISC-V SoC - Noah -
C99 doesn’t need function bodies, or ‘VLAs are Turing complete’ by lemon
An exercise stretching the C99 VLAs to the limits of their spec - Heiko. -
Phillip Johnston of Embedded Artistry on Engineering Approaches — Embedded.fm
Phillip Johnston joins Embedded.fm this time to talk about how engineer approaches change over time. -
Debugging bare-metal STM32 from the seventh level of hell - A Modicum of Fun by Josh Pieper
Interesting journal of some severe heisen-debbugging session using techniques many programmers will hardly ever use. In the end, a reminder that programming against hardware is, well… hard - Heiko. -
The case against a C alternative - Handmade Network by Christoffer Lernö
I like this piece as a discussion point – all too often I see the hype around recent languages that claim to be the successor of C by looking only a singular aspect (memory handling, no surprises, etc). The author also reminded me of the “The Killer Feature” effect that once made me buy a Ruby book 😱 – I have yet to see the equivalent for Rust et al. -
kingyoPiyo/Pico-10BASE-T: 10BASE-T from Raspberry Pi Pico
Cool hack and a nice README! - Noah -
Bringing Rust to Space - Setting up a Rust ecosystem for the VA108XX MCU family - robs blog by Robin Mueller
A developer was trying to get Rust working on satellite-grade Vorago MCU’s. It turns out there were no pre-existing libraries for such MCU’s (duh) - Tyler. -
Using the i.MX RT600 Audio EVK as a Digital Audio Engineering Test Bed
Write up about extending the RT685 EVK with a custom daughter card for use as an audio test system (one highlight: needing to bypass the level shifters for the application to work properly. level shifters are a classic point of failure!) - Noah -
Running GDB in the Browser by Uri Shaked
Neat write-up about how wokwi got gdb to run in a web browser. - Noah -
Protobuffers Are Wrong :: Reasonably Polymorphic by Sandy Maguires
Pretty harshly worded but interesting analysis of some disadvantages of Google’s Protobuf data format - Noah -
How Golioth uses Hardware-in-the-Loop (HIL) Testing: Part 2 - Golioth by Nick Miller
Title says it all. A good post written by our friends at Goliath. -
Don’t try this at home: overclocking RP2040 to 1GHz - Raspberry Pi by Liz Upton
Wow! Raised the voltage from 1.1V to 3V and kept the temperature at -40°C. -
Using GoogleTest and GoogleMock frameworks for embedded C - CodeProject by Michael Pan
Good reference on using the GoogleTest unit testing framework for embedded projects - Francois -
Regular Expression Matching Can Be Simple And Fast by Russ Cox
Fascinating article looking at the performance characteristics in regex implementations - Noah -
Developing and testing Bluetooth Low Energy products on nRF52840 in Renode and Zephyr - Zephyr Project by Michael Gielda
Title says it all, some of our favorite technologies come together in this article - Noah. -
Your Makefiles are wrong by Jacob Davis-Hansson
A good set of recommendations for writing Makefiles - Francois. -
C++ Weekly - Ep 337 - C23 Features That Affect C++ Programmers with Jason Turner
Video overview covering the new features of C23.
Projects & Tools
-
rokath/tcobs: COBS framing with implicit run-length-encoding, optimized for data containing statistically a bit more 0 and FF bytes in a row, as data often carry 16, 32 or 64 bit numbers with small values. by Thomas Höhenleitner
A chunking or framing protocol that extends upon the COBS protocol. This is from the same author as TRICE. -
Orbcode – Better Embedded
Really nice looking combination debug probe/trace device, supports JTAG+SWD+SWO+Trace, works with PyOCD, OpenOCD. Lots of interesting guides + examples on the blog: https://orbcode.org/blog/ . Definitely keeping an eye on this project! - Noah -
verifast/verifast: Research prototype tool for modular formal verification of C and Java programs
A slick formal verification framework for C and Java - Noah. -
INTI-CMNB/KiBot: KiCad automation utility
A very useful set of utilities for automation / CI for KiCad EDA projects. I especially appreciate the sane-defaults GitHub actions plugin they provide 🙌. - Noah -
tobermory/faultHandling-cortex-m: Generating, exporting and analyzing CPU fault conditions on Arm Cortex-M series microcontrollers.
An Interrupt Slack user posted their library to decode fault registers on Arm Cortex-M. They are building devices that go down thousands of meters into the Pacific Ocean and need to know how they are crashing. Fun! - Tyler.
Announcements & News
-
C23 is Finished: Here is What is on the Menu - The Pasture by JeanHeyd Meneide
Some seriously cool improvements coming in C23 - Francois. Heiko is most excited for the first iterations ofauto
andconstexpr
. -
Introducing multitasking to Arduino - Arduino Blog by Alessandro Ranellucci
Arduino is getting multitasking! The blog post itself has very little information, but you can find the primary discussion in a GitHub discussion. -
Nordic Semiconductor announces its first Wi-Fi chip, the dual-band Wi-Fi 6 nRF7002 - Nordic Semi
It’s a “companion IC” so you don’t write firmware for it, as it’s meant to be used directly alongside one of Nordic’s other devices to add Wi-Fi connectivity.