Embedded Systems Weekly #132
Tags: embedded
Published: 2022-12-23 23:19:21

A few days ago, Tessa Lau shared her personal experience illustrating [why hardware is hard](https://bit.ly/3WobHkY). A story of robots behaving erratically. A story of a problem not reproducible in the lab. A kind of story that we would like to see shared more often publicly. Thank you Tessa!

**Happy reading!**

## Articles 
[Building a Rust-y Vim clutch with the Raspberry Pi 2040](https://bit.ly/3FTKb7R)
When someone leaves a team made of persons creative and skilled like the author of the article, we all have the chance to read how to build a clutch to command your Vim via USB. Among the technical aspects, the author distills some excellent advice: "*My approach to any complex problem is to start with a base assumption that nothing works. Then introduce the smallest reasonable amount of unknown. Prove this new version works as expected and keep iterating up the stack until I have a working thing or need a break.*" ~ Chris Price

[Disassembling a Cortex-M raw binary file with Ghidra](https://bit.ly/3WrnNtJ)
In the continuity of a training course he attended, Niall is writing a nice introduction to Ghidra, the open-source tool for analyzing firmware.

[Converting a WW2-era Engine Cowl Flaps Indicator into a USB Peripheral](https://bit.ly/3Wls7e9)
I like this kind of article that resuscitates an old piece of hardware with modern electronics. On a small PCB, a PIC16F1459  transforms inputs received by USB into SPI messages to the four MCP41HV31 digital potentiometers controlling the four dials. Curious to see it moving? Check out the [video](https://bit.ly/3WliWKD)

[Ethernet transceiver](https://bit.ly/3PMMPRC)
The author built from scratch a transceiver that converts a 10BASE-T Ethernet signal to SPI back and forth. He tested it first with an stm32f100 but switched quickly to an stm32f401 to get enough RAM (from 8kB to 96 kB) for the buffers. In the end, the microcontroller uses the homemade Ethernet transceiver to send messages on Telegram. It's an impressive work with all the details [open-source](https://bit.ly/3YKRbg4).

[Magnetometer Soft Iron and Hard Iron Calibration: Why and How](https://bit.ly/3FUyspX)
After detailed explanations, the article does a practical analysis of the sensitive QMC5883L magnetometer.

## Tools / Libraries
[FXT: a library of algorithms](https://bit.ly/3hMJSnw)
FXT is a library of low-level algorithms. One of the subjects covered is fast transforms. The list is quite long, and the website claims that the routine listed here are among the fastest available.

[EsPiFF](https://bit.ly/3PMMRsI)
The EsPiFF goal is to provide a solid design around an ESP32 to replace a Raspberry Pi 4 when this one is not robust enough or takes too much power.

## Jobs
[Ledger, Senior Firmware Engineer, 1 Rue du Mail, Paris, 75002 (Open to remote)](https://bit.ly/3hLb85Y)
Founded in 2014, Ledger is the global platform for digital assets and Web3. Over 15% of the world’s crypto assets are secured through our Ledger Nanos.

## Misc
[Proofs about programs, An interactive tutorial](https://bit.ly/3PS07MB)
Even though It uses Lean theorem prover by Microsoft, and the language used for the course is Javascript, it is a great introduction to the problem of proving program termination.