Educational Resources for Designing Embedded Systems, Part I

A project log for ELPH skin

A flexible and low-power electrophoretic (e-ink) display worn on the skin, like a temporary tattoo.

Hunter 04/18/2017 at 19:420 Comments

image source: unknown

My display and dev kit still haven’t arrived yet so I’ve had ample time to get up to speed with designing for embedded systems. My former career was in web and app development before I began working with Arduino and Raspberry Pi based systems. I consider myself an “advanced beginner” because with open source frameworks it’s easy to jump and start building without fully understanding what’s going on. I think of them as a gateway drug into engineering and computer science in that they provide the dopamine rush of building something amazing very quickly, but after a few times of doing this I developed a tolerance and like any addict, I’m continually on the hunt for my next peak experience.

After starting this project I quickly realized that I don’t have an intuitive grasp on embedded applications and needed a thorough primer on the fundamentals. And I needed to do it fast! Here are some of the resources that have helped me get up to speed with both hardware and software design, specifically for the MSP430 microcontroller.

Designing Embedded Hardware: Create New Computers and Devices by John Catsoulis is a very readable and high level overview of hardware architecture. In the Carrollian Wonderland of Electrical Engineering the rabbit holes (analog, DSP, FPGAs!!) but this book does an excellent job in outlining exactly what is relevant in digital electronics for computers. The chapters on peripherals and serial communication were especially helpful.

Despite being a voracious reader it’s hard for me to find technical books that I can consume cover to cover. Making Embedded Systems: Design Patterns for Great Software by Elecia White is among the top in this category. I can tell that Elecia is very passionate about her craft and while she provides an overview of the technical topics, she also exposes the art of designing embedded systems and I found this be the most valuable. It helps to have at least an introductory-level knowledge of computer science concepts but even if you don’t, this text should whet your appetite for more. Use it to get your bearings and you won’t feel as bewildered when referencing more in-depth materials for specific topics. The introductory chapters and the section on state machines and interrupts are excellent.

Introduction to Embedded Systems: Using Microcontrollers and the MSP430

I haven’t read this book in its entirety and am using it as more of a reference but this is an ideal text if you are learning the MSP430 but are still new to the world of micro controllers. It’s a textbook so there’s plenty of theory and math and problem sets but it’s also a practical and in-depth guide on architecture and processor organization, interfacing with microprocessors, peripherals and serial communication. The chapter on Assembly is solid but the subsequent chapter on C is high level so I would use another resource if you intend to learn how to tweak or write your own firmware.