CEC – Driver Design Patterns and the Internet

Course Overview:

Leveraging design patterns is a critical technique to quickly and efficiently develop an embedded system.  This course will explore driver design patterns through developing low-level drivers for the STM32L0 Nucleo board. We will explore the interfacing of common sensors to the development board, in addition to connecting it to the Internet as a basic weather station using the Electric Imp. Attendees will not only gain an understanding of embedded software design patterns but also create building blocks that can be used to rapidly prototype a system and connect it to the Internet.

CECDay 1 – Code Reviews and Refactoring

Code reviews are one of the cheapest ways to reduce development costs. Finding bugs become exponentially more expensive later in the development cycle.  This session will examine best practices for performing a code review via a baseline code project for the STM32 Nucleo board. Changes to the code base will be identified, with recommendations for changes, refactoring, and project organization.

Registration and Playback located here (May require login to access)

Day 2 – Design Patterns for Analog and Digital Sensors

Every embedded system is monitoring some type of sensor whether it’s digital or analog. These sensor types are handled differently most of the time. In this session, attendees will learn how to create a basic analog-to-digital converter driver that can be used to monitor a light sensor. The I2C interface will also be examined in detail as the basis for the Day 5 session on interfacing with digital sensors.

Registration and Playback located here (May require login to access)

Day 3 – Introduction to the Electric Imp

In this session attendees will learn how to connect an embedded system to the Internet using a WiFi module known as the Electric Imp. You will learn how to set up the Electric Imp and connect it to the STM32L0 Nucleo board. The session will leverage the base code reviewed in Day 1 in order to demonstrate portable code concepts. You will leave the session knowing how to work the board and transmit basic data over the universal asynchronous receiver/transmitter (UART).

Registration and Playback located here (May require login to access)

Day 4 – Connecting to an Internet Client

Sending data out into the Internet is great, but doing something with the data is even greater. This class will examine the Electric Imp cloud-based client software and how to develop a demonstration application using the Squirrel programming language. Attendees will learn the differences between C and Squirrel and get a basic client application up and running that will form the baseline for the connected weather station taught in the final class.

Registration and Playback located here (May require login to access)

Day 5 – An Internet Connected Weather Station

Weather stations are a fun way to test embedded software skills. This session will pull together all the concepts examined over this course by interfacing light, humidity, and temperature sensors to the STM32L0 Nucelo board and creating the necessary application to transmit sensor data to be Electric Imp client, which will then enable the data to be formatted and displayed on the Weather Underground website.

Registration and Playback located here (May require login to access)

Course Resourses

  • Sign-Up for the Embedded Bytes Newsletter here
  • Embedded Software Design Techniques – An API Standard for MCU’s here
  • Doxygen C Templates Download can be here
  • Course Source Code can be found here
  • EDN Blog Articles can be found here

Share >

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.