issue 19 - Embedded systems newsletter

Embedded systems #19

Hardware

Dmn’s Electronic Diesel Control
In the Issue 13 I had listed rusEFI another open-source ECU initiative. Dmn’s is build around the Arduino Mega and is dedicated to diesel engines with Bosch VP37 pumps. If you’re as crazy about cars as you are fan of electronics, open-source ECU projects are for you

The Optical Mouse, and an Architectural Methodology for Smart Digital Sensors
An old (very old, 1981) but very interesting paper on optical mouse. How optical mouses were imagined 33 years ago and what were the electronics solutions selected to make them work are two questions that should make you read this paper

Software

When you see a heisenbug in C, suspect your compiler’s optimizer
This article is a reminder that compiler optimisations could break your program’s behavior in unwanted ways. During debug sessions, the step-by-step into your program is reliable only if compiler optimisations are disabled but keep in mind that remove optimisations can also remove your bug.

A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux
Make a minimal ELF executable is an obsession of embedded systems engineers. Certainly because dead code is strictly forbidden in the shipped product (safety products at least). Can you do smaller than the author 45 bytes? Is it possible?

C11 atomic variables and the kernel
The last C11 standard added, among several others, new builtin type that is atomic. So it was obvious that this addition in the compiler had to be analyzed against the needs of atomicity of the Linux kernel. Linux has already convenient and bug less features to enforce atomicity of operations and so inclusion of C11 atomic feature in Linux is not for the next releases.

How To Safely Generate A Random Number
If you still search for the CSPRNG (cryptographically secure pseudo-random number generator) of your unix/linux like platform, the author of the article fights against all the user space generators and builds an argument to make us choose urandom.

Design patterns of 1972
Another fairly old article for this week edition but this time on design patterns out of their usual box. An interesting approach of the “Object-oriented class” pattern in pure C

Tools

A tcpdump Tutorial and Primer
To understand context, we can compare the world of editor/IDE tools and the world of network analysis tools by telling that tcpdump is the equivalent of vim. tcpdump is a very powerful command line network analysis tool with many parameters to give you only traffic that interests you

Misc

A crazy way to convert a 600mil DIP to 300mil. (LPC1114)
Have you ever wondered if it’s possible to reduce the width of a chip and to have it work after that? this video is a demonstration that it is possible. Very crazy!

Raspberry Pi $10,000 bounty
This week, Broadcom released the source code of their BCM21553. It’s a very good news for the Rpi community because it will make possible to avoid the closed source driver of the embedded BCM2835. To make the port from the BCM21553 to the BCM2835 even more appealing, the Raspberry Pi Foundation will pay a bounty of $10,000 to the first hacker able to make Quake 3 playable on the Rpi. Do you need more to hack?