What we've been reading in February (2020)
Here are the articles, videos, and tools we’ve been excited about this past month.
We hope you enjoy these links, and we look forward to hearing what you’ve been reading in the comments.
Articles & Learning
- Reverse Engineering the Tesla Firmware Update Process by Pen Test Partners
- Opening up the Baseboard Management Controller by Jessie Frazelle - Covers the state of the open source ecosystem for Baseboard Management Controllers.
- Permanent storage using EEPROM by Luc Volders - Introduction to using the EEPROM on an Arduino device to retain state between reboots.
- Moving Embedded Projects to CMake by Nicholas Pahl - Introduction to structuring and building embedded projects using CMake.
- RISC-V Software Ecosystem Overview - Github README that details the state of the RISC-V software ecosystem.
- Compiler Explorer - Neat tool which takes in source and prints assembly for an extensive list of compilers. Great for when trying to optimize code size and squeeze a few extra bytes.
- The Importance of Deep Work & The 30-Hour Method for Learning a New Skill by Azeria - An article which starts by detailing how to learn a new skill, and uses ARM Exploitation as an example “new skill” to learn.
- IoT talks from FOSDEM’20 - Collection of interesting talks, some related to embedded.
-
Reverse Engineering my router with
binwalk
by Sergio Prado - Embedded Rust Blog Posts by Josh Robson Chase
- Apollo 11 Computer vs. USB-C Chargers by Forest Heller
- Emulating A Bluetooth Keyboard With The ESP32 by Tom Nardi
Neat Open Source Projects
- Anchor by Skip Transport - Open-source collection of embedded firmware libraries created by the team at Skip Transport, the company behind Skip Scooters. Libraries included today include a logging, Finite State Machine, and console CLI library (!).
- Delta Encoding Tools - detools - Python library to assist with incremental binary diff’ing which supports the Cortex-M4 architecture. Ideal use case is OTA updates.
- Swift Embedded - Project that is bringing Swift to microcontrollers. “A ‘hello world’ application has a little bit over 1MB because it includes a big part of the Swift standard library.
- Rust on Zephyr - API bindings, libstd, and Cargo integration for running Rust applications on a Zephyr kernel.
- TamaGo - bare metal Go for ARM SoCs - project that aims to provide compilation and execution of unencumbered Go applications for bare metal ARM SOCs.