Continuing Education Center
January 29 - Day 5: Troubleshooting Techniques
Continuing Education Center 1/29/2016
The bootloader development process is riddled with stumbling blocks. In this session, firsthand, real-world experiences with designing and debugging bootloader applications, and how to quickly recognize some of the most common and worst bugs, will be discussed. Attendees will leave the weeklong course with troubleshooting techniques for bootloaders and verification tricks which many developers don’t even know exist tucked away in their pockets.
January 28 - Day 4: Bootloader Implementation
Continuing Education Center 1/28/2016
Implementing a bootloader in C is no trivial exercise. This session will examine the inner workings of a bootloader and walk attendees through the setup of a bootloader implementation. Important concepts, such a vector table locations, application verification, and branch decision-making, will be covered. Attendees will also be exposed to reusable concepts and handling drivers within the bootloading application.
January 27 - Day 3: Setting Up a Test Application
Continuing Education Center 1/27/2016
In this session attendees will go through the process of developing a test application for use with a bootloader. The major components, such as linker setup, watchdog maintenance, flash access, and system rebooting, will be discussed in detail. Attendees will walk away with an expert understanding of how to set up and build a test application that can be deployed in the field using a bootloader.
January 26 - Day 2: Interface Protocol Design
Continuing Education Center 1/26/2016
Developing a robust and reusable interface protocol is a critical step in the bootloader development process. Ensuring that the application update gets onto the microcontroller without errors is no trivial task. This session will walk attendees through the design of a generic bootloader protocol and provide key insights into what it takes to develop a robust bootloader and the associated design documentation.
January 25 - Day 1: Bootloader Models and Concepts
Continuing Education Center 1/25/2016
Updating firmware in the field or over-the-air can take on many different forms, and there are many models a developer can choose from to get the job done. This session will explore these different update models and discuss the advantages and disadvantages of each one as well as when they can be best applied. Attendees will be exposed to requirements development and walk away with an overview of how a bootloader works.
January 13 - Day 3: Exercising Segger’s emPower Platform
Continuing Education Center 1/13/2016
Segger recently announced the availability of a new evaluation platform based on the Freescale Kinetis MK66FN2M0VMD18 32-bit microcontroller. In this lecture we will examine and exercise the emPower hardware using Segger Embedded Studio and a combination of Segger middleware components.
January 12 - Day 2: ARMing a microSD Card to an MCU
Continuing Education Center 1/12/2016
This class will utilize the ARM hardware we previously constructed. We will use elements of the STMicro STM32 Standard Peripheral Libraries, Segger Embedded Studio, and J-Link Pro to add microSD storage capability to our ARM microcontroller complex.
January 11 - Day 1: Segger Embedded Studio Walk-around
Continuing Education Center 1/11/2016
This lecture will introduce you to the Segger Embedded Studio. Rather than just talk about the integrated development environment, we will assemble and code an ARM microcontroller complex with the STMicroelectronics STM32F407VG using Segger Embedded Studio and the J-Link Pro.
December 17 - Day 4: Implementation Details
Continuing Education Center 12/17/2015
This penultimate class will dig into the details of the implementation and “tuning” phases critical to an MCU-based motor control design. The capabilities provided by the STMicro kit will be explored in detail.
December 15 - Day 2: MCU Development Environments
Continuing Education Center 12/15/2015
This class will provide a background on the development environments typically found for MCU-based motor control designs. We will investigate particularly the STM32 Nucleo FOC kit (P-NUCLEO-IHM001) hands-on.
December 4 - Day 5: Running and Troubleshooting Our RTOS Design
Continuing Education Center 12/4/2015
Now that our code is written, we will need to test and debug it. In this final class, we will see how the debugger works with the RTOS to provide task-level debugging to help us debug and make the application work. The finished code will be available to help course students follow along and compare with their own code.
December 3 - Day 4: Reviewing and Writing Our Tasks
Continuing Education Center 12/3/2015
In this penultimate class, we will take what we learned so far and define the tasks of our simple project. We will look at some simple “lightweight” elements that we may choose for our project, such as messaging, events, semaphores, and mutexes.
December 2 - Day 3: Writing Our Board Support Package
Continuing Education Center 12/2/2015
One of the biggest drawbacks to “free” software is the lack of hands-on support for customization. Although you can buy support to assist in the creation of your board definitions (I/O, clocking, etc), there is good documentation to help us in this task. In this class, we will first define our project board and then write our own board support package (BSP) for our RTOS implementation.
December 1 - Day 2: RTOS System Development Setup
Continuing Education Center 12/1/2015
Our toolset will be an important part of making our project successful. We will investigate the tools that we will be using and how to install and set them up. Our toolkit will consist of the Kinetis Development System, Kinetis SDK (software development kit), and, of course, the MQX RTOS. All three are large, but free downloads are available from Freescale.
November 30 - Day 1: Introduction to MQX and RTOS Refresher
Continuing Education Center 11/30/2015
In this leadoff class, we will review the basics of how a task-switching RTOS operates and the design criteria we need to begin our project. We will look at the Freescale MQX real-time operating system and the elements that we will be using in our project.
November 19 - Day 4: Analog Peripherals
Continuing Education Center 11/19/2015
Analog peripherals, such as analog-to-digital converters (ADCs) and digital-to-analog converters (DACs), have significant feature differences from manufacturer to manufacturer, and this class will highlight several of the most important ones.
November 18 - Day 3: Timers
Continuing Education Center 11/18/2015
Timers are perhaps the most complex of peripherals, with the widest range of supported features. This class will dig into the details of several common timer implementations.
November 17 - Day 2: Serial Interfaces
Continuing Education Center 11/17/2015
Serial interface peripherals support interface standards such as I2C and SPI. This class will cover the key differences in common interface implementations by MCU makers.
November 6 - Day 5: IoT and the Physical Web
Continuing Education Center 11/6/2015
The word of the day is “beacon.” This lecture will detail the methods required to scratch-build an Eddystone beacon. We will also scratch-build a device that will transport the beacon’s data to a remote device via the cloud.
November 5 - Day 4: Basic for iOS Meets IoT
Continuing Education Center 11/5/2015
This class will concentrate on connecting “things” to iPhones using the latest version of Anywhere Software’s B4i (Basic for iOS), which allows a designer to create iOS apps without a local Mac computer. We will use B4i to connect iPhones or any iOS device to a Bluetooth Smart- or WiFi-enabled device we will have designed and built earlier in the course.
November 3 - Day 2: Scratch-Building Microchip’s RN4020
Continuing Education Center 11/3/2015
This class will utilize Microchip’s Curiosity Development Tool, MPLAB X and the MPLAB Code Configurator to assist in the design and assembly of an RN4020-based “thing”. The resultant “thing” design will be able to stand alone or operate under the control of a host PIC microcontroller.
November 2 - Day 1: Tooling Up for Internet of Things
Continuing Education Center 11/2/2015
This lecture will construct our first “thing” in the weeklong course. In addition to describing the design process, the class will examine the hardware and firmware tools for scratch-building our device. We will code and outfit our “thing” to perform environmental monitoring tasks.
October 23 - Day 5: An Internet-Connected Weather Station
Continuing Education Center 10/23/2015
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.
October 22 - Day 4: Connecting to an Internet Client
Continuing Education Center 10/22/2015
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.
October 21 - Day 3: Introduction to the Electric Imp
Continuing Education Center 10/21/2015
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).
October 20 - Day 2: Design Patterns for Analog and Digital Sensors
Continuing Education Center 10/20/2015
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.
October 19 - Day 1: Code Reviews and Refactoring
Continuing Education Center 10/19/2015
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.
October 9 - Day 5: Future Directions
Continuing Education Center 10/9/2015
Since this is a relatively new area of standardization, there is a lot of activity in the standards community. In this class we will discuss some of these activities. Looking especially at the IEEE activities we will get a feel for the range of standards being considered. We will also look at other standards bodies. Additionally, we will discuss how to get involved in a standards activity as an individual or industry representative.
October 8 - Day 4: System Standards
Continuing Education Center 10/8/2015
The IoT generally consists of a large number of devices, diverse in both quantity and type, used to perform particular functions. Operating as a “system” they encompass a wide range of applications. The considerations of the IoT system, such as control and data storage and access will be discussed and the standards appropriate to “system” as a whole will be explored.
October 7 - Day 3: Communication Standards
Continuing Education Center 10/7/2015
The most well developed set of standards for the IoT is in the communications area. That said, there is still a lot of activity around communications standards. We will look at the current landscape and discuss efforts of bodies like the IEEE to provide the standards necessary. Methods of communication for remote sensors and industrial devices will are also of particular concern and these will be discussed as well.
October 6 - Day 2: Device Standards
Continuing Education Center 10/6/2015
Devices used in the IoT span a very wide range. They can be extremely simple or can perform complex functions. In this lecture we will look at both hardware and software standards either in place or under development. Many of these are “industry” standards. We will also look at formal standardization efforts for such “industry” standards.
October 5 - Day 1: IoT Standards Overview
Continuing Education Center 10/5/2015
In this class we will look at the standards landscape for the IoT. This will include motivations, current and established standards and standards participants. We will develop a model that will be used in the following lectures to discuss the various types of standards.
September 18 - Day 5: Future Trends
Continuing Education Center 9/18/2015
This class will review some of the most recent trends in MCU-based sensor designs in order to explore the future types of applications MCUs will need to address and the most likely enhancements they will need to be successful.
September 17 - Day 4: More Example Designs
Continuing Education Center 9/17/2015
This class will continue exploring reference designs and development platforms provided by MCU manufacturers to help you more quickly and efficiently create MCU-based sensor designs.
September 14 - Day 1: Sensors in the IoT
Continuing Education Center 9/14/2015
Sensors will be, literally, the eyes and ears of the IoT. This class will describe several common sensors and their requirements for use in efficient MCU-based designs.
September 4 - Day 5: Robust Firmware Concepts
Continuing Education Center 9/4/2015
There are many concepts that can be used to help increase the robustness of embedded software. This session will review a wide variety of them. An in depth look at watchdog design, stack monitoring and memory management will be explored. Attendees will walk away with the ability to implement a reliable watchdog and perform essential checks such as RAM and ROM testing.
September 3 - Day 4: ASSERT and printf
Continuing Education Center 9/3/2015
The ASSERT macro is a critical component of embedded software development but an often under implemented and misunderstood tool. Using printf has also held a stigma that often leaves devlopers confused and hesitant. This session will walk attendees through how to setup these two tools and use them properly to help improve the reliability of their embedded system.
September 2 - Day 3: UART Driver and STM32CubeMx
Continuing Education Center 9/2/2015
This session will examine how to create a UART driver that will be used in later sessions with printf and assert. Driver development can be greatly accelerated by using available vendor tools such as the STM32CubeMx toolset. The tool will be examined in detailed as part of the driver development exercise. Attendees will walk away with software examples on how to create a UART driver and an understanding of the STM32CubeMx tool.
September 1 - Day 2: Doxygen and PC-Lint
Continuing Education Center 9/1/2015
In a fast paced environment, properly documenting and checking code for errors often goes ignored but they are absolutely critical to robust product design. This session will examine how to use Doxygen to document code and also generate the code documentation for the developer. PC-Lint configuration and utilization will also be examined. Attendees will walk away with a deep understanding of how to use these two crucial development tools.
August 31 - Day 1: Portable C Concepts
Continuing Education Center 8/31/2015
This session will introduce a subset of the C language and design techniques that are suitable for writing portable code. An STM32 Nucleo development kit utilizing a Cortex-M0+ will be used for example code. Attendees will walk away from this session with the knowledge of how to design software that can be reused through APIs and HALs.
Former DARPA official and Google executive Dr. Kaigham Gabriel believes sensor companies think too much like suppliers and need to bring their products closer to the consumer.
One way to keep a Formula One racing team moving at breakneck speed in the pit and at the test facility is to bring CAD drawings of the racing vehicle’s parts down to the test facility and even out to the track.
Most of us would just as soon step on a cockroach rather than study it, but that’s just what researchers at UC Berkeley did in the pursuit of building small, nimble robots suitable for disaster-recovery and search-and-rescue missions.
Engineers at Festo were inspired by how a caterpillar builds its cocoon when designing its new 3D Cocooner printer.
Design engineers need to prepare for a future in which their electronic products will use not just one or two, but possibly many user interfaces that involve touch, vision, gestures, and even eye movements.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies.
You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived.
So if you can't attend live, attend at your convenience.
Next Course June 28-30:
Sponsored by Proto Labs