What we've been reading in May
Here are the articles, videos, and tools that we’ve been excited about this May.
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.
Events
-
Boston Firmware Meetup by Memfault
Team Memfault would be thrilled to host you on Tuesday, June 13th for food, beer, and to talk firmware! Come hang out with team members from the Boston office and make new connections with local embedded engineers. Get your free ticket here. -
San Diego Firmware Meetup by Memfault
On Tuesday, June 20th Team Memfault is hosting the first San Diego Firmware Meetup featuring technical talks, demos, and networking over food & drinks! Whether you’re a seasoned engineer or just starting out in the field, come connect with like-minded individuals. Register for your free ticket. -
Memfault Webinar - An Introduction to Memfault’s IoT Reliability Platform
Join this webinar on June 29th with Memfault’s VP of Customer Experience, Andie Cockerill, to see a demo of Memfault’s IoT reliability platform and learn:- How to streamline collaboration across teams: engineering, product, QA, and customer support
- Strategies for optimizing device performance and stability
- Best practices for organizing your fleet and workflows
Articles & Learning
-
CAN Injection: keyless car theft | Dr. Ken Tindell
An interesting look at some vulnerabilities in the CAN bus in Toyata’s newer vehicles. - Blake -
pts.blog: How to make smaller C and C++ binaries
Compiler best practices for how to build smaller binaries. - Tyler -
Size Optimizations - Pigweed
A post from Pigweed at Google on producing smaller binaries while using C++. I really like the callout of when to use LTO: “Disable LTO unless absolutely necessary” and “When enabling LTO, carefully and thoroughly test the resulting binary”. Couldn’t agree more. - Tyler -
What Happened To Execute-in-Place?
A brief history and overview of XIP, how the definition has changed, and how trends in silicon fabrication have affected it. - Eric -
Getting started with Thingy:53 and Zephyr - DEV Community
A short guide on how to use Zephyr to develop for the Nordic Thingy:53. - Mariya -
Hand Me Your SECRET, MCU! Microarchitectural Timing Attacks on Microcontrollers are Practical - Black Hat Asia 2023 | Briefings Schedule
Side channel attack against TrustZone in ARMv8-m. - Noah -
Makefile Tutorial By Example
A tutorial/guide/cookbook for Make in an easily-digestible format compared to searching through the documentation like I do every time I have to refresh my brain. -Eric -
Google Online Security Blog: $22k awarded to SBFT ‘23 fuzzing competition winners
Google runs a fuzzing competition, results for this year! - Noah -
Embedded Skills Tree — Embedded
A fun skills tree! Color in the boxes and level up your skills. -
wrench embedded interpreter
Interesting embedded scripting language. - François -
Memory Allocation
Great, in-depth article on memory allocation (malloc and free). - François -
What is the value of using a proprietary compiler instead of using GCC? : embedded
A fun Reddit discussion on proprietary compilers vs GCC. - Tyler -
Booting J-Link as CMSIS-DAP Debug Probe | MCU on Eclipse
Turns out you can use a jlink as a CMSIS-DAP compatible probe. - Noah -
‘FriendlyName’ Buffer Overflow Vulnerability in Wemo Smart Plug V2 | Sternum
A nice buffer overflow attack in the Belkin Wemo smart-plugs. - Tyler -
Hacking my “smart” toothbrush - The Twenty Percent
A toothbrush head that counts the amount of time it’s used, and then sends that via Bluetooth to a smartphone app. What a time to be alive. - Tyler -
On hardware state machines: How to write a simple MAC controller using the RP2040 PIOs
A cool guide on writing a MAC controller using RP2040 Programmable I/O.
Projects & Tools
-
ESP32 UWB Pro | Makerfabs
200m UWB dev board. - Noah -
svpv/qsort: Quicksort implemented as a C macro
Neat C macro implementation of quicksort. - Noah -
usb: device_next: add CDC ECM class implementation by jfischer-no · Pull Request #54448 · zephyrproject-rtos/zephyr
CDC ECM USB device added to zephyr :tada:! Enables bridging to a host network for example, very handy. - Noah -
toverainc/willow: Open source, local, and self-hosted Amazon Echo/Google Home competitive Voice Assistant alternative
A neat open-source project based upon an ESP32 as a more private and extensible version of Google Home or Amazon Alexa. - Tyler -
yhzhang0128/egos-2000: A minimal operating system (2K LOC) on QEMU and a RISC-V board
A small teaching OS written in C. - Noah -
A Winamp clone music player on an ESP32 with LCD display #Music #ESP32 « Adafruit Industries – Makers, hackers, artists, designers and engineers!
Winamp clone built with an esp32, fun project! - Noah