When Hams Fly

Recently, I’ve been wading back into flying model aircraft. Learning about FPV (first-person video) flying has led me to studying for the Technician class amateur radio license, since it’s required to legally transmit the video downlink. I asked Twitter for some suggestions for online education resources, and the responses were too good not to share. Here is that list, and some other things I’ve found along the way.

 

Read More

Embedded Software Engineering 101: Microcontroller Basics

We’ll start our Embedded Software Engineering 101 journey with the humble microcontroller. The microcontroller (or microprocessor) is the fundamental building block of all computer systems, embedded or otherwise.

A microcontroller seems quite complicated, but it’s made up of three simple things: instructions, registers, and memory. Instructions are the things a microcontroller knows how to do. A simple microcontroller doesn’t know how to do much - it might only have 20 or 30 instructions. I’ll use the MSP430 microcontroller made by Texas Instruments later in this series, and it has only 27 instructions.

Read More

Embedded Software Engineering 101: Introduction

I’m starting a series to teach embedded software engineering. We’ll start with a description of a basic microcontroller. Once you understand how a microcontroller works we’ll build on that until you’ll understand how a moderately complex embedded system like a Fitbit or Nest works.

I’m calling it Embedded Software Engineering 101, and it starts this week right here on this blog.

Read on for more background and details.

Read More

Elementary Quantum Mechanics

Some of you may have suffered through enough physics in college to remember something called the “Electron in a box” model. Well, today I’m going to show you an Electron coming out of a box.

A while back I wrote up a small project with the Particle.io Photon, a Wifi-enabled prototyping board that can be programmed using Arduino-like code. I got a surprise in the mail this week:  an intriguing successor to the Photon, the also unsearchably named “Electron”. 

Read More

Introducing the Toys

I'm writing a book about how to learn embedded software concepts by taking apart toys.  This is the first chapter. I hope you enjoy it.

***

I talk to many engineering friends who say they took apart their toys (and everything else). I was not like that. I didn’t know it was possible to take objects apart. I definitely didn’t know how much I could learn. I never imagined how fun it would be.

 

Read More

It's Dangerous to go Alone! Take MISRA-C

Frequently, we talk about how a little compassion and respect for the future can make a big difference for code quality. I purposely avoided many specifics to focus more on the motivations for taking greater care with our work. This week, I’d like to address something very specific and perhaps something that could form a foundation for writing better code.

Read More

Cheating On Tests

Have you heard about the VW diesel emissions scandal? The software detects that the car is being tested for emissions and changes the engine to function more cleanly. When not being tested, the vehicles do not meet the US Environmental Protection Agency’s emission requirements.

I’m incensed at this. Oh, not because I own a VW (I don’t) or because I’m an environmentalist (I am). I’m angry because there is an embedded software engineer who wrote this code and allowed it to get released to production.

Read More