Presented By:
Now you can earn IEEE Professional Development Hours by attending CEC courses.
  • All class times are listed in Eastern Time.
  • All classes will consist of a 45 minute lecture and an interactive chat session.
  • Registered users must sign up to participate and get credit for each course.
  • Questions? Please contact us here.

Digi-Key Continuing Education Center, hosted on Design News, will get you up to working speed quickly in a host of technologies you've been meaning to study, but haven't had the time, via a series of 45-minute online lessons – all without leaving the comfort of your lab or office. Our faculty of expert tutors has divided the interdisciplinary world of design engineering into five dimensions: microcontrollers (basic and advanced), sensors, wireless, power, and lighting.

All of these topics will be tackled in a dedicated week of interactive tutorials where you can ask questions of the tutor, discuss knotty issues with your fellow students, and download a wealth of additional learning materials. (Don't worry if you can't attend a particular course live – seminars are also archived, and our online educational discussions take place 24 hours a day.)

Archived Classes

CEC Semester Ten 2016

Introduction to the ARM mbed Platform - A Hands-on Course

Jan 13, 20172:00pm EST
Now that we have learned the basic features of mbed, we will look at the many options for porting it to our Cortex-M processor designs. We will also look ahead to other course topics to dig deeper into the power and future of mbed in the ARMv8 family and beyond.
Jan 12, 20172:00pm EST
In this penultimate class, we will look at the tools available from the developer area. We will then look at ways that we can participate and use many of the tools and code available.
Jan 11, 20172:00pm EST
For our third class, we will delve into other elements of the mbed structure including the communications core and ties for multitasking and RTOS.
Jan 10, 20172:00pm EST
For our second class, we will begin our tour of the elements of mbed, including the CMSIS (ARM Cortex Microcontroller Software Interface Standard) and the bootload, programming, and other interfaces. We will look at examples of how to use these on our FRDM-K64 board.
Jan 9, 20172:00pm EST
In this leadoff class, we will look at the history and structure of the mbed ecosystem. We will also look at how the alliance of partners that make up the parts of mbed work together under Apache 2.0 open license.

Prototyping Home Automation Concepts

Dec 16, 201611:00am EST
CEC participants will learn how to develop Home Automation devices using a Programmable Logic Controller (PLC). In addition, CEC participants will build a Programmable Timer for Small Appliances using a PLC.
Dec 15, 201611:00am EST
An introduction to littleBits eModules and rapid build of Home Automation concepts will be presented to CEC participants. The hands-on project discussion will be on building a Coffee Control Unit using littleBits eModules and a smartphone.
Dec 14, 201611:00am EST
CEC participant discussion of using IoT techniques to monitor a home’s temperature and humidity using WiFi, sensors, and embedded controller. The hands-on project to be explored is a Grove Pi+ Temperature-Humidity Monitoring unit.
Dec 13, 201611:00am EST
Basics of Home Security and devices will be explained to CEC participants followed by a hands-on project discussion of an Ultrasonic Detection and Alarm Device.
Dec 12, 201611:00am EST
An introduction to Home Automation Basics and Trends will be presented to CEC participants. Setup of the Grove Pi+ shield software follow by the hands-on project discussion of the Grove Pi+ Button and Buzzer device.

Code Sharing, Collaboration, and Version Control: An Hands-on Introduction to Git and Github

Nov 18, 20162:00pm EST
In our last class, we will look at local clients for code version control and collaboration, including some other tools available such as Atlassian’s Bitbucket.
Nov 17, 20162:00pm EST
In this penultimate class, we will take what we learned in the previous class and make use of the existing shares to reuse and build upon other’s code, using examples for the Particle Photon board that we used in a previous CEC class. We will also look at how to set up an account for private shares...
Nov 16, 20162:00pm EST
For our third class, we will delve into the popular GitHub site and will look at that implementation of Git in detail. We will explore set up of a free account for public shares and set up a share area for collaboration.
Nov 15, 20162:00pm EST
For our second class, we will take the concepts from the first class, apply them to Git, and look at its structure and operation. We will also introduce the terminology that we will use through the rest of the week.
Nov 14, 20162:00pm EST
In this leadoff class, we will look at the concepts behind software version control and code collaboration. We will develop the checklist of what we need for an efficient system and what led Torvalds to develop Git.

SoC FPGA Devices using the Microsemi SmartFusion2 Device

Nov 4, 20162:00pm EDT
In this final lecture the layout phase of the FPGA process will be developed. This will get us to the point where we can bring it all together. The steps required and the loading process will be covered.
Nov 3, 20162:00pm EDT
To start we will look at specifying the algorithm to be used in the FPGA and the tools used to verify it. An overview of the whole tool chain and some examples of the initial steps will be presented.
Nov 2, 20162:00pm EDT
We will start with programming the microcontroller part of the SmartFusion2. This is a standard ARM processor. It can be used for the HMI and for system control functions.
Nov 1, 20162:00pm EDT
In this class we will go over a simple sample application and the initial steps in development. We will look at partitioning the application between the microcontroller and the FPGA fabric. We will also look at planning and laying out the I/O channels and special features of the chip.
Oct 31, 20162:00pm EDT
The System on Chip (SoC) combines a standard microprocessor with a Field Programmable Gate Array (FPGA), as well as various types of I/O. In this session we will look at the class of devices and then go into the device for this week, the Microsemi SmartFusion2, giving a description of the device at...

MCU-based IoT Designs: Efficient Serial Interfaces

Oct 28, 20162:00pm EDT
This class will focus on some example designs, suggested by students that illustrate key concepts important to MCU-based IoT Designs. Links to appropriate online resources, kits, and documentation will be included to help jump-start new designs.
Oct 27, 20162:00pm EDT
This class will provide descriptions and examples of I2C and I2S interfaces used in IoT applications. Hardware resources, protocol, performance, and power concerns will be described and discussed. Advantages and disadvantages over other types of interfaces will be included.
Oct 26, 20162:00pm EDT
This class will provide descriptions and examples of SPI and QSPI interfaces used in IoT applications. Hardware resources, protocol, performance, and power concerns will be described and discussed. Advantages and disadvantages over other types of interfaces will be included.
Oct 25, 20162:00pm EDT
This class will provide descriptions and examples of UART and USART interfaces used in IoT applications. Hardware resources, protocol, performance, and power concerns will be described and discussed. Advantages and disadvantages over other types of interfaces will be included.
Oct 24, 20162:00pm EDT
Serial interfaces are ubiquitous in MCU-based IoT Designs. This class will provide an overview and background used for the balance of the week’s course.

Embedded System Design Techniques™: Getting Started Developing Professional Embedded Software

Oct 14, 20162:00pm EDT
The way that firmware is developed is beginning to change at a rapid rate. Designing a scalable software architecture that ties into a hardware abstraction layer can greatly improve reusability which in turn decreases development costs and time market. In this session, attendees will walk away with tips, trick and best practices for scaling their embedded software workbench to develop reusable embedded software.
Oct 13, 20162:00pm EDT
Starting a project right can determine whether it is poised for success or failure. Rarely do development teams start with all the right resources configured in their software project. We will setup an embedded workbench, a baseline project that can be used to develop embedded software. The project will include hooks that should be put into a project, baseline code analysis and metric recommendations, setting up assertions, printf and trace along with the creation of documentation templates.
Oct 12, 20162:00pm EDT
In this session, attendees will explore the latest methods and technologies available to properly manage an embedded software project. Attendees will walk away with an understanding of estimating development times, managing features, integrating IDEs and managing revision control.
Oct 11, 20162:00pm EDT
Having the right tool for the job is critical in any job but especially so for embedded software developers. In this session, we will explore important tools such as compilers, optimization, programming languages along with analysis tools. Attendees will walk away for an understanding how open source and commercial tools compare in performance, efficiency and cost and which tradeoffs are most appropriate.
Oct 10, 20162:00pm EDT
Selecting the right microcontroller for a product can be difficult into today's development environment. In this session, we'll explore how to select a microcontroller using the perspectives of both electrical and software engineers. Attendees will walk away with an understanding of critical concepts that are required when starting to develop embedded software.

IoT Building Blocks and Toolchains

Sep 30, 20162:00pm EDT
IoT design need not be confined to Ethernet and Bluetooth devices passing bytes of sensor data. Today's lecture will focus on the capabilities of the ON Semiconductor MatrixCam. The MatrixCam is a 1080p camera solution that enables the streaming of video over WiFi and Ethernet.
Sep 29, 20162:00pm EDT
The bottom line in IoT is to deliver the payload. Today, we will "deliver" without the assistance of WiFi, Ethernet or Bluetooth. While we're at it, we'll use the power of the sun as an IoT delivery vehicle, as well.
Sep 28, 20162:00pm EDT
In addition to the RN4020, Microchip offers a pair of IoT-ready SoCs. Today, we will take a look at the Microchip BM70/71 PICtail, command set and programming utilities. To facilitate our BM7x exploration, we will first design and assemble a suitable BM7x prototype platform.
Sep 27, 20162:00pm EDT
The nRF52832 is billed as a Multiprotocol Bluetooth low energy/ANT/2.4GHz RF SoC. In this lecture we will explore the new features of the nRF52832 and write some code to put the nRF52832's peripherals and radio through their paces. Our goal today is to design and build an nRF52832 prototype/test jig.
Sep 26, 20162:00pm EDT
Today’s lecture will be supported by the free edition of Keil’s MDK for Cortex-M. The code produced by the Keil MDK will be used to expose the capabilities of various microcontroller elements of Nordic’s nRF51822 SoC. During the course of the lecture, we will utilize the nRF52 SDK to produce code that will enable various members of the nRF51822’s peripheral subsystems. Today’s task includes designing and scratch building an nRF51822 prototype/test jig.

Analytics for the IoT: A Deep Dive into Algorithms

Sep 16, 20162:00pm EDT
One major feature of the IoT is that we now have lots of data over long periods of time for many types of systems.We can use this rich data horde to perform optimizations in current systems and in the design of new or evolved systems.These techniques often use complex formulations involving linear and non-linear systems approaches.Fortunately, there are many existing implementations of these methods that make their execution relatively easy.We will look at them in a couple different languages.
Sep 15, 20162:00pm EDT
For this lecture we will talk about failure detection and anomaly detection, and the analyses used in conjunction with them. In the IoT we often want to perform these on a continuous basis. This introduces some interesting features in the analysis that we will discuss.
Sep 14, 20162:00pm EDT
A major area of machine learning concerns classification. We will describe both supervised and unsupervised learning techniques and discuss when and how to use them. Techniques include k-means clustering, support vector machines, principal components analysis and decision trees, for example. We will also look at applications of these techniques.
Sep 13, 20162:00pm EDT
To implement the analytics we are discussing this week, one needs software and a platform to run it on. We will discuss languages such as R and Python and more conventional languages and traditional statistical processing systems. Because the size of the data is often massive and growing, platforms become important. It is key to pick one that can start small and grow in power without having to completely rewrite the application. We will give an overview of platforms specific to the IoT.
Sep 12, 20162:00pm EDT
Today we will present an overview of the types of statistical techniques useful for the IoT and how statistics is used in this context. Some differences with standard statistics will be highlighted. The requirements for IoT analytics will also be presented. Our intent is to discuss the algorithms in the context of engineering applications in the IoT.

Build a Powerful IoT Network with the PHOTON Board - A Hands-on Course

Aug 26, 20162:00pm EDT
Now that we have written some code using the online and simple IDE tools, we will look at using some familiar IDEs and writing 'bare metal' and even RTOS-based code for the STM chip on our PHOTON board.
Aug 25, 20162:00pm EDT
In this penultimate class, we will take what we learned so far and write some beginning code using the free online Integrated Development Environment (IDE), as well as a version that can run on our own computers. We will then look at ways that we can use the node in our local Internet of Things.
Aug 24, 20162:00pm EDT
For our third class, we will delve into the use of the cloud for our IoT applications for the PHOTON by setting up a simple and free Azure account and teaching our board to talk to it.
Aug 23, 20162:00pm EDT
For our second class, we will download the smartphone app for the board and learn about basic commissioning and testing of the board. We will perform some basic functions using the sample applications available in the maker domain.
Aug 22, 20162:00pm EDT
In this leadoff class, we will look at the structure of the PHOTON board - its architecture, the chips used, and the features built into the board. We will also look at the infrastructure that the manufacturer has established for the board and that we will use for the remainder of the week.

Getting Hands On with Arduino Mechatronics

Aug 12, 20162:00pm EDT
In this final session, participants will learn how to build a Desktop Automation Trainer. The Arduino will be configured as a programmable input simulator to stimulate the PLC Ladder Logic code to operate a dc motor.
Aug 11, 20162:00pm EDT
The intelligent industrial controller that is at the center of robotics and automation is the PLC (Programmable Logic Controller). In this hands-on discussion, participants will learn PLC I/O and CPU Architecture basics. The hands-on activity will illustrate how to program and test a PLC in Ladder Logic code using an input simulator.
Aug 10, 20162:00pm EDT
Stepper and servo motors are key electromechanical components for Motion Control products. Today, participants will explore Motion Control driver circuits by building and experimenting with basic Arduino based Stepper and Servo Motor Controllers.
Aug 9, 20162:00pm EDT
Day two session will focus on driving high DC/AC current electromechanical components with low current DC driver. To illustrate this design method, participants will learn how to build a DC Motor Driver using a Power MOSFET. Power MOSFET basics including how to wire them to a dc motor will be discussed in this session.
Aug 8, 20162:00pm EDT
A discussion on Mechatronics, with examples, will be presented. Also, two hands-on activities that participants can do at home will illustrate the audible and visual devices that can be used in Mechatronics warning systems. The LCD and a Piezo Buzzer components will be used with an Arduino for the hands-on learning activities.

Implementing Advanced IoT Embedded Designs with the Renesas Synergy Platform - A Hands-on Course

Jul 29, 20162:00pm EDT
This class expends on the previous one to build some specific GUI example projects. Students can follow along using the free software or optionally purchase a kit to see the actual designs in action.
Jul 28, 20162:00pm EDT
Graphic User Interfaces are key elements in the IoT. This class will show specific implementations, using the ThreadX RTOS and GUIX features available within SSP. The basic elements needed for creating a GUIX based user interface will be covered.
Jul 27, 20162:00pm EDT
This class expends on the previous one to build some specific networking connectivity example projects. Students can follow along using the free software or optionally purchase a kit to see the actual designs in action.
Jul 26, 20162:00pm EDT
Networking connectivity is critical to IoT designs. This class will show specific implementations, using the ThreadX RTOS and NetX features available within SSP. The basic elements needed for Networking connectivity will be covered.
Jul 25, 20162:00pm EDT
This class will review and provide implementation examples of a few of the key RTOS capabilities appropriate for IoT applications. It will use the Renesas Synergy Platform, featured in Warren's previous course. Students are strongly encouraged to view the previous course and download, install and use the free Renesas Synergy Software Package (SSP).

Embedded System Design Techniques™ - Debugging Real-time Embedded Software Hands on

Jul 15, 20162:00pm EDT
In this session, Jacob will review the finer points of debugging an embedded systems and provide attendees with tips and tricks that will make them masters of debugging. Attendees will walk away with a half dozen or more techniques to discover memory issues, race conditions, priority inversions and other potential issues that often plague an embedded system.
Jul 14, 20162:00pm EDT
Building on understanding of ARM Cortex-M debugging, in this session, Jacob will walk attendees through how to setup and utilize system viewers and trace tools to efficiently debug embedded systems in real-time. Attendees will walk away will new skills and techniques that will be directly applicable to help them shorten their debugging times and improve system quality.
Jul 13, 20162:00pm EDT
One of the most popular microcontrollers on the market, the ARM Cortex-M series has some incredible debugging capabilities that developers can quickly leverage to get through the debugging process. In this session, attendees will learn how to debug real-time issues and faults and get an introduction into RTT, SWD and SWO.
Jul 12, 20162:00pm EDT
There is no point in spending the time to pull out the big guns if a stick will do the job. In this session, Jacob will examine traditional debug techniques, such as proper use of printf and assert. Attendees will get hands-on experience with the approaches and also get up to speed on terminology, bug classification and tracking.
Jul 11, 20162:00pm EDT
Developers can listen and read about debugging all day long but until they jump in and get their hands dirty its only theory. In this session, Jacob will give a high level overview of the debugging techniques available to developers today and walk them through how to setup the debug environment that will be used as a test bed through-out the remainder of the week.
CEC Semester Nine 2016

Embedded Development with Microchip s New 8-bit Microcontrollers

Jun 24, 20162:00pm EDT
The PIC18 family of 8-bit devices includes a group Ethernet PIC microcontrollers. The object of today's lecture is to use a PICDEM.net 2 Development Board to send packets over the internet. TCP and UDP protocols will be examined and put to work via code generated by the XC8 C compiler.
Jun 23, 20162:00pm EDT
Today will be dedicated to exercising the advanced features of the enhanced 8-bit PIC microcontroller family. These new 8-bit Super PICs are equipped with advanced analog computational capabilities and core independent peripherals. We will combine the forces of MPLAB X, XC8 and the Microchip Code Configurator to put the peripherals through their paces.
Jun 22, 20162:00pm EDT
Sensors attached to the PICDEM Lab II Development Board rule the day. During the course of this lecture we will employ the services of the RN4020 Bluetooth Low Energy Module to bounce sensor data around in a Bluetooth PAN. We will also instruct the 8-bit PIC in charge to coerce our RN4020 device into interfacing with a mobile device.
Jun 21, 20162:00pm EDT
The MPLAB Code Configurator is a graphical programming environment that is integrated into MPLAB X. C source code generated by the MPLAB Code Configurator can be inserted into an 8-bit PIC application. In this lecture, we will use the Explorer 8 Development Kit to demonstrate the capabilities of the MPLAB Code Configurator.
Jun 20, 20162:00pm EDT
Today's lecture will lay the groundwork for developing 8-bit PIC microcontroller applications using MPLAB X, XC8 and the new Curiosity Development Board. Code produced during this lecture will configure and enable peripherals and GPIO on the targeted 8-bit PIC devices.

The Lua Programming Language for IoT - Hands On

Jun 10, 20162:00pm EDT
Now that we have written some code and started testing out our node, we will learn some advanced application programming and alternative means of programming our nodes. In this final class, we will see how to make use of the chip I/O as well as how to load the chip with Arduino for use with the Arduino IDE and some common sketches (programs).
Jun 9, 20162:00pm EDT
In this penultimate class, we will take what we learned so far and write some beginning code on the ESP8266. We will learn how to configure a node to work with a specific network then look at ways that we can use the node in our local Internet of Things.
Jun 8, 20162:00pm EDT
For our third class, we will delve into the more advanced aspects of Lua, including nested functions and some of the application-specific features for gaming and other applications.
Jun 7, 20162:00pm EDT
For our second class, we will begin to look at the Lua language in depth. We will look at all of the basic constructs, including variables and program flow, and show some examples of each and how we can test some basic programs as we go along.
Jun 6, 20162:00pm EDT
In this leadoff class, we will look briefly at the ESP8266 chip and the various Node MCU boards that are available with the chip. We will then discuss the history of the Lua language and how it is used for programming various applications.

Speed MCU-based RTOS Designs using the Renesas Synergy Platform - A Hands-on Course

May 20, 20162:00pm EDT
This class will select example designs from those suggested by students to solidify key techniques covered in previous classes. Students with actually hardware will be able to download the designs to the actual board while students with the software will be able to explore the code generated automatically by the software tools.
May 19, 20162:00pm EDT
This class will describe the target board that can be optionally used as a hands-on extension to the course. The freely downloadable software can also be used to also follow along with the design examples, but just can't be executed on actual hardware.
May 18, 20162:00pm EDT
This class will demonstrate how easy it is to create RTOS based designs using high level Frameworks within SSP. Frameworks provide a hardware independent development path that 'fills in' many of the low level details automatically.
May 17, 20162:00pm EDT
This class provides a detailed description of the key elements of the Renesas Synergy Platform. It will focus on the Synergy MCUs and the integration of Express Logic Thread-X RTOS, GUIX, USBX, FILEX and NETX elements in the Synergy Software Package.
May 16, 20162:00pm EDT
This class will provide a quick overview of key RTOS concepts including the key concepts behind threaded designs, the techniques for inter-thread communications, and some of the new design 'thinking' needed to make the most of the power of RTOS based development.

Embedded System Design Techniques™ - Rapid Prototyping Embedded Systems using Micro Python

May 6, 20162:00pm EDT
Python can be used in embedded systems for much more than microcontrollers. In this session, we will examine how Python can be used control development tools. Attendees will walk away with an appreciation for how to write Python scripts that are reusable and can be used to test an embedded system.
May 5, 20162:00pm EDT
Running MicroPython on the Pyboard is one thing but what if a developer wants port or customize MicroPython to work on a different platform? In this session, we will explore how to customize and build MicroPython to run on off the shelf development kits. Attendees will walk away with an understanding of what it takes to get MicroPython up and running.
May 4, 20162:00pm EDT
In this session attendees will be walked through the process of connecting to and communicating with external devices and boards. Attendees will examine how to write data to an external EEPROM and Bluetooth device to transmit sensor debug data. Concepts can be applied to generic external modules but detailed specific examples will be provided.
May 3, 20162:00pm EDT
The PyBoard is based on an ARM Cortex-M4 processor which has a large number of internal peripherals and capabilities. In this session, we'll examine what libraries are available through MicroPython to control these peripherals and features. Attendees will walk away with an understanding of the libraries to control GPIO, timers SPI and UART peripherals.
May 2, 20162:00pm EDT
Understanding when and where it makes sense to use Python in the embedded system development cycle is a first step for any developer interested in using Python. This session will examine the Python programming language and introduce MicroPython along with its development platform PyBoard. Attendees will walk away with an understanding of what MicroPython is and how to setup a basic script that can control microcontroller hardware.

32-Bit Embedded Development with Microchip's Tool Chain

Apr 22, 20162:00pm EDT
This final class will take us off the beaten path of graphics interface development. We will discard the complex proprietary graphics tools that are normally associated with embedded graphics design. Instead, we will build a robust full-color, touch-enabled graphics interface using a PIC32MX microcontroller, a tricky touch-enabled display and Photoshop.
Apr 21, 20162:00pm EDT
Mag Jacks and WiFi radios rule today. We will discuss and examine various ways to implement 802.3 and 802.11 communication links using the PIC32MX microcontroller.
Apr 20, 20162:00pm EDT
In this session, we will create a 32-bit microSD-equipped device based on the PIC32MX microcontroller. We will balance the microSD equation by implementing a microSD solution on a PIC32MZ-based Digilent Wi-Fire development platform.
Apr 19, 20162:00pm EDT
The PIC32MX and PIC32MZ microcontrollers have the necessary hardware and firmware support to create host and downstream USB embedded devices. This class will focus on developing practical USB devices from the Microchip MCUs.
Apr 18, 20162:00pm EDT
This kickoff class will lay down a solid PIC32MX/PIC32MZ foundation. We will perform some hands-on examination of Microchip's 32-bit hardware. With the help of MPLAB X and XC32, we will write C routines to exercise the microcontrollers' peripherals and GPIO.

Hands-On Introduction to the Thread IoT Protocol

Apr 8, 20162:00pm EDT
Now that our code is verified, we will look at more advanced concepts with the boards including monitoring ('sniffing') traffic and integrating security. We will then look at changes of topography and the dynamic capabilities of the network to reconfigure and heal itself. We will conclude the class with a look at future developments and capabilities of the Thread protocol.
Apr 7, 20162:00pm EDT
In this penultimate class, we will load the stack and sample setup applications on our test boards for testing and verification of basic operation. We will test the basic setup of the network, the commissioning of a node, and data transfer.
Apr 6, 20162:00pm EDT
The Thread stack consists of many modules including IEEE 802.15.4, 6LowPAN, UDP, Security, Mesh, and the actual application and its protocols. In this class, we will look at the structure of the actual code for the stack and how we will be using it for our hands-on testing in the final two classes.
Apr 5, 20162:00pm EDT
We will continue to examine the Tread protocol in depth, including the stack structure, the underlying standards and how they interoperate, and the design principles. We will compare the underlying IEEE 802.15.4 PHY and MAC structure with Bluetooth 4.x and IEEE 802.11 (WiFi).
Apr 4, 20162:00pm EDT
In this leadoff class, we will review history of home automation (HA) protocols, starting with the old standby X-10 protocol and comparing it with the current competing protocols, including ZigBee, RF4CE, Z-Wave, and others. We will compare the strengths and weaknesses of each and examine where Thread stands among these protocols.

Building Raspberry Pi Devices and Data Displays for the Internet of Things

Mar 25, 20162:00pm EDT
The final session of this course will consist of building a basic Freeboard Dashboard for the RPi LED flasher. Participants can follow along by way of the course slides, in building a real-time dashboard for the Raspberry Pi IoT device.
Mar 24, 20162:00pm EDT
The Freeboard.io cloud website will be introduced in this class, with a discussion on dashboards, triggers, and IO sources. Elements on URL resources from dweet.io will be demonstrated by use of a smartphone. The concepts based on this hands-on demonstration will be used in building the RPi LED Flasher Freeboard Dashboard in the final session of the weeklong course.
Mar 23, 20162:00pm EDT
This class will show participants how to modify the RPi LED flasher built in the Day 1 class to work with the dweet.io cloud website. Specific dweet.io details on programming scripts and URL resources will be explored.
Mar 22, 20162:00pm EDT
In this session, participants will learn about the world of mashups and their interaction with IoT platforms. The class will be introduced to the Dweepy Python library by investigating a Raspberry Pi-based IoT device example. Also, use of the dweet.io cloud server, a free data aggregator website, will be discussed. The hands-on lab will consist of building a dweet.io Raspberry Pi IoT device.
Mar 21, 20162:00pm EDT
Course participants will be introduced to the state of the Internet of Things with respect to microcontroller-based development platforms like the Arduino and the Raspberry Pi. This kickoff session will instruct attendees on building a RPi LED flasher that will serve as the experimental IoT device for the weeklong course.

The Internet of Things (IoT) and Analytics

Mar 11, 20162:00pm EST
One of the most important statistical techniques used in analyzing IoT data is machine learning. In this final class, we will discuss some important techniques, such as support vector machines and unsupervised learning. An understanding of the techniques is important in determining what can be done in applications that design engineers may encounter.
Mar 10, 20161:00pm EST
Now that the things have been deployed, and the data communicated and stored, we need to analyze. We will look at some examples of how this analysis is performed and used. These examples will include analysis with feedback (i.e., higher level control), analysis used for product improvement (e.g., PLM) and analysis used to understand consumer use. These last two are related, but often are done by separate groups with different goals.
Mar 9, 20161:00pm EST
Generating and communicating data is great, but we need to have somewhere to keep it. In the current environment, the perfect place is the cloud. This is where most IoT data will go and where it will be analyzed. The cloud provides ease of access, flexibility, redundancy, and unlimited growth potential. We will discuss the storage structures and Big Data formats that are used.
Mar 8, 20161:00pm EST
Getting all that data from place to place is an important element of the whole IoT system but is not generally visible. In many cases, we will have custom devices involved close to the things we are controlling. This class will discuss systems that are two way (measurement and control) and some of the controller devices that are available on the market.
Mar 7, 20161:00pm EST
To set the stage for what is to come, this opening class will look at the types of things that are out there. There are many IoT application areas, spanning industrial, medical, consumer, etc. The data analyses that are done will depend on the types of devices, so we will discuss some of these.

Hands-On Develop an RTOS Application Using freeRTOS

Feb 26, 20161:00pm EST
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. The finished code will be available to help course students follow along and compare with their own code.
Feb 25, 20162:00pm EST
In this penultimate class, we will take what we learned so far and define the tasks of our project. We will look at some simple "lightweight" elements that we may choose for our project, such as messaging, events, semaphores, and mutexes.
Feb 24, 20161:00pm EST
A common challenge of RTOS implementations is their limitation to certain chips, development boards, and toolchains. We will bring up our initial solution using the STM32F100 board and then look at how we will have to modify the code to work with our designated STM32 Nucleo processor and board.
Feb 23, 20161:00pm EST
Our toolset will be an important part of making our project successful. We will install and investigate these tools, followed by learning how to set them up, consisting of the STMicro STM32 Nucleo and the Atollic TrueStudio IDE, in tandem with the freeRTOS download.
Feb 22, 20161:00pm EST
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 hands-on design project. We will look at the freeRTOS real-time operating system and the elements that we will be using in our project.

Hands-On Design of BLDC Motor Control with Microchip MCUs

Feb 12, 20161:00pm EST
In our final class, we will describe other types of motor control implementations and provide links to resources for speeding development.
Feb 11, 20161:00pm EST
This penultimate class will dig into the details of the BLDC implementation and the debug and testing phases critical to MCU-based motor control design. The Microchip demo kit's capabilities will be explored in detail.
Feb 10, 20161:00pm EST
In this session, students will learn, in detail, the key brushless DC motor algorithm used in the hands-on design, including code.
Feb 9, 20162:00pm EST
This class will provide a background on the development environment typically found for MCU-based motor control designs. Attendees will learn the particulars of Microchip's DM330015 kit and target MCU.
Feb 8, 20161:00pm EST
This class will provide a quick refresher and overview of the key types of motors and motor control algorithms used with microcontroller-based designs.

Embedded System Design Techniques™ - Bootloader Design for Microcontrollers

Jan 29, 20162:00pm EST
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.
Jan 28, 20161:00pm EST
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.
Jan 27, 20161:00pm EST
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.
Jan 26, 20161:00pm EST
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.
Jan 25, 20162:00pm EST
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.

Designing ARM Devices Using Segger Tools

Jan 15, 20162:00pm EST
The Segger Embedded Studio includes built-in support for the Nordic nRF51822. Today's lecture will focus on using Segger Embedded Studio and a J-Link Pro to bring an nRF51822-based IoT device to life.
Jan 14, 20162:00pm EST
This class will concentrate on setting up and running Segger's embOS RTOS on our STMicro STM32F407VG-based ARM hardware platform.
Jan 13, 20162:00pm EST
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.
Jan 12, 20162:00pm EST
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.
Jan 11, 20162:00pm EST
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.
CEC Semester Eight 2015

Hands-On Acceleration of MCU-Based Motor Control Design

Dec 18, 20151:00pm EST
This final class will examine other types of motor control implementations, selected by the course students, and provide links to resources available to speed development.
Dec 17, 20152:00pm EST
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.
Dec 16, 20151:00pm EST
This class will provide a detailed look at the key algorithms used in motor control design. We will explore, hands-on, actual code. Field Oriented Control (FOC) and six-step algorithms will be covered.
Dec 15, 20151:00pm EST
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.
Dec 14, 20151:00pm EST
This class will provide a quick introduction and overview of the key types of motors and control algorithms for microcontroller-based motor designs.

Hands-On Develop an RTOS Application Using Freescale MQX

Dec 4, 20151:00pm EST
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.
Dec 3, 20152:00pm EST
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.
Dec 2, 20152:00pm EST
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.
Dec 1, 20151:00pm EST
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.
Nov 30, 20151:00pm EST
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.

Compare and Contrast Different Makes of Microcontroller Peripherals

Nov 20, 20151:00pm EST
Other important differences in peripheral implementations will be covered in this class, including USB, Ethernet, Security, and external memory interfaces.
Nov 19, 20151:00pm EST
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.
Nov 18, 20151:00pm EST
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.
Nov 17, 20152:00pm EST
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.
Nov 16, 20151:00pm EST
This class will provide an overview of standard peripheral functions so you can better see the differences between MCU manufacturer implementations.

Building IoT Devices from Scratch

Nov 6, 20152:00pm EST
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.
Nov 5, 20152:00pm EST
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.
Nov 4, 20152:00pm EST
WiFi radio costs have lowered to Bluetooth Smart radio levels, enabling us to build an inexpensive WiFi "thing" in this class. We will fill our device with code that allows it to be monitored and controlled locally or via the Internet.
Nov 3, 20152:00pm EST
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.
Nov 2, 20152:00pm EST
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.

Embedded System Design Techniques™ - Driver Design Patterns and the Internet

Oct 23, 20152:00pm EDT
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.
Oct 22, 20152:00pm EDT
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.
Oct 21, 20152:00pm EDT
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).
Oct 20, 20152:00pm EDT
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.
Oct 19, 20152:00pm EDT
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.

Standards for the Internet of Things (IoT)

Oct 9, 20152:00pm EDT
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.
Oct 8, 20152:00pm EDT
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.
Oct 7, 20152:00pm EDT
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.
Oct 6, 20152:00pm EDT
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.
Oct 5, 20152:00pm EDT
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.

Controlling Sensors Efficiently with MCUs

Sep 18, 20152:00pm EDT
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.
Sep 17, 20152:00pm EDT
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.
Sep 16, 20152:00pm EDT
Many MCU manufacturers have targeted sensor designs and provided reference designs and product examples. This class will explore some of these resources that can help you more efficiently implement your designs.
Sep 15, 20152:00pm EDT
This class will review several key MCU features - like low power, serial communications, and data processing - that are critical for efficient MCU-based sensor implementations.
Sep 14, 20152:00pm EDT
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.

Embedded System Design Techniques™ - Writing Portable and Robust Firmware in C

Sep 4, 20152:00pm EDT
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.
Sep 3, 20152:00pm EDT
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.
Sep 2, 20152:00pm EDT
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.
Sep 1, 20152:00pm EDT
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.
Aug 31, 20152:00pm EDT
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.

ARM Processors for Microcontroller Applications: Architecture for the Internet of Things

Aug 21, 20152:00pm EDT
In this final lecture we will look at programming environments available for the ARM Cortex-M series of processors. We will look specifically at tools from IAR and ARM. In addition, we will look at future directions for ARM and their partners.
Aug 20, 20152:00pm EDT
Beyond the basic SoC, ARM processors are being used in configurable devices including those with FPGAs and other types of programmable logic. We will discuss a couple of these devices and look at how the ARM processor integrates with the device to enhance functionality.
Aug 19, 20152:00pm EDT
ARM provides and architecture and the Intellectual Property (IP) for chip designers to implement devices. In this lecture we will look at several specific implementations in the basic System on Chip (SoC) market. This will not be an exhaustive list, but will give a good overview of how the Cortex-M architecture is used and will arm the student with knowledge that can be used to intelligently decide which implementation to use in a specific application.
Aug 18, 20152:00pm EDT
In this lecture we will go over the Cortex-M architecture. This includes the instruction set variations, which are many. We will also discuss power management, interrupts, memory management and related topics of the basic Cortex-M family.
Aug 17, 20152:00pm EDT
Just what is ARM (the company and the product)? In this lecture we will look at what ARM is, where it came from and give an overview of the various families of products available and their areas of application.

Developing, Testing, and Troubleshooting IPv4 and IPv6 Using Wireshark

Aug 7, 20152:00pm EDT
In our final class, we will program a FRDM-K64 demo board from Freescale Semiconductor to perform some IPv4 and IPv6 functions and monitor them with Wireshark. We will then use this to troubleshoot our application. We will close the class with some looks at the strengths and weaknesses of the program and some alternative TCP/IP tools.
Aug 6, 20152:00pm EDT
In this class, we will look at the cybersecurity features and functionality in Wireshark. We will see some ways to monitor attacks and hacks into our network. We will also look at some of the vulnerabilities in Wireshark that we need to be aware of.
Aug 5, 20152:00pm EDT
In this class, we will make use of the functionality in Wireshark to do some sniffing within our local network and learn about packet assembly and basic network traffic analysis.
Aug 4, 20152:00pm EDT
We will install Wireshark on our test computers and get familiar with the basic functions. We will look at working with various adapters on your computer as well as the basics of filtering and triggering.
Aug 3, 20152:00pm EDT
In this class, we will look at the basic structures in IPv4 and IPv6. This will allow us to understand the terms and structures that we will examine and evaluate through the rest of the course.

Hands-on SoC FPGA Design

Jul 24, 20152:00pm EDT
An example, suggested by the students, will illustrate the full development flow from project definition to a running design with selected screen shots in the class PPT. Students with the software or hardware can follow along as a homework exercise.
Jul 23, 20152:00pm EDT
In this class the process of targeting an existing development board will be demonstrated. Students without the board will still be able to follow along with the class and will see a working application using the software debugger.
Jul 22, 20152:00pm EDT
A simple example design is used in this class to demonstrate the use of the processor oriented tools in the Vivado tool suite. The on-chip processor will be configured and some simple code will be used to demonstrate how to go from an idea to a working application.
Jul 21, 20152:00pm EDT
This class will go step by step through the process of obtaining and using a typical SoC FPGA design tool chain. The Xilinx Vivado 30-day evaluation will be used and students are encouraged (optional) to download and install the software to follow along with the rest of the classes.
Jul 20, 20152:00pm EDT
FPGAs with embedded processors are powerful devices, but can be complicated to design with. This class will introduce some example SoC FPGAs, the typical design flow, target applications and resources available to speed YOUR design.

Building Raspberry Pi Controllers with Python

Jul 10, 20152:00pm EDT
This final session is a continuation of the Raspibot board discussion. We'll take a look at how to create awesome visual displays using an LED matrix cube. A discussion of the cube's construction and attaching it to the Raspibot will be presented. Final testing of the LED matrix cube with RRB and RPi.GPIO libraries will be discussed in this concluding session.
Jul 9, 20152:00pm EDT
The Raspibot board is an accessory controller that allows control of DC and stepper motors, LED matrices and LCDs, allowing basic mobile robots and electronic controllers to be built quite easily (uses the RRB library dev'd by Simon Monk). We'll discuss the board architecture, a hands-on activity of installing the Raspibot RRB library to the Raspberry Pi, and how to operate two DC motors and onboard LEDs by way of sending simple RRB scripting commands to the board using the "sudo python" IDLE.
Jul 8, 20152:00pm EDT
The Python library used in connecting the platform to the physical world for electronic controls is the RPi.GPIO code. In this session we'll investigate the RPi's GPIO (General Input Output) pins and how to enable them with the RPi.GPIO library. We'll investigate how to install the library using LXTerminal/Linux commands. The final test of the RPi.GPIO library installation will consist of controlling an LED and reading an electric switch wired to the Raspberry Pi.
Jul 7, 20152:00pm EDT
This session will include a discussion on Python, the purpose of the interpretive programming language, and the inventor who created it. A review of the Python IDLE (Integrated DeveLopment Environment) will be provided in this session. The discussion will also focus on Python 2, 3, and "sudo python" IDLEs. Also, basic hands-on scripting activities (building a simple calculator) on using Python will be presented in this session, as well.
Jul 6, 20152:00pm EDT
The Raspberry Pi is a user-friendly, credit-card-size, Linux-based computer that design engineers (and educators and Makers) can use as a rapid development platform to design products for the consumer and industrial markets. An overview of the Raspberry Pi's architecture will be explained, along with a presentation of the examples illustrating the use of this credit-card-size, Linux-based computer.
CEC Semester Seven 2015

Designing Internet Connectivity No Matter the Platform

Jun 26, 20152:00pm EDT
Today we focus on designing a base piece of Internet-capable hardware. The design can be used as an entry gateway, an intermediate node, or an exit gateway. We will also code the firmware for the aforementioned nodal functions.
Jun 25, 20152:00pm EDT
Technology provided by Anaren shines in this class, as we will drive an Anaren A20737 radio module across the Internet. We will ride the electron highway in luxury aboard Anaren's new WiFi gateway. Today's hardware project involves moving the A20737 from the factory demo board to a user-designed printed circuit board.
Jun 24, 20152:00pm EDT
The ACKme WiFi networking modules mean Numbat and Wallaby. In this lecture we also will tame an ACKme Bobcat Bluetooth module and watch it walk peacefully with a Numbat module on the Internet trail. This hardware project is based on the ACKme AMW006 (Numbat) module.
Jun 23, 20152:00pm EDT
In this lecture we will design and implement a trans-Internet Bluetooth session using Microchip's RN4020 Bluetooth Low Energy module. This class also will have you ready for designing and implementing the Bluetooth session's Internet gateway framework.
Jun 22, 20152:00pm EDT
This class will demonstrate how an $8 set of ASK radio modules can perform monitor and control operations using the Internet. Our project task for this class will involve designing and building the ASK radio entry and exit Internet gateways.

Everything You Ever Wanted to Know about Filters

Jun 12, 20152:00pm EDT
As we will have learned in Day 4, there are limitations in IIR filters that can create challenges in design and response. In this class we will look at the finite impulse response (FIR) filter and compare the design criteria as well as the resultant output of the two types of filters. We will conclude by reviewing the various filters and some of the resulting solutions, comparing the results.
Jun 11, 20152:00pm EDT
The basic parallel to the analog filter is the infinite impulse response (IIR) filter. In this class, we will look at the implementation and trade-offs of IIR filters, including looking at the code and actual responses of some examples.
Jun 10, 20152:00pm EDT
Computation - particularly with the advent of digital signal processing (DSP) - allows us to create very powerful filters that can add new capabilities. Here, we go into digital filters with a review of the transform from the continuous time domain to the sampled domain. We will look at not only the Z-transform but also some tricks and tips, such as oversampling, which allows us to simplify filters.
Jun 9, 20152:00pm EDT
As we will have learned in Day 1, a resonant circuit is affected by the circuits that exist at its input and output. In this class, we will look in depth at the addition of operational amplifiers (and in RF - other amplifiers) to make powerful and accurate filters for our applications.
Jun 8, 20152:00pm EDT
In this class, we will look at the basic resonant circuit and its time (impulse) and frequency (filtering) response. We will also briefly look at tools for designing and evaluating these circuits.

Embedded System Design Techniques™ - Mastering the ARM Cortex-M Processor

May 22, 20152:00pm EDT
One of the most important features of the ARM Cortex-M processors is their extensive focus on low-power capabilities. This makes them perfect for battery-operated devices. This session will examine low-power design techniques such as energy profiling and measurement, in addition to unique features such as low-power modes, wait-for-interrupt, and sleep-on-exit . You will learn to implement a basic sleep function on their development kits.
May 21, 20152:00pm EDT
The Cortex Microcontroller Software Interface Standard (CMSIS) is becoming a critical component in the embedded software development toolkit. This session will walk you through CMSIS: What it is and why a developer would consider using it. An application example will give attendees the switch debounce code that can be implemented on their own development kits.
May 20, 20152:00pm EDT
This session will examine the intricate details of the ARM Cortex-M architecture. The register model and system control block will be explored in detail, in addition to useful core features such as the nested interrupt vector controller and the system tick. Attendees will leave with software examples on how to optimize bit manipulation and know how to set up a system scheduler using the system tick.
May 19, 20152:00pm EDT
There is a lot that goes on behind the scenes to compile that first empty project. These details are often ignored but absolutely critical to properly mapping out and optimizing a device. This session will examine how to create a project, set up a baseline, and modify the linker and processor memory map, in addition to elucidating the compiling process. Attendees will gain a deep understanding of the microcontroller boot sequence in addition to a working LED blink program.
May 18, 20152:00pm EDT
This session will introduce the ARM Cortex-M family of processors, along with its features, instruction set and scalability. We will examine an STM32 Nucleo development kit utilizing a Cortex-M0+, along with how to set it up and use it for prototyping work. Attendees will walk away from this session with the knowledge to get the platform up and running.

Designing Low Power Systems using Battery and Energy Harvesting Energy Sources

May 8, 20152:00pm EDT
Drawing your input from the first two days of classes, a set of example designs will be used to illustrate the key concepts covered in class. This will also provide a head start for students that have particular design objectives in mind for their next low-power system project.
May 7, 20152:00pm EDT
Example MCUs and FPGAs will be described, as well as the key features needed for low-power operation -- either from batteries or energy harvesting approaches. This class will also describe software and hardware tools that are helpful in developing low-power applications.
May 6, 20152:00pm EDT
Energy harvesting provides a new source of power for MCU and FPGA designs. Energy is all around us; we just need to turn it into power that our devices can use. This class will describe the most common energy harvesting techniques and how to use them for MCUs and FPGAs.
May 5, 20152:00pm EDT
Batteries are used in a wide range of MCU- and FPGA-based applications. Understanding the key power requirements and how to use power efficiently provides the basis for all battery-operated applications. This knowledge is power.
May 4, 20152:00pm EDT
This class will lay the groundwork for mastering the key concepts that will come up during the rest of the course. The key requirements for low-power systems - both when powered from batteries or from energy harvesting systems - will be described.

Taking the Internet of Things to the Cloud

Apr 24, 20152:00pm EDT
In our last class, we will finish up the design of the K64 IoT node and look at the requirements for the associated cloud application(s) and data store. We will also look at some other resources for developing cloud-based IoT solutions.
Apr 23, 20152:00pm EDT
As IoT/IIoT nodes become more scalable (numerous), they will also need to become more autonomous. In this and the next class we will look at a possible solution via a representative “low-end” ARM microcontroller, using the Freescale K64 ARM Cortex M4 controller on an inexpensive FRDM-K64 board and Oracle Java ME to directly interface to a cloud application and data store.
Apr 22, 20152:00pm EDT
After the Day 2 class, where we investigate procedures for interfacing with cloud services and storage solutions, we will look at methods in current use to interface IoT/IIoT networks to cloud computing and storage. We will also look at tools for developing and monitoring cloud applications, using Google as an example.
Apr 21, 20152:00pm EDT
This class will cover a brief history of the cloud, identify the major providers of cloud services, and examine the needs for interfacing to these services. We will compare high-level services such as Google Drive and Dropbox with the basic toolbox of services from Google Cloud Services, Amazon, and others.
Apr 20, 20152:00pm EDT
In this class we will take a look at the definition and structure of the Internet of Things and the Industrial Internet of Things, review some competing protocols that are being used, and identify some of the data storage and analysis needs of the IoT and IIoT.

Engineering Systems for Emergency Preparedness

Apr 10, 20152:00pm EDT
It may not be ideal or comfortable by any means, but surviving a week is doable. But what about longer term situations? You will need systems for growing food, animal care, as well as efficient-energy systems. Designing systems that can help automate many of these extended survival requirements is not difficult, but they need to be intelligent to be useful in the long term. In a long-term disaster, survival favors the prepared and well engineered.
Apr 9, 20152:00pm EDT
Preparations need to sustain basic life-support systems and services even for short durations. Such systems we will discuss include those for energy, water, air, light, heat, cooling and refrigeration, medical, communications, filtration, and tools. These systems must not be wasteful. Design of smart environments means low-energy conditions and automated systems to restrict water, turn off unnecessary systems and communicate with each other.
Apr 8, 20152:00pm EDT
What we store and how long we need to store it are critical. Some supplies will come naturally in certain regions, and we can depend on them -- like rain and snow supplying water. We need foods that won’t spoil in storage. Short-term supplies are not a problem, but long term we will need other solutions. Our systems must be designed to operate in many modes, including multi-fuel engines, wide-range, efficient and flexible power regulators, protection circuitry, redundancy and fault tolerance.
Apr 7, 20152:00pm EDT
Where we live affects what we need to survive. It also can determine the types of disasters that we are prone to and the types of structures, supplies and equipment needed to protect ourselves. These are also affected by population densities. Inhabitants of cities have different concerns compared to rural dwellers. Designing a system to meet these challenges means extended temperature ranges, robust electromechanical systems and serviceability.
Apr 6, 20152:00pm EDT
In most cases we will need to have survival systems for a few necessities. Having an independent air supply may not be needed, but having a fresh and clean supply of water may. On Day 1 we will examine what is required to sustain life short and long term and how these systems should be engineered. These overview examples will be covered in more detail in successive days. We will also analyze past disasters for valuable lessons.

Getting Hands-On with Cypress' PSoC

Apr 3, 20152:00pm EDT
This final session is a continuation of the PSoC BLE CapSense proximity sensor project. In this last class, you will walk away with the knowledge of how to connect the integrated circuit with the CySmart PC tool using the CapSense proximity sensor discussed in the Day 4 class. Lastly, the Make PSoC BLE challenge will be presented, as well.
Apr 2, 20152:00pm EDT
The ability to improve process and product performance using wireless techniques is a driving force of product innovation today. Cypress Semiconductor's PSCoC BLE -- for Bluetooth Low Energy -- is a development platform that provides such innovation for engineers working in the consumer and industrial markets. In this session, PSoC BLE will be introduced via the PSoC BLE Pioneer Kit. The highlight of this session will be a PSoC BLE CapSense proximity sensor project.
Apr 1, 20152:00pm EDT
The PSoC is capable of being used in a multitude of applications and products. One design technique that allows PSoC to be interactive within its environment is known as physical computing. Definitions of physical computing and examples will be examined in this session. We will also show you how to build a touch interface using Cypress Semiconductor's CapSense technology.
Mar 31, 20152:00pm EDT
This session will include a discussion on how to start using PSoC for electronics project prototyping. Definitions of key terms used in the development of PSoC projects will be explained along with the differences between the PSoC Designer and PSoC Creator development tools. In this class, we will look at a hands-on project of controlling a LED with PWM (pulse-width modulation) using a PSoC.
Mar 30, 20152:00pm EDT
The Programmable System-on-Chip is a user-friendly rapid development platform used by engineers (and educators and Makers) to design products for the consumer and industrial markets. An overview of the PSoC's architecture will be explained, along with a presentation of the examples illustrating the use of this Programmable System-on-Chip component.

Implementing Motor Control Designs with MCUs and FPGAs: An Introduction and Update

Mar 13, 20152:00pm EDT
MCU and FPGA manufacturers often provide complete reference designs to help accelerate motor control implementations; some kits even provide example motors. This class wraps up the course by demonstrating some development kits and reference designs that might be appropriate for your next design.
Mar 12, 20152:00pm EDT
Once the hardware features are understood, it is useful to see what software tools and techniques are available to simplify the development of common motor control algorithms. This class provides an overview of some of the common tools through some typical application examples.
Mar 11, 20152:00pm EDT
Motor control algorithms have some common functions and peripherals that are key elements in any motor control implementation. This class provides an overview of several of the most common and useful MCU and FPGA features that enable motor control implementations, presenting some common application examples.
Mar 10, 20152:00pm EDT
Motor control algorithms have evolved over the last several years to take advantage of the increased processing power and features available on modern MCUs and FPGAs. This class provides a short history of motor control algorithms, showing how key MCU and FPGA capabilities have enabled new, more efficient algorithms.
Mar 9, 20152:00pm EDT
Motor control is a pervasive application for MCUs and a growing application area for FPGAs and thus has significantly influenced the evolution of these devices. This introductory class provides a quick overview of the markets, devices, key features and development environment available for modern MCU devices.

Baremetal C Programming for Embedded Systems

Feb 27, 20152:00pm EST
One technique to minimize project costs and time to market is to leverage a reusable code base. A code base usually isn't developed overnight and requires careful thought and consideration in order to maximize the benefit. This session will cover how to develop a reusable code base starting with the design of APIs. An example will be provided on how to create a portable EEPROM chip driver that pulls together concepts and source from the GPIO and SPI drivers in earlier sessions.
Feb 26, 20151:00pm EST
This session will demonstrate common design patterns that are used to develop embedded software. A continuation of driver design concepts will be presented to include a discussion on blocking vs non-blocking drivers with a reusable SPI driver example. There will also be a look at data handling techniques such as circular buffer implementation, leaving the attendee with functional, reusable code that can be used in their next design project.
Feb 25, 20151:00pm EST
This session will walk attendees through three different methods for developing drivers. The methods will start with the simplest and least reusable through an advanced technique that is easily portable to multiple systems. Attendees will walk away with an understanding of how to use bit manipulation, structures and unions in driver design, in addition to portable driver design concepts and example driver source.
Feb 24, 20152:00pm EST
It isn't uncommon for developers to default to a real-time operating system (RTOS) when developing an embedded system. As it turns out there are a number of scheduling techniques that can be used to achieve real-time performance before an RTOS is even necessary. This session will explore baremetal scheduling techniques, RMA theory and analysis while peering into the time domain of the microcontroller. Attendees will be equipped with an expert understanding of scheduling techniques.
Feb 23, 20151:00pm EST
This session will review important concepts every developer needs to understand when developing an embedded system using C. These concepts will form the foundation for topics the rest of the week. These concepts will include a look at scope, proper register access techniques, understanding complex declarations, function pointers, memory allocation, interrupts and assertions to name a few. Attendees will walk away with an understanding of the fundamentals of C and some advanced concepts too.

Embedded Development Using Microchip Microcontrollers and the CCS C Compiler

Feb 13, 20151:00pm EST
The CCS C Compiler has a wealth of built-in serial EEPROM, serial SRAM, real time clock and digital potentiometer IC drivers, enabling creation of unique device drivers for AM/FM data radio modules, WiFi modules, Bluetooth modules, sensor modules, digital control modules and LCD panels. The CCS C Compiler also can code an interface between the smart module and a PC application. This lecture will demonstrate how driver coding can be done quickly.
Feb 12, 20152:00pm EST
Bluetooth Low Energy technology is bringing phone-based sensor monitor and control applications to the forefront. Putting together the embedded hardware and sensor firmware is the relatively easy part. Placing those pretty widgets on the phone's LCD and communicating with them can be tricky. This lecture will show you how the CCS C Compiler simplifies embedded BLE programming on the PIC as well as the phone.
Feb 11, 20152:00pm EST
TCP clients and servers have become the "thing" in the embedded world. The Microchip PIC microcontrollers have the necessary hardware attributes to participate in this new "world" and the CCS C Compiler has the firmware tools to support them. After today's lecture, you will be able to use the CCS C Compiler to fling bits around on LANs, WANs and the internet.
Feb 10, 20151:00pm EST
When it comes to embedded USB with a PIC microcontroller, you namethe task and the CCS C Compiler can probably do it. Today, with the help of the CCS C Compiler, we will breathe life into USB-enabled PIC devices. We will use the CCS C Compiler to create a USB bootloader, a USB HID class device, a USB CDC device and a USB-to-serial converter device.
Feb 9, 20151:00pm EST
Microchip has recently announced a number of 8-bit microcontrollers that contain the Enhanced Mid-Range Core. This lecture will demonstrate how to exploit the advanced features of these new microcontrollers using the CCS C Compiler.

IPv6 for Micros - Hands-On

Jan 30, 20152:00pm EST
For our final day we will wrap up by testing out our design and seeing if we met our objectives with the IPv6 stack that we chose. We will then look at IPv.6 solutions from other sources, including stacks included in currently available real-time operating systems (RTOS).
Jan 29, 20152:00pm EST
One common function of M2M or IoT nodes is to use HTTP to communicate via simple web pages. This allows a sensor (and perhaps control) node to interface with a human via a web browser as well as with other machine nodes. We will design and build a simple web server on our target board to monitor a single input variable.
Jan 28, 20152:00pm EST
We will begin our development by setting up and testing out some simple IPv6 functions: Ping, Neighbor Discovery, and the sending and receiving of simple TCP and UDP packets.
Jan 27, 20152:00pm EST
Our "hands-on" environment for this class will consist of the inexpensive Freescale FRDM-K64F development board, the Kinetis Development System IDE (downloadable free from Freescale), and the FNET open source IPv.6 stack that is downloadable from Sourceforge.net. We will look at the setup needed to develop our defined project, as well as some tools we will need, such as Wireshark.
Jan 26, 20152:00pm EST
A review ofIPv.6 and its major differences from IPv.4, including some of the challenges of implementing it on smaller microcontrollers. We will also look briefly at IPv.6's role in the developing standards for the IoT and how we may wish to use our design to be a part of that network. We will then define our project and what we'll accomplish for the week.

Programmable Logic - How do they do that?

Jan 16, 20152:00pm EST
How do the software tools translate your design into the configuration bit streams needed to configure your programmable device? This class will provide an introduction to many of the key parts of the common tool flows and an understanding of how they interact with the hardware infrastructure described in the previous classes.
Jan 15, 20152:00pm EST
An even higher level of specialized logic that is being added to many high-capacity programmable logic devices are complete MCU subsystems. These 'hardened' blocks have processors, memory and peripherals- all the elements needed for a complete processing subsystem and the programmable logic can be used for many custom features.
Jan 14, 20152:00pm EST
The general purpose nature of programmable logic switches and logic elements are very flexible, but inefficient for implementing common high-level building blocks for most digital sub-systems. Most programmable logic devices add some fixed function elements to avoid these inefficiencies and this class will describe the most common ones.
Jan 13, 20152:00pm EST
Once the underlying configuration technology is understood, it is important to understand how the logic elements and their associated switches are implemented. This class will give some examples showing how logic elements and switches can be used to create a general purpose programmable fabric used in most modern devices.
Jan 12, 20152:00pm EST
Programmable logic starts first with the technology used to implement the configurable logic that makes up a programmable logic device. This class will review the primary technology used to implement the configurable elements common to all programmable logic devices.
CEC Semester Six 2014

An Introduction to Web Application Security

Dec 19, 20142:00pm EST
Does your Software Development Lifecycle have a stage for discovery and mitigation of vulnerabilities? Is it at the beginning, the end, or throughout the process? Today we will address how to apply prevention and mitigation to your personal and company processes.
Dec 18, 20142:00pm EST
In order to prevent Cross-site Scripting (XSS) vulnerabilities from occurring, developers must be very careful about where data comes from and how it is rendered. On Day 4 we will talk about processes and strategies for avoiding this class of vulnerability.
Dec 17, 20142:00pm EST
Most web applications require some sort of authentication and authorization but how do credentials need to be protected while in transit and at rest? This class will address those issues as well as the tradeoffs between security and convenience that need to assessed and addressed.
Dec 16, 20142:00pm EST
Probably the best known and among the most dangerous of exploits, injection vulnerabilities can result in information disclosure, tampering, denial of service, and elevation of privilege. This session will mostly focus on SQL injection but will address others forms of injection including NOSQL database injection and OS command injection.
Dec 15, 20142:00pm EST
This introductory session will touch on major AppSec concepts and definitions, and why having an AppSec strategy is critical for any company who has valuable data that is accessed either publicly on the internet or within the confines of the your company's network.

An Introduction to Embedded Software Architecture and Design

Dec 5, 20142:00pm EST
This session will summarize and review everything that was discussed in previous sessions by examining the software architecture of a UAV. These fascinating flying systems have a lot going on and wouldn't be scalable and reusable if it weren't for the proper design and selection of the right software architecture.
Dec 4, 20142:00pm EST
Getting the right architecture is important but putting that architecture into practice is just as critical. This session will walk through how to take an architecture and move it into the design and implementation phases. Tips and tricks will be provided on how to make the transition with the result being an elegant and robust software system.
Dec 3, 20142:00pm EST
This session will explore real-world considerations when designing an embedded software architecture. Real world examples will be given and comparisons made between different architecture types that solve a problem but may or may not be the correct architecture of choice. Examples include polling, interrupts and event driven systems.
Dec 2, 20142:00pm EST
A number of techniques have been developed over the years to assist engineers in designing an architecture that meets their system requirements. One tool that has been extremely popular is the use of UML. This session will explore the use of UML to design an embedded software architecture. The UML toolset will be explored such as the use of sequence diagrams, state machines, state charts and more!
Dec 1, 20142:00pm EST
This session will introduce what an embedded software architecture is and what it is not. It will provide an overview of some basic software architectures used in real-time embedded software development. Attendees will walk away with the knowledge of why designing a software architecture up front is critical to successfully develop a product in addition to the basic steps to go about identifying the architecture that should be used.

Analog Design for the Digital World

Nov 21, 20142:00pm EST
For our final day we will wrap up by looking at the challenges of designing as well as testing analog circuits, particularly in mixed signal design. We will look at analog design and simulation tools including SPICE (around since the mid-70's!), test methods including probe loading considerations and other topics.
Nov 20, 20142:00pm EST
As much as we want to keep our analog and digital circuits separated, we still need them to talk to one another. In this class, we will look at the different types of analog to digital (A/D or ADC) and digital to analog (D/A or DAC) converters and some of the tradeoffs as well as design criteria.
Nov 19, 20142:00pm EST
Ground loops, digital noise, EM radiation are all issues that we must face in mixed-signal design and test. In this class we will look at some of the design principles of keeping digital, near field, and RF noise out of our analog circuits.
Nov 18, 20142:00pm EST
In this class, we will look at the RLC resonant circuit, both designed and parasitic. Then we will use these circuits with op amps and other active circuits to build some simple filters. We will touch on the differences between these analog active filters and 'equivalent' digital filters.
Nov 17, 20142:00pm EST
We will start with a review of the ideal versus the real-world operational amplifier (opamp or op amp) and how to specify and basic usage of the op amp. With the new trend to include op amps in many new microcontroller chips, we will look at the caveats and proper usage of these analog circuits that are included in digital controllers.

Protect your Hardware from Hacking and Theft

Nov 14, 20142:00pm EST
This class will pull together information from all the previous classes and illustrate the described techniques using a detailed example design. Several techniques outlined in the previous classes will be used to protect the example design from tampering, reverse engineering, copying and from network-based attacks on security keys and boot blocks, which are two of the most common and most aggressive forms of remote attacks.
Nov 13, 20142:00pm EST
Once your hardware is deployed it's a target, either directly by "invasive" probing of the actual board or via network based attacks. Protecting your hardware from these threats requires additional levels of protection and more complex algorithms and techniques. Luckily manufacturers provide simplifying features and capabilities that can be used to protect field deployed systems.
Nov 12, 20141:00pm EST
This class will review several of the current devices that include security capabilities that can be used to protect your design from hacking and theft. Some MCUs, FPGAs and CPUs now include key security features that can be used to protect your design. Additionally, specialized peripherals, memories and accelerators are also available for adding protection. Examples of all of these devices will be described.
Nov 11, 20142:00pm EST
This class will cover the key techniques used by modern devices to protect design IP from the most common threats. Starting with simple approaches to tamper protection, and then moving on to protection from copying and cloning, this class will begin to introduce key devices and features needed to successfully protect your design.
Nov 10, 20142:00pm EST
This class will review key concepts from the December 2013 class and lay the groundwork for describing the implementation details you need to be able to select, program and design with devices you can use to protect your valuable IP. Protection from reverse engineering, copying, cloning, hacking and tampering will be the focus of the course.

Engineering Principles behind Advanced User Interface Technologies

Nov 7, 20142:00pm EST
Science fiction comes true more than any other type of fiction and science fiction has been warning us as to what we can become if we don't take precautionary steps to guard our humanity. In this last class day, we will discuss VR, implants, neural interfaces, and the constant connectivity we are already beginning to embrace.
Nov 6, 20142:00pm EST
If a picture is worth 1,000 words, then video is worth 1,000 pictures if the video is clear and usable. Handhelds as well as desktop use 2-D displays, but is that changing? Today, we will examine projection systems, virtual image technology, and the emergence of holographic display systems.
Nov 5, 20142:00pm EST
Real time acquisition and processing of data opens the door to usable speech technology as well as camera based 3-D gesture detection. Speech can be speaker dependent (as in security applications), or speaker independent as in general command interfacing. 3-D gestures can direct operations, especially in the next generation of wearable computers.
Nov 4, 20142:00pm EST
Touch technologies are the fastest growing technology in modern devices. Anything that has a display had better have some form of touch, and several flavors exist. This day of the course looks at different touch technologies, how they work, and what is needed to interface to them.
Nov 3, 20142:00pm EST
Join this discussion on modern electronic input interfaces in analog and digital realms, including digital open state conditioning (pull-ups and pull-downs), matrix and multiplexing, scanning technologies, linear joystick, mouse, and an overview of touch. We will also touch on modern high volume display and indicator technologies.

How to Design & Build an Embedded Web Server: An Embedded TCP/IP Tutorial

Oct 24, 20142:00pm EDT
In this final lecture of the series, we will shed the wires and scratch-construct a WiFi-based web server. Along the way we will examine the differences in traditional wired web servers and wireless web servers.
Oct 23, 20142:00pm EDT
Web servers need web pages. In today's lecture we will craft some web pages that will allow human and electronic web clients to access the resources provided by the embedded web server.
Oct 22, 20142:00pm EDT
Today's lecture will cover basic TCP/IP concepts. We will also examine some common protocols that are used on LANs and the Internet. The TCP/IP concepts presented will be supported by actual Wireshark protocol analyzer captures.
Oct 21, 20142:00pm EDT
Today, try an 8-bit Ethernet-based web server variant. Not everything needs the compute power behind a 32-bit web server. Once again, we will scratch-build the hardware and write some code to bring it online
Oct 20, 20142:00pm EDT
Dive in by designing and scratch-building a 32-bit microcontroller-based web server. This Ethernet-based web server uses the LAN8720 PHY IC in the physical layer design. Along the way, we will put together just enough supporting firmware to bring our web server online.

MCU Software Development - A Step-by-Step Guide (Using a Real Eval Board)

Sep 26, 20142:00pm EDT
This class will bring together all the material covered in previous classes to show an example design and take it through the entire tool flow. Students will be able to follow along using just the free software - or using the evaluation board if they have one.
Sep 25, 20142:00pm EDT
Example designs offered with the evaluation board will be described and used to illustrate some of the detailed elements of the development tools, including some key "tricks" and "techniques" that improve development efficiency.
Sep 24, 20142:00pm EDT
The tool flow for developing software for the Atmel XMEGA MCU family will be described, and the process for downloading and running example designs will be shown, so that interested students can follow along using their own versions of free, downloadable tools.
Sep 23, 20142:00pm EDT
This class will use the Atmel XMEGA MCU family and the associated evaluation board as an example target for our software development efforts. The interactions between the CPU and many common peripherals will set the stage for designing software efficiently with a wide range of MCUs.
Sep 22, 20142:00pm EDT
This class provides a quick overview of the main software tools used in MCU development, with a focus on tools that can be used with the Atmel XMEGA AVR and the associated evaluation board. However, the general concepts apply to virtually any MCU.

Get Ready for the New Internet: IPv6

Sep 12, 20142:00pm EDT
For our final day we will wrap up by looking at the challenges of making legacy IPv.4 equipment and traffic work alongside IPv.6-compliant systems, as well as some of the challenges of implementing IPv.6 in embedded systems such as IoT nodes.
Sep 11, 20142:00pm EDT
With the elimination of the old concept of sub-nets and new routing protocols, IPv.6 provides more powerful routing capabilities, allowing more true end-to-end communications between any two nodes on the network. We will look at the new routing schemes, compare these to more familiar IPv.4 methods, and look at how the two can be made to work together through the lengthy transition.
Sep 10, 20142:00pm EDT
One of the primary reasons for IPv.6 is to answer the need for more addressing capability. Along with the new capabilities of the 2128 or approximately 3.4×1038 addresses, there are new methods for assigning addresses, assigning broadcast or multicast messages, and re-defining the previous concept of sub-nets. We will look at these new standards and how they compare to the methods under IPv.4.
Sep 9, 20142:00pm EDT
In this class, we will look at the traditional structure of IPv.4 and how this changes under IPv.6.
Sep 8, 20142:00pm EDT
We will look at the history of the Internet Protocol from the first public version (v.4) and the reasons for the transition to version 6.

Embedded Software Development With Python & the Raspberry Pi

Aug 22, 20142:00pm EDT
Sensor networks and moving data through the internet and web are becoming absolutely critical with concepts such as the Internet of Things on the near horizon. Each of the previous sessions have covered critical building blocks to create a system using a single-board computer. This session pulls it all together by providing an example weather station that interfaces to sensors such as humidity and temperature. The data is streamed through the Internet and accessible via a website.
Aug 21, 20142:00pm EDT
Writing software can be fun, but when the software controls hardware and starts interfacing with the external world is when things really get going! The Raspberry Pi has a number of common interfaces that can be used to communicate with the external world and this session will cover how to use Python to access each of those interfaces. By the end of this session attendees will be ready to connect just about anything!
Aug 20, 20142:00pm EDT
This session will dig into the details of single-board computers and how they are revolutionizing how we do things. The famous Raspberry Pi hardware will be discussed in addition to how to set up the hardware for experiments in future sessions. This will include a look at available operating systems, tools, and expansion boards that can be used to quickly get a prototype system up and running.
Aug 19, 20142:00pm EDT
This session will present basic concepts on how to design embedded software using Python. Concepts such as lists, dictionaries, string, and file system manipulations are a few examples of what will be covered. How to develop object-oriented code and even how to import C code will also be presented. Example scripts will be provided so that attendees can follow along and take the language for a spin.
Aug 18, 20142:00pm EDT
This session will introduce the Python programming language. It will provide an overview of where to get it, how to install it, and why an embedded engineer should learn Python. Since most embedded engineers are familiar with C, an in-depth comparison between language syntax will be covered to help attendees quickly leap into this powerful language.

Introduction to Linux Device Drivers

Aug 8, 20142:00pm EDT
This final class will look at block devices, which are storage media that can handle random accesses. Unlike character devices, block devices can hold file-system data. In addition, we'll discuss how Linux supports storage/block buses and devices.
Aug 7, 20142:00pm EDT
In today's class, we will learn about the Linux kernel's input subsystem. This subsystem handles various input devices such as keyboard, mice, etc., with uniformity. An event interface is used to interface the input devices to specific applications. In addition, we'll learn about the event system as well as device abstraction.
Aug 6, 20142:00pm EDT
The serial port is a basic communications channel that's used in many systems. In general, a UART is used to implement the serial ports. These ports can be used for terminal sessions, dialup, and devices that use a serial transport, including Bluetooth devices. In this class, we will learn about writing drivers for serial devices.
Aug 5, 20142:00pm EDT
Character drivers are fundamental driver types in the Linux kernel, while the byte-oriented driver is referred to as a character driver. Majority of device drivers in Linux fall into this category. We will learn about character drivers and run through a sample character-driver development. The basic file operations and creation will be taught as well.
Aug 4, 20142:00pm EDT
This class will cover the basic aspects of the Linux kernel programming, and we'll differentiate between the kernel and user space. It's a well-known fact that there are certain norms to communicate between the kernel and user space. Hence, we'll cover the APIs needed to enable this communication. In addition, we will look at how to load and unload device drivers on running systems.

Design Products With Bluetooth Low Energy

Jul 25, 20142:00pm EDT
Em-Browser gives the developer total control of the embedded systems resources. Today we will use Em-Browser and an iPhone to emulate and debug an application targeting our home-grown B-SMART PIC32MX reference design.
Jul 24, 20142:00pm EDT
Today we will put on our hardware hats and design and assemble a home-grown Anaren A2541 BLE embedded device hosted by a PIC32MX695F512H. The reference design concepts exposed in today's lecture can be applied to most any microcontroller that supports the C programming language.
Jul 23, 20142:00pm EDT
A schema is simply a description of available embedded resources. Today we will create a schema based on the embedded resources of the Digilent ChipKIT MX3 development board. We will also examine the firmware that is automatically generated as a result of the schema build process.
Jul 22, 20142:00pm EDT
In today's discussion we will define Hardware Abstraction Layer (HAL) functionality and code a specialized HAL for the Digilent ChipKIT MX3's PIC32MX320F128H microcontroller.
Jul 21, 20142:00pm EDT
Today's lecture will feature the Ana ren B-SMART BoosterPack development tool. The BoosterPack will be coupled with a Texas Instruments MSP430 LaunchPad development board to provide a working out-of-the-box MSP430-to-iPhone Bluetooth application. No Bluetooth or MSP430 knowledge is required.

Designing With ARM Cortex-M4 (& a Real Dev Board)

Jul 11, 20142:00pm EDT
This class will bring together all the material covered in previous classes to discuss some designs suggested by students to see how they might be implemented most efficiently. Existing reference designs using the STM32F3 family will be used as the starting point for customization efforts.
Jul 10, 20142:00pm EDT
Example designs offered with the DISCOVERY kit will be described and used to illustrate some of the types of designs the ARM Cortex-M4 is specifically efficient at implementing. At the end of this class the student should be comfortable running example designs themselves.
Jul 9, 20142:00pm EDT
The tool flow for programming the STM32F3 MCU family will be described and the process for downloading and running example designs will be shown so that the interested student can follow along using their own versions of free, downloadable tools.
Jul 8, 20142:00pm EDT
This class will use the STM32F3 M CU family as an example implementation using the ARM Cortex-M4 CPU. The interactions between the CPU and many common peripherals will set the stage for designing efficiently with a wide range of ARM Cortex-M4 implementations.
Jul 7, 20142:00pm EDT
This class provides a quick overview of the ARM Cortex-M4 CPU architecture and how to use the key features to more efficiently implement common MCU-based designs. A comparison to other ARM CPU families will help round out your understanding of this important CPU family.
CEC Semester Five 2014

The Industrial Internet of Things (IIoT)

Jun 27, 20142:00pm EDT
For our final day we will wrap up by looking at the predicted growth areas and the opportunities for new development in order to enable a safe and robust IIoT for the future. Bring your crystal ball and shopping lists!
Jun 26, 20142:00pm EDT
The greatest danger when we have literally billions of devices, most without human oversight, communicating critical data with one another is data security. Data theft, alteration, and denial of service will all be crucial potential weaknesses in the IIoT. In today's class we will look at the challenges and what has been done so far to address these, from node-level security to gateway security solutions.
Jun 25, 20142:00pm EDT
No matter what carriers are used in the physical layer of communications in the IIoT, there will need to be a robust, scalable, and universal addressing and communications backbone. Most implementers and experts agree that Internet Protocol version 6 (IPv.6) will be the backbone on which the IIoT will be built. Today's class will cover a quick overview of IPv.6 and its improvements and differences from the more familiar IPv.4 that is still the standard, particularly in embedded systems.
Jun 24, 20142:00pm EDT
In this class, we will look at the primary growth areas of IIoT and some of their unique challenges - and, where applicable, where some of these challenges have been met.
Jun 23, 20142:00pm EDT
We will look at the history of the Internet of Things and what strides have been made so far, including some of the unique definitions that have been made for the IoT itself. And we'll explain how IoT differs from IIoT.

Get Your Project Started With Arduino

Jun 13, 20142:00pm EDT
In the early 70s handheld electronic games were popular. These electronic handheld devices have been replaced with video game consoles and iPhone and Android apps. In this final session, an Arduino electronic game will be discussed.
Jun 12, 20142:00pm EDT
The ability to improve process and product performance using nature is the technological innovation of today. Biomimicry is being used in R&D facilities as a design tool to improve future product performance and function. Definitions and an example of a biomimicry machine will be discussed today. Also, a biomimicry device using an Arduino will be explained, as well as a temperature-sensing example.
Jun 11, 20142:00pm EDT
The Arduino is capable of being used in a multitude of applications and products. One design technique that allows the Arduino to be interactive within its environment is known as "physical computing". Definitions of physical computing will be examined in the class along with a tilt-sensing servo motor controller design example.
Jun 10, 20142:00pm EDT
The discussion will focus on how to start using Arduino for electronics projects prototyping. Definitions of key words used in the development of Arduino projects will be explained along with the following topics: Arduino IDE; what is a Sketch; and basic Arduino projects.
Jun 9, 20142:00pm EDT
The Arduino is a user-friendly electronics rapid development platform used by engineers, educators, and makers to make awesome products for consumer and industrial markets. An overview of the Arduino will be explained along with the following topics: What is an Arduino; website sources for Arduino; what can you do with an Arduino; example projects; and the Arduino architecture.

Programming Embedded Systems in C++

May 23, 20142:00pm EDT
In this session a practical application of C++ is described, which is directly relevant to embedded developers: the implementation of read-only ports. The discussion is extended to consider further use of C++ to enable easy use of peripheral hardware.
May 22, 20142:00pm EDT
In this session a practical application of C++ is described, which is directly relevant to embedded developers: use and management of non-volatile memory.
May 21, 20142:00pm EDT
Application software normally interacts with a real-time operating system by means of a library of function calls. C++ code may also work in this way, but in this session an approach to using the object-oriented capabilities of C++ to define a more flexible interface is described.
May 20, 20142:00pm EDT
As most embedded programming is currently performed using C, it is likely that developers will need to transition their code and their working practice to C++. This session proposes a strategy that enables the benefits of C++ to be realized quickly and incrementally.
May 19, 20142:00pm EDT
This session reviews some key features of the C++ language that are of interest to the embedded software developer. Also, some language features and implementation details that may be troublesome are highlighted and explained.

The Man-Machine Interface

May 9, 20142:00pm EDT
We will discuss how we control and manipulate this technology, and how this technology will be able to control and manipulate us. Very few of us could survive a real societal, social, or environmental meltdown. As many of us embrace the new awareness and consciousness that will be direct neural connectivity to an even more vast machine, our individuality may be overcome with the need for connectivity to sustain our jobs, and even our lives. Welcome to the Machine.
May 8, 20142:00pm EDT
We will look at ways in which security, identification, privacy, and individuality will be affected. We are constantly being surveyed, judged, evaluated, classified, etc. The technologies that will be "marketed" to us will seemingly solve problems and have desired features, but will require us to be an even more tightly coupled part of the machine. This includes physical control of the outside world with our minds, as well as the outside world being able to control our minds.
May 7, 20142:00pm EDT
While researchers and select vendors may have access to some of tomorrow's technology, for the most part, the next generation is in the wings. Modern processor densities, performance levels, and communications links allow high-level distributed processing environments to surround us each within our own little electromagnetic bubble. These Personal Area Networks will continue to interface and graft as we become electro-bionoids, providing us with ever-increasing levels of control and information.
May 6, 20142:00pm EDT
We will look at how the electronics age has rapidly filled our modern-day lives with machines and interfaces that we depend on. The machine we already live inside sustains us and our ability to interface with it helps us advance. While early machine interfaces were large, bulky, electro-mechanical assemblies, time has given way to streamlined and efficient technology for presentation and display of data, as well as clever ways to interact with machines.
May 5, 20142:00pm EDT
We will begin by looking at how we developed as a species in conjunction with our machines, examine driving factors and necessities that spawned inventiveness, and look at the early inventions that helped us survive and advanced us significantly. We will review inventions that pioneered the user interfaces and how machinery has evolved to become safer and easier to use, and to provide improved productivity.

Creating & Testing Your First RTOS Application Using MQX

Apr 25, 20142:00pm EDT
Now that our code is written, we need to be able to test and debug it. In this 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.
Apr 24, 20142:00pm EDT
We will now write our other tasks, the other code needed, and compile!
Apr 23, 20142:00pm EDT
Given the tasks that we will need and their operation, we will create the code for our first task.
Apr 22, 20142:00pm EDT
In this class, we will block out our code and define what tasks will need to be written and how they will need to interact. We will look at the elements or modules that we will need to make use of in the RTOS.
Apr 21, 20142:00pm EDT
In this class, we will define our project and select our target processor. We will be using the inexpensive KWIKSTIK evaluation board from Freescale so that those who wish may follow along. We will look at the MQX RTOS and what elements we will need for the project.

Understanding Pressure Sensors

Apr 11, 20142:00pm EDT
The rules can change when sensor specifications exceed those for high-volume applications. High precision and accuracy sensors, as well as measurement extremes, often dictate different sensor technologies. This lecture will explore a few of the more challenging situations.
Apr 10, 20142:00pm EDT
Design considerations for interfacing sensors vary depending on the sensor's output and the application's requirements. This session will address some of the more common issues.
Apr 9, 20142:00pm EDT
In this class, our lecturer discusses the development of a smart sensor from concept (including the physics of the base sensor) through the design trade-offs and manufacturability issues to deployment.
Apr 8, 20142:00pm EDT
In this session, our expert addresses calibration, linearization, and signal integrity techniques for piezoresistive pressure sensors, perhaps the most common sensing technique.
Apr 7, 20142:00pm EDT
While pressure sensors provide one of the most frequent physical measurements, these sensors also have several nuances that can cause problems for those who do not work with them on a frequent basis. Our lecturer will discuss the issues in this class.

Pick (& Implement) the Right PIC MCU

Mar 28, 20142:00pm EDT
Today we will implement an embedded WiFi solution using a 32-bit PIC microcontroller and the Harmony development environment.
Mar 27, 20142:00pm EDT
A variety of scalable embedded Ethernet solutions are available. In today's lecture we will implement a number of Ethernet hardware designs, which are based on Ethernet-enabled PIC microcontrollers and external MAC/PHY devices.
Mar 26, 20142:00pm EDT
USB host and device designs are the lecture topics of the day. Today we will implement USB host and USB device hardware designs, which are entirely based on PIC microcontroller USB engines.
Mar 25, 20142:00pm EDT
Although PIC assembler is still the programming language of choice in some projects, applications for the modern PIC MCU can also be forged using BASIC and C. Today's discussion will focus on programming techniques involving assembler, PICBASIC Pro, CCS C, and Microchip's X series of C compilers.
Mar 24, 20142:00pm EDT
Today's lecture will focus on the real-world application of the various PIC microcontroller native serial peripherals. SPI, I 2 C, and USART hardware reference designs and their associated firmware drivers will be examined in detail.

Getting Started With Programmable Logic

Mar 14, 20142:00pm EDT
This class will take the sample design and make some modifications to it as an example of how you can create your own design. Follow along on your own board, or just view the PPT. Either way, by the end of the course you should be comfortable creating your own FPGA design.
Mar 13, 20142:00pm EDT
In this class we will take one of the example designs that comes with the kit from start to finish. This will help solidify the other concepts in the course and get you comfortable with doing your own design. Purchase the board ahead of time and follow along, or just view the PPT.
Mar 12, 20142:00pm EDT
The next step in doing your own design is to use a low-cost evaluation board. The Lattice LCMXO2 Evaluation board provides all the hardware you need to create a design. This class will review all the features and capabilities of the board and compare it to other types of boards.
Mar 11, 20142:00pm EDT
Using the Lattice Diamond tool flow as an example, we will look at all the steps required to take a design from conception to realization. Follow along using your own copy of the Lattice Diamond tools, or just view the screen shots on the slides. Either way you will get over that first barrier to doing your own design.
Mar 10, 20142:00pm EDT
This class will provide an introduction to the course. We will quickly review the architecture of the Lattice LCMXO2-1200ZE FPGA as the programmable device for the class. We will also review the full design and development flow, the evaluation board, and the example designs we will use in the course.

Mastering the Embedded Software Design Cycle

Feb 28, 20142:00pm EST
The software design cycle doesn't end with the successful launch of the product. It simply marks the entry to the next stage of the cycle, which is to maintain the software. Over time, user expectations and needs change, and the software needs to be updated to continue to meet the users' needs. This session explores this often neglected portion of the design cycle.
Feb 27, 20142:00pm EST
As much fun as designing and implementing software can be, at some point it must be proven that it meets requirements and does what it's supposed to without any bugs! This session will cover software testing fundamentals. The difference between a fault and a failure will be explored in addition to testing effectiveness and objectives. Different levels of testing such as unit, integration, and system testing will be discussed.
Feb 26, 20141:00pm EST
This session will dig into the details of writing embedded software. The fundamentals will be discussed and include how to minimize complexity and anticipate change. Constructing for verification and design patterns will be explored. Techniques for writing the software will be covered, including design for reuse, modularity, and quality.
Feb 25, 20141:00pm EST
This session will present concepts on how to design embedded software. It will start with a look at how to take requirements and develop a software architecture that meets those requirements. A brief look at available modeling tools such as UML will be examined. Techniques and design strategies such as structured and object-oriented design will be discussed.
Feb 24, 20141:00pm EST
This session will introduce what the embedded software design cycle is and why an engineer would want to follow the cycle. The session will also look at requirements in detail ‒ what a requirement is, how to solicit them, and how to track and maintain them. Tools and examples will be provided so that this first critical step in the design cycle may be executed flawlessly.

Developing With Embedded Linux Using the Yocto Project Framework

Feb 14, 20141:00pm EST
This final class will cover how to generate SDKs for application development, and how those SDKs can be hooked into other IDEs like QTCreator and Eclipse. We will also link back to the concepts discussed on Day 3, where we learned how to developing recipes for new packages.
Feb 13, 20141:00pm EST
The Linux kernel is a core piece of an Embedded Linux ecosystem and is heavily developed for different platforms. On Day 4, the lecturer will show how the Yocto Project provides a workflow and framework for developing platforms based on the Linux kernel. In addition, we will discuss a best-practices process for kernel development and how they can be used to extend kernel packages.
Feb 12, 20141:00pm EST
The OpenEmbedded architecture is very flexible and can be customized to the needs of most Embedded Linux platforms. In this class, we will introduce the concepts of customizing the Yocto Project in terms of packages and images. As will be shown, the meta data is organized by layers, which helps to maintain a relevant set of packages for a given project.
Feb 11, 20141:00pm EST
Existing reference images are available to developers, which can serve as a starting point. In this class, we will discuss and understand the build process by building an existing image. We will also learn about individual package recipes and go through the motions of a complete build.
Feb 10, 20141:00pm EST
How does Embedded Linux fit into your development strategy? How does that tie in with the Yocto Project? What resources are at your disposal and how can one get on-board as developer? What does the complete ecosystem look like? All of these questions will be covered in Day 1 and many more as it pertains to an Embedded Linux development.

Testing MIMO Radios

Jan 31, 20142:00pm EST
In this lecture you will learn about benchmark test methods and challenges in achieving maximum performance of MIMO devices in a repeatable and reproducible manner. In addition, we will wrap up any loose ends from the previous days' lectures and answer any remaining questions.
Jan 30, 20141:00pm EST
This lecture will examine real-life and controlled environment test methods and metrics. We will look at the tradeoffs of testing in open air vs. testing in an RF environment where real-life wireless channel conditions are emulated.
Jan 29, 20141:00pm EST
Today we will discuss MIMO OTA test methods and the emerging standards. At the end of this lecture you will have an understanding of MIMO OTA test challenges and the many factors that impact MIMO throughput.
Jan 28, 20142:00pm EST
Today's lecture will get into the details of wireless channel modeling and channel emulation equipment. A complex but important topic, channel emulation is at the heart of MIMO testing. At the end of the lecture you will know the basic theory of channel modeling, understand the available solutions, and have an overview of relevant standards activities.
Jan 27, 20142:00pm EST
This opening session will provide an overview of wireless technology and an update on the IEEE and LTE standards. We will focus on today's key wireless technologies: WiFi and LTE. Our material will also include an overview of industry standards for wireless test.

Develop Apps for Embedded Android Networking

Jan 17, 20142:00pm EST
Normally, an Android device operates in client mode, which involves using a client app to access a server. In this final lecture of the series, we will turn all of that around and serve web pages to a remote WiFi device.
Jan 16, 20142:00pm EST
Thus far, we have banged bits using RF and USB. How can any networking tutorial be complete without pounding data through the pipes with TCP/IP? In this lecture we will implement digital I/O control using Basic4Android TCP/IP networking methods.
Jan 15, 20142:00pm EST
Some smaller microcontrollers do not contain a native USB engine. Even if they do, it is a sure bet that the small USB engine cannot perform in Host mode. The Basic4Android programming suite is equipped to deal with USB-to-Serial ICs such as the FTDI FT232RL.
Jan 14, 20142:00pm EST
Sometimes a wireless connection is not possible or even necessary. So, today we will take a look at interfacing USB-bound microcontroller-based devices with a Basic4Android application. Host and downstream external USB device solutions will be discussed.
Jan 13, 20142:00pm EST
Today's lecture will expose various wireless Basic4Android methods that provide direct control of external microcontroller-based resources. Basic4Android network coding along with microcontroller-based hardware and network firmware concepts will be examined in detail.
CEC Semester Four 2013

Introduction to SCADA Security

Dec 20, 20131:00pm EST
This class puts everything from the previous four days together. We will review general security mitigation principles and then learn how to apply knowledge of SCADA specific threats, vulnerabilities, and attack methods to formulate pragmatic and efficient mitigation strategies that are safe for SCADA systems and tailored to their environment.
Dec 19, 20131:00pm EST
Once you know the threat sources and the vulnerabilities within your own systems, knowing the methods of how these systems can be attacked is a key component to formulating a pragmatic and efficient mitigation strategy. This class will look at the entire anatomy of an attack from start to finish and how hackers go about attacking SCADA systems specifically.
Dec 18, 20131:00pm EST
From people to processes to technology, vulnerabilities are the reason security is needed. Unfortunately, the sheer number of vulnerabilities in existence makes dealing with them a daunting task. This class helps students understand vulnerabilities by examining the root cause of vulnerabilities from a high level and then provides strategies to help reduce the mitigation effort by grouping them into common mitigation categories.
Dec 17, 20132:00pm EST
Before you can protect your systems from a threat, you must know what the threats are. This class takes a comprehensive look at the different threat sources that could affect SCADA operations environments, along with their motivations and objectives.
Dec 16, 20131:00pm EST
This class will take a high level look at the evolution of SCADA systems over the past decade and compare traditional IT networks with SCADA networks in terms of their security and mitigation differences and pitfalls. We will then review significant exposures and incidents that have affected SCADA systems.

Protecting Your Embedded System From Hacking & Theft

Dec 6, 20131:00pm EST
This class will pull together information from all the previous classes and illustrate the described techniques using several example designs from different market segments and application areas. This will solidify your understanding of both the key security concepts and the various design techniques illustrated in the course.
Dec 5, 20132:00pm EST
Once your embedded system is deployed it is a target, either directly by "invasive" probing of the actual board or via network-based attacks. Protecting your systems from these threats requires the use of advanced techniques like establishing a Root-of-Trust, secure remote update, and/or a secure boot process.
Dec 4, 20131:00pm EST
Modern techniques for security and authentication use a few key cryptographic concepts and algorithms to protect data and processes in embedded systems. This class provides an introduction to the most common techniques and standards, so you can better understand how these approaches may be used in your designs.
Dec 3, 20131:00pm EST
One of the most vulnerable parts of an embedded system is the design itself. How can you protect your design from copying, cloning, overbuilding, and reverse engineering? This class will cover some key techniques that can protect your design from these threats.
Dec 2, 20131:00pm EST
This class will identify the most common security threats to network-connected, embedded systems all along the system lifecycle. We will start with the component supply chain and follow a typical embedded system all the way to system decommissioning, while identifying many common security threats along the way.

Fundamentals of Embedded Software Design

Nov 22, 20131:00pm EST
This session will pull together all the methods from the sessions by looking at how a reusable, configurable timer driver can be developed. The session will quickly move through setting up the driver and then the implementation of a memory-mapped timer driver that achieves these objectives.
Nov 21, 20131:00pm EST
This session will explore techniques that can be used to develop code that can be reused across multiple applications. In order to accomplish this, software implementation will be explored in order to understand how a project should be organized and source modules developed in order to accomplish this feat.
Nov 20, 20131:00pm EST
This session will dig into the details of writing embedded software using C. A review of using pointers and a look at commonly misused keywords will be examined. A brief discussion on how to control scope will also be discussed. These techniques will be used in later sessions when memory-mapped devices are explored.
Nov 19, 20131:00pm EST
This session will introduce concepts on how to design and develop embedded software architectures. Starting with an exploration of the different diagramming techniques for defining the architecture, the session will also examine strategies that can be used to design real-time systems architectures and how they get to the final code implementation.
Nov 18, 20131:00pm EST
This session will introduce what an embedded system is and the skill sets necessary to develop embedded software. It will then dive into some highlights of common misconceptions and problems with developing embedded software by presenting the attendee with tips and tricks for developing embedded software.

Understanding 802.15.4, a.k.a. ZigBee / MiWi

Nov 8, 20131:00pm EST
The final lecture will examine ways to move data beyond the confines of our MiWi network.
Nov 7, 20131:00pm EST
Today we will breathe life into a regulation MiWi network. The lecture body will consist of a step by step network generation tutorial.
Nov 6, 20132:00pm EST
Today's lecture will describe the embedded hardware necessary to realize a minimal MiWi node. MiWi Stack firmware segments associated with the node's hardware components will also be discussed.
Nov 5, 20131:00pm EST
This lecture will lay out the major features that make up the ZigBee protocol. We will also describe MiWi and what makes it different from ZigBee. The remaining class time will involve understanding the MiWi Stack.
Nov 4, 20132:00pm EST
Today's lecture will demystify the 802.15.4 protocol by building a base two-node 802.15.4 peer-to-peer network. Hardware and firmware concepts necessary to facilitate communications between the two nodes will be examined in detail.

WiFi and LTE Radio Technology

Oct 25, 20132:00pm EDT
In this final class, we will discuss a wide variety of emerging wireless applications and their requirements for network performance. In addition, we will wrap up any loose ends from the previous days' lectures and answer any remaining questions.
Oct 24, 20132:00pm EDT
This class will cover test methods and metrics used to measure performance of wireless devices and systems. We will discuss outdoor, real-life, and laboratory test methods.
Oct 23, 20132:00pm EDT
This class will examine wireless performance issues, such as throughput, range, and capacity. You will learn about the advantages of MIMO and OFDM over legacy wireless technologies.
Oct 22, 20132:00pm EDT
Today's class will discuss how WiFi is transforming from its humble beginnings as a home networking technology to carrier-grade wireless infrastructure operating side by side with 2G/3G and LTE networks.
Oct 21, 20132:00pm EDT
This opening session will provide an overview and history of today's key wireless standards: IEEE 802.11 (WiFi) and 3GPP Long Term Evolution (LTE). Attendees of this class will learn about state-of-the-art wireless radio technologies and how they evolved over time. You will become familiar with the wireless standards from IEEE and 3GPP.

The Hitchhiker's Guide to the Internet of Things

Oct 11, 20132:00pm EDT
As the Internet of Things continues to evolve or perhaps undergo revolutionary change, the challenges for implementers at all levels will continue to grow. To wrap up our week, we will peer into the possible future of the IoT and what major challenges engineers and system architects will still face.
Oct 10, 20132:00pm EDT
One daunting challenge that is being faced now is the lack of an Internet of Things standard. As IoT can consist of many different applications as well as communications capabilities, there will eventually be a wide range of standards, perhaps under a single framework. We will look at the current standards efforts by various bodies as well as the standards that currently apply to certain applications or implementations.
Oct 9, 20132:00pm EDT
As the Internet of Things has actually been defined and conceptualized for many areas of applications, there are many configurations that are driving the future of IoT. We will look at those drivers and their unique needs, from application level down to the physical layer.
Oct 8, 20132:00pm EDT
The various configurations of the IoT call for a myriad collection of communications channels, each with their own limitations of available network topologies. In this lesson we will look at networking principles and the mix of topologies that make up each piece of the overall IoT.
Oct 7, 20132:00pm EDT
We will look at the history of the Internet of Things (IoT) and how various end-users have conceived and defined the IoT. For each of these definitions, we will look at the system architecture as well as some of the technologies required.

Using FPGAs With Embedded Processors in Your Designs

Sep 27, 20132:00pm EDT
This class will cover designs suggested by students and go through an example review of the design requirements to identify a "best fit" from the products we have seen during the week. It will cover designs that are common to multiple students to provide the most valuable suggestions.
Sep 26, 20132:00pm EDT
This class will cover several classes of common applications targeted by specific manufacturers to try and identify the strengths of specific product families. It will provide some background used in the next class that covers your designs.
Sep 25, 20132:00pm EDT
The addition of a programmable processor means that some new tools need to be added to the standard FPGA tools flow. This class will examine these new tools and will show how they are used within the FPGA development environment.
Sep 24, 20132:00pm EDT
This class will go into some specific architectural details so we better understand the strengths of the various product families that feature embedded processors. Other features that help "round out" the processor (memory interfaces, peripherals, and programmable fabric) are also covered.
Sep 23, 20132:00pm EDT
FPGAs with embedded processors are powerful devices, but are they a fit for your designs? This class will introduce several of the currently available device families and will provide an overview of the key elements you need to understand when considering using them in your designs.

Engineering Principles for Alternative Energy

Sep 13, 20132:00pm EDT
The mainstream energy industry does acknowledge other types of energy that can be used to create clean and sustainable solutions. We'll not only review the established norms, fringe ideas, and conjecture, but we'll also discuss how thinking about energy is changing and some outside-of-the-box ideas.
Sep 12, 20132:00pm EDT
Geothermal is gaining acceptance and becoming a more popular type of energy system. Some parts of the world are well suited for it, and it comes cheaply and easily. Other places are still viable, but we have to work a bit harder to gain the benefits. We'll review ground sourced, well sourced, and deep well sourced heat pumps.
Sep 11, 20132:00pm EDT
Wind is one of the first types of energy systems ever harnessed to supplant animal and people-powered functions like pumping water and grinding grains. Still useful for mechanical action, they are now a focus of electricity generation. We'll discuss aero-mechanical wind systems and aero-electrical wind systems.
Sep 10, 20132:00pm EDT
Extracting heat from solar radiation is a useful and beneficial function, especially in colder climates. We'll examine the types of photo thermal panels, principles of operation, and orientation and tracking.
Sep 9, 20132:00pm EDT
Solar is the most popular and widely used energy source, and photo-voltaic panels are the most widely deployed. We'll review the types of panels available, solar panel technology, and principles of operation.

Multitasking From Scratch

Aug 30, 20132:00pm EDT
In our final lesson, we will compare the two approaches we took and compare these to a solution that is built with a commercial RTOS (MQX).
Aug 29, 20132:00pm EDT
In this lesson, we finish up both approaches to our "homemade" multitasking system and look at the differences and limitations of our approaches.
Aug 28, 20132:00pm EDT
We will finish up our state machine and begin work on another approach, that of a simple round-robin loop of tasks.
Aug 27, 20132:00pm EDT
We begin work on the simple state machine solution, defining and coding our states and setting up communications between the states as well as establishing priorities.
Aug 26, 20132:00pm EDT
We will look at the basic needs for a multitasking application and will begin work on a simple example. We will set up our application requirements and look at ways that we can meet these needs through two methods: a simple, software-based state machine and a simple, non-prioritized round-robin.

Intro to Brush DC Motor Control

Aug 16, 20132:00pm EDT
This discussion introduces feedback to our controller discussion. We will discuss position encoding and quadrature encoders, as well as constant velocity control, P and PI control loops, and microcontroller systems.
Aug 15, 20132:00pm EDT
This discussion moves our focus from energy input to braking, friction, torque control, and back EMF effects. During this discussion we will discuss what happens as we decelerate. We will discuss regenerative braking.
Aug 14, 20132:00pm EDT
This discussion is a continuation of Day 2's discussion. We continue to discuss energy input devices and topologies, but now with a focus on controlling device heating, heat sinking, and EMI reduction techniques.
Aug 13, 20132:00pm EDT
This discussion address energy input circuits and components. Starting with the Field Effect Transistor, and working our way up to the H-bridge, we will discuss various energy input circuit topologies.
Aug 12, 20132:00pm EDT
This discussion describes the brush DC motor, and how it differs from a brushless DC motor, a stepper motor, and other motor types. In this discussion, we'll break down the brush DC motor, showing exactly how it operates. We will review manufacturer motor specifications, speed/torque curves, motor sizing, and power ratings. We will discuss motor commutation using brushes.

C and Assembly Language: What Are They Good For?

Aug 2, 20132:00pm EDT
We will have some fun looking at different MCU functions and you will get to vote for the winner: 'C' or Assembly. In some cases both 'C' and Assembly could win. How can that be? It all depends on the design goals. Tune in live to cast your vote!
Aug 1, 20132:00pm EDT
C can be a very efficient language with which to program MCUs. This class will show how typical compilers map ‘C’ programs into a target-MCU's hardware. A few common “optimization” techniques will be described that illustrate how code can be transformed, sometimes with surprising consequences.
Jul 31, 20132:00pm EDT
Now that the target MCU hardware and execution processes are understood, a detailed look at Assembly language is needed. This class will dig into the details of Assembly as a software development vehicle. Several simple examples will show the advantages and disadvantages of using Assembly language for programming MCUs.
Jul 30, 20132:00pm EDT
Once the fundamental building blocks of the MCU are understood, the way in which a program is processed by the MCU can be considered. This class will cover CPU-related concepts such as pipelining, caches, instruction efficiency, and floating point implementation so various MCU architectures can be more easily compared.
Jul 29, 20132:00pm EDT
MCUs provide an impressive set of hardware features over which the designer "pours" the software design. This class will provide an understanding of the key hardware elements inside the processing block of the MCU so we can better understand how a software description is converted into MCU operations.

Introduction to Real-Time Kernels

Jul 19, 20132:00pm EDT
In this class, we'll show some of the mechanisms provided by a kernel to allow ISRs and Tasks to signal and send messages to other tasks. Debugging with a kernel can be challenging and we'll briefly describe techniques and tools you can use to visualize your application. This session will end with a brief summary of what we've covered.
Jul 18, 20132:00pm EDT
Most kernels require the presence of a periodic time source called a 'Clock Tick'. We'll look at what this is used for and whether it's mandatory. We'll also look at the mechanisms provided by a kernel that provide mutual exclusion to shared resources.
Jul 17, 20132:00pm EDT
In this session we will look at how a real-time kernel decides (schedules) which task to execute and the process of changing from one task to another (context switching).
Jul 16, 20132:00pm EDT
This class will explain one of the most important aspects of a real-time kernel: task (or thread) management. Here you will learn what a task is and how a real-time kernel knows about how you want it to manage your tasks.
Jul 15, 20132:00pm EDT
A real-time kernel is software that allows you to better manage the allocation of resources available in most of today's 8-, 16-, 32- and 64-bit processor-based embedded systems. This first class will explain the differences between a "Super Loop" and a real-time kernel.
CEC Semester Three 2013

Design Your Own Android App

Jun 28, 20132:00pm EDT
Today, we will assemble a Basic4android application that will allow our Samsung tablet to control and monitor our remote TCP/IP-based hardware. Just when you thought it was safe to go back into the water, we'll revisit Bluetooth from a different perspective.
Jun 27, 20132:00pm EDT
Yesterday, we mapped out our network paths and performed some preflight checks on our selected network hardware. Today, we will throttle up the firmware and hardware to 100% and flight-test the network. We will also take a look at what needs to be done on the Basic4android side to support our mission tomorrow.
Jun 26, 20132:00pm EDT
Before the week is up, we are going to write some Basic4android code that will take advantage of an Android device's ability to communicate via the Internet. So, it might be a good idea to round up some appropriate network hardware. Here we'll examine the networking devices and lay down plans to put them on the Internet.
Jun 25, 20132:00pm EDT
In this session, we will explore the Bluetooth capabilities of Basic4android. We will write Basic4android application code to administrate the Bluetooth adapter. Our Basic4android application will allow us to enable the Bluetooth adapter, disable the Bluetooth adapter, monitor the Bluetooth adapter's state, and discover devices in range.
Jun 24, 20132:00pm EDT
This class will revolve around the installation of the Basic4android environment and the creation of our very first Basic4android application. It won't take long to see that Basic4android can be used to painlessly realize industrial-grade Android applications. Our first Android application will prove to be a bit more useful than displaying "Hello World'. We are going to dive right in and write some Basic4android code to communicate with an FTDI FT311D USB Android Host IC.

Exploring Application-Specific Programmable Logic Devices

Jun 14, 20132:00pm EDT
A few devices strike out from the familiar programmable logic territory in the search for the "next big programmable thing" (NBPT). This class will cover some of these new devices and concepts. Put on your life vest because this is white-water rapids country!
Jun 13, 20132:00pm EDT
Adding fixed functions to programmable logic devices is not new, but the most recent crop of devices with fixed-function MCUs is now addressing more targeted applications. As higher-level software functions and even real-time operating systems (RTOSs) can be easily included, the device reach is extending to specific, targeted applications. This class examines the types of features included and the types of applications these devices are now targeting.
Jun 12, 20132:00pm EDT
Programmable analog functions are continued in this class along with some of the devices used for programmable timing and clock generation. This class will provide a detailed description of several of these types of devices and will show specific examples of their use.
Jun 11, 20132:00pm EDT
One of the first classes of application-specific programmable logic devices combined analog circuits with digital programmable logic. These devices address the increasingly complex area of power management and similar applications. This class will provide a detailed description of several of these types of devices and will show specific examples of their use.
Jun 10, 20132:00pm EDT
Application-specific programmable logic devices are extending the reach of programmable devices into non-traditional applications. This class will provide an overview of the various technologies used and applications being addressed by non-traditional programmable logic devices.

Automation Technologies & Trends for Smarter Homes & Buildings

May 24, 20132:00pm EDT
We will look at cloud-based services and monitoring stations that customize automation, control, security, and energy management. Distant signaling techniques all have advantages and disadvantages, and these will be examined for POTS phone lines, smartphones, and Internet cloud-based monitoring and control. Again, architecture is key, and options such as direct control vs. procedural control will be looked at. We will take a look at cloud servers and reflectors that are available.
May 23, 20132:00pm EDT
Wireless technology is, for the first time, cost-effectively tackling some of the tough issues that have always hindered the widespread deployment of effective automation technologies. We will look at some of the emerging wireless protocols and technologies that the ISM bands make feasible for low-cost use. Advantages, as well as disadvantages and vulnerabilities, will be discussed, along with cost issues and security, especially for life-critical services.
May 22, 20132:00pm EDT
We will take a more detailed look at architectural tradeoffs between central control and distributed control. The ability to manage all traffic, all conditions, and respond in a reasonable timeframe will be examined as well as functionality that may exist when a control point is not functioning. The ability of a distributed control network to share information concurrently for higher-level decisions will be looked at.
May 21, 20132:00pm EDT
We will discuss challenges that any technological solutions face. First and foremost is cost. If any technology is too expensive, it will not catch on, even if there is eventual payback and cost advantages. Other challenges include the ability to have a unified approach that addresses both new construction and existing buildings and structures. We will also look at how automation technology reacts in emergency situations.
May 20, 20132:00pm EDT
We will begin with an introduction to home/building automation: what is it, why do we need it, how does it work, and so on. We will discuss how any solution must be cost effective and even able to provide a payback. We will also discuss how automation technology can enhance safety, security, comfort, energy efficiency, and remote monitoring and control.

Introduction to Medical Electronics

May 10, 20132:00pm EDT
With the sensitivities of medical data storage and retrieval by unauthorized persons, regulations such as the US HIPAA (Health Insurance Portability and Accountability Act) require data encryption and retrieval controls. We will look at repositories such as Health Vault and some of the issues that may affect embedded systems developers and how these may be approached.
May 9, 20132:00pm EDT
We continue our look at communications and data storage by examining two major standards in more detail: the Continua standard (and some of the underlying standards), and the ZigBee Heathcare Profile.
May 8, 20132:00pm EDT
Much is being said about the need for communications between medical instrumentation and the patient/consumer, as well as to caregivers. We will look at some of the major communication protocols and their implementation.
May 7, 20132:00pm EDT
We will discuss the safety issues of using electronics in medical devices (non-life-support), and examine the reliability and regulatory needs (which go hand-in-hand) that must be met.
May 6, 20132:00pm EDT
A brief overview of the unique characteristics of medical electronics, concentrating on the sensing and measuring of biometric values. We will look at the different types and classes of medical instrumentation and what regulations and challenges apply.

Energy Harvesting

Apr 19, 20132:00pm EDT
This discussion presents various commercial devices and circuit topologies used for energy conversion and storage. We will review various silicon integrated circuit components and present some interesting commercial energy harvesting kits that students may wish to explore
Apr 18, 20132:00pm EDT
This discussion will focus on energy storage devices with emphasis on batteries, battery applications, and battery technologies. Super capacitor and large capacitor energy storage devices will be included in the lesson.
Apr 17, 20132:00pm EDT
This discussion will continue our talk about energy generation devices as applied to piezoelectric, thermal, and chemical energy harvesting devices. The instructor will present various devices and review their energy production methods.
Apr 16, 20132:00pm EDT
This discussion will review concepts of energy generation as applied to photoelectric, magnetic inductive, and radiated energy harvesting devices. The instructor will present various devices and review their energy production methods.
Apr 15, 20132:00pm EDT
This discussion presents a short review of energy – how it's measured and applied in low-power electronic devices. We'll discuss the promise of "free" and "inexhaustible" energy, battery-life extension, and introduce various energy generation technologies.

An Introduction to Functional Verification

Apr 5, 20132:00pm EDT
Because of the complexity of creating verification environment and the common elements that many of them require, a class library has been created to help jump-start a verification project. This provides a high-level overview of its structure and capabilities.
Apr 4, 20132:00pm EDT
SystemVerilog is becoming a very common language for functional verification. In this segment I will provide a high-level overview of the language and its capabilities.
Apr 3, 20132:00pm EDT
There is no single right way to perform verification. It is often described as an art rather than a science. In this section we will examine the most commonly used methodologies and the ways in which progress can be measured.
Apr 2, 20132:00pm EDT
Verification is performed on models of the intended design, but those models can be at many different levels of abstraction and use different software or hardware to execute them. We will look at the major ones in use today and where they are best utilized in a design flow.
Apr 1, 20132:00pm EDT
The functional verification of electronic systems consumes in excess of 50 percent of the time and resources for most complex chip designs, which certainly leaks into system design. On the first day, we'll define the scope for the course and examine many of the fundamental concepts, terms, and methodologies that will be expanded upon later. Whether you are designing an IC or a system, these concepts will come in handy.

Implementing Embedded Vision: Designing Systems That See & Understand Their Environments

Mar 22, 20132:00pm EDT
We'll present a detailed case study of the development of a smart, automotive, rear-view camera system incorporating vision-based object detection and distance estimation. We'll discuss the challenges associated with creating an embedded vision system that meets very demanding cost, size, power, and performance requirements. We'll present the lessons learned during algorithm, software, and system development, and how those lessons apply to other embedded vision applications.
Mar 21, 20132:00pm EDT
FPGAs can accelerate some image processing algorithms, while reducing latency and jitter compared to using CPUs. We'll compare CPUs and FPGAs as embedded vision processing engines, exploring which types of vision algorithms and applications can benefit from implementation on an FPGA, and which are better suited for a CPU or other type of processor. We'll share benchmark results comparing FPGA and CPU implementations of vision applications, and introduce high-level programming of FPGAs.
Mar 20, 20132:00pm EDT
Cameras typically apply preprocessing algorithms to raw pixel data to generate pleasant images by compressing dynamic range. We'll discuss how appropriate image preprocessing can ease the work of image-understanding algorithms, and how these algorithms can assist in preprocessing.
Mar 19, 20132:00pm EDT
Image sensors use varied hardware interfaces and output data formats, which can complicate system design and make it difficult to switch sensors. Their high output rate can overwhelm data connections and processors. Programmable logic devices can solve both problems: Their flexibility can comprehend normally incompatible interfaces, and they can accelerate common functions like color space conversion, image resizing, frame rate transformation, aspect ratio alteration, and edge detection.
Mar 18, 20132:00pm EDT
Embedded vision is the incorporation of computer vision techniques into embedded systems, mobile devices, PCs, and the cloud. In this session, we'll look at some of the coolest new applications of embedded vision, such as systems that read a person's emotional state from facial images and systems that help prevent driving accidents by monitoring the road. We'll touch on the algorithms that enable these capabilities and the types of processors used to run those algorithms.

File Systems in Real-Time Embedded Applications

Mar 8, 20131:00pm EST
Designing and using firmware to access NAND flash memory is more complicated than it sounds. In this class, we will review how the limitations of NAND flash memory can be dealt with using clever software. More precisely, we will present the details of a K-associative sector translation layer.
Mar 7, 20131:00pm EST
There are more new types of storage media offered every year, and making the right choice for your application is becoming more complex. In this class, you will discover the strengths and weaknesses of different technologies. We will cover the basics of different storage media types, including SD, e-MMC, NAND, NOR, PCM, and USB Mass Storage devices.
Mar 6, 20131:00pm EST
Engineers often have to make tradeoffs when meeting the performance, safety, and cost requirements for their projects. In this session, you will learn how to choose which file system mechanisms and features to use, depending on the importance of each of these criteria for your system.
Mar 5, 20131:00pm EST
The FAT file system has become the de facto standard for data exchange between systems. It is ubiquitous on USB drives, memory cards, and other portable devices because of its wide compatibility with operating systems for personal computers. In this class, we will discuss how this industry standard works and consider its strengths and limitations.
Mar 4, 20131:00pm EST
In this introductory session, we will review some historical and theoretical information on file systems. We will also discuss the different definitions and types of file systems in order to provide a broader view of the field.

How to Choose a Microcontroller Architecture

Feb 22, 20131:00pm EST
A technical discussion of the semiconductor process technologies used to build microcontrollers.
Feb 21, 20131:00pm EST
A technical study of 16-bit microcontrollers and their development tools.
Feb 20, 20131:00pm EST
A technical study of the 32-bit microcontroller marketplace.
Feb 19, 20131:00pm EST
A technical study of different 8-bit microcontrollers and their development tools. Technical importance of the 8-bit and its controversial longevity.
Feb 18, 20131:00pm EST
Viewers will understand the differences among the microcontroller, microprocessor, and (briefly) DSP markets and the common selection characteristics of reliability, packaging, and development tools.

Build a microSD Bootloader using a PIC microcontroller

Feb 8, 20132:00pm EST
The final session will focus on developing bootloadable applications using the CCS C Compiler for PIC Microcontrollers. The idea is to demonstrate the versatility of the Bootloader code by demonstrating bootloading PICBASIC PRO applications followed by bootloading and running PIC18F47J13 applications generated with the CCS C Compiler.
Feb 7, 20132:00pm EST
The fourth session will describe how to write PICBASIC PRO 3.0 applications that can be loaded via the Microchip PIC18F47J13 Bootloader. A PICBASIC PRO 3.0 driver for the NHD-02C16CZ that can be melded with the Microchip Bootloader code and PICBASIC PRO 3.0 application code will be introduced.
Feb 6, 20132:00pm EST
The third session will concentrate on the assembly of the necessary Microchip Memory Disk Drive File System components to support the PIC18F47J13. The concepts presented in this session will be supported by working code examples. The Microchip Memory Drive File System API will also be examined.
Feb 5, 20132:00pm EST
The second session will describe the hardware design that will be used to implement the physical components of the Microchip PIC18F47J13 Bootloader. The hardware will consist of a PIC18F47J13 that is supported by an FTDI FT232RL USB-to-UART Bridge IC and a Microchip MCP1703 3.3-volt LDO voltage regulator. A buffered microSD card carrier card and an NHD-02C16CZ 3.3-volt LCD are also part of the Bootloader hardware complement.
Feb 4, 20132:00pm EST
This first session will introduce the students to the basic firmware elements of the microchip microcontroller, Bootloader. The building blocks that make up the Microchip Bootloader will be described in detail. The firmware that supports each Bootloader building block will also be examined.

Understanding Smart Sensors 2

Jan 25, 20132:00pm EST
This tutorial provides information on what sensors are available today and insight into the types of sensors that are under development.
Jan 24, 20132:00pm EST
If you are not familiar with the problems that are involved with applying the output of an analog sensor to a digital control system, find out from our expert in this session.
Jan 23, 20132:00pm EST
In this tutorial, our lecturer discusses the development of a smart sensor from concept (including the physics of the base sensor) through the design tradeoffs and manufacturability issues to deployment.
Jan 22, 20132:00pm EST
This tutorial explores the techniques and available options that simplify users' design-in of capacitive sensors, which have more complex requirements than piezoresistive sensors.
Jan 21, 20132:00pm EST
In this session our expert addresses calibration, linearization, and signal integrity techniques for perhaps the most common sensing technique, piezoresistive sensors.

Getting the Most out of Low-Power MCUs

Jan 18, 20132:00pm EST
The review of some example designs with widely different low-power requirements will help solidify the main concepts and capabilities the modern low-power MCUs offer designers. The key low-power requirements of each design will be identified and matched with the key MCU capabilities needed to create efficient implementations.
Jan 17, 20132:00pm EST
Once the key concepts and capabilities of low-power MCUs are understood it is sometimes critical to use them to achieve a target battery lifetime. Understanding both the key concepts behind extending battery lifetime and the techniques for estimating battery lifetime is critical in achieving the most aggressive design requirements.
Jan 16, 20132:00pm EST
Once the MCU low-power modes are understood it is important to understand how to most efficiently use the MCU peripherals. Modern low-power MCUs have special peripheral features that can assist in reducing power. A detailed look at these features is required to create more efficient designs.
Jan 15, 20132:00pm EST
Effective use of the low-power modes (like Sleep, Stop, Snooze, and Standby) in modern MCUs is one of the most important ways to achieve the most power-efficient design. Knowing when and how to use these modes requires a detailed look at the advantages and disadvantages of these capabilities.
Jan 14, 20132:00pm EST
Modern MCUs have a variety of features that support very low-power operation. In order to get the most out of these new capabilities we will first review common concepts (like special low-power operating modes) and common capabilities (like special peripheral operations) that most modern low-power MCUs share.
CEC Semester Two 2012

ZigBee: Basics to Implementation

Dec 21, 20122:00pm EST
We look at the real engineering behind a ZigBee implementation: How to make it WORK. Design criteria, development, testing, and some lessons learned of things that worked - and didn't. We will also look at alternatives through a couple of very short case studies.
Dec 20, 20121:00pm EST
The Operating Details Under each profile is a set of operating protocols for sending set data. We will look at the structure and operation of these. We will also look at how one may use the strong structure of ZigBee to build a proprietary profile, gaining from the advantages of the protocol while providing for your unique communications and control needs.
Dec 19, 20121:00pm EST
Profiles one of the primary selling points for ZigBee is the guaranteed interoperability between nodes, regardless of who made the equipment. This is assured by the use of profiles that are established by the ZigBee Alliance and are independent of any one manufacturer. We will look at the established profiles and how they operate.
Dec 18, 20121:00pm EST
We will discuss the IEEE standard on which ZigBee is built (and was developed for ZigBee) - IEEE 802.15.4. We will look at network layers, topology, and how the standard itself provides for extreme low-power communications.
Dec 17, 20122:00pm EST
Much is being said about the ZigBee protocol and its promise for low-power and dependable mesh networking, but what does ZigBee entail and what does it mean for a company that is thinking of incorporating it? We will discuss just what the standard and protocol are about, its history, and where it is going.

ISM Band Radio

Dec 7, 20122:00pm EST
This discussion presents an overview of commercial 802.15.4 components. We present component families from Atmel, Freescale, NXP, ST Microelectronics, and Texas Instruments. This discussion provides insight into today's available product offering.
Dec 6, 20121:00pm EST
This discussion addresses factors that affect radio communications and small radio design. Range, power, and data transfer rate together with physical size, weight, and cost impact design choices. We will speak about link budget, operating frequency, and antenna considerations. The discussion reviews power requirements for typical 802.15.4 radio systems.
Dec 5, 20121:00pm EST
This discussion considers the 802.15.4 communications protocols. We address various operating protocols, taking a look at Zigbee and competing protocols. We also address 802.15.4 radio operating topologies such as star, star-mesh, mesh, and adaptive mesh approaches.
Dec 4, 20121:00pm EST
This discussion takes as its focus the 802.15.4 standard as it applies to radios operating at 2.4GHz. We consider 802.15.4 modulation, the concept of "chips" and direct spread spectrum modulation, data throughput, and alternate modulation techniques.
Dec 3, 20121:00pm EST
Federal Communications Commission rules and regulations are confusing. This discussion helps you to sort out the relevant portions of FCR 47 as it applies to ISM radio for 802.15.4-style data communications. The discussion limits its focus to regulatory matters in the United States.

Embedding USB Technology: Limitations, Challenges & Compliance

Nov 30, 20121:00pm EST
Day 5 begins with a discussion of USB hosts, which are the most complex component in USB technology. We then are able to draw the differences between device, host, and on-the-go USB software stacks. The memory footprint for typical hosts and devices is described. Finally, the requirements for USB compliance are explained.
Nov 29, 20121:00pm EST
Day 4 is all about USB devices -- what they are, and what they can be. When a USB device is first connected to the bus, it triggers a process called enumeration. This event is a crucial phase of the USB protocol. USB classes are also presented, which allow USB devices to take on multiple functions.
Nov 28, 20121:00pm EST
Day 3 presents the complex structure of the USB protocol, which operates above the basic level of transmission and reception of bits over copper wires. Discussed are the concepts of USB packets, transfers, transactions, frames, and endpoints. These concepts are essential to meet performance expectations.
Nov 27, 20121:00pm EST
Day 2 presents the methods and circuitry used in USB 1.1 and USB 2.0 to transmit and receive data over a single wire pair. The methods for USB 3.0 are also presented. The physical layer is examined. For compliance purposes, it is often sufficient to follow the semiconductor vendor reference designs.
Nov 26, 20121:00pm EST
Day 1 begins with a discussion about implementing USB technology in embedded products. This task can be challenging because of the restricted hardware resources available in embedded systems. USB topology is presented, which is a determining factor in what you can and cannot do with this technology. Finally, the mechanical specifications of USB are described.

Writing Reusable C Code for Embedded Systems

Nov 16, 20122:00pm EST
Code written to support a variety of products requires additional testing to ensure correct behavior when instantiated for future configurations that may or may not occur. Today's course will discuss these tests, give a review of the week, and make final remarks on reusability.
Nov 15, 20122:00pm EST
Today's course will discuss other tips and techniques for reusability. One such area is how hardware can support software reusability.
Nov 14, 20122:00pm EST
Another approach to reusability is to structure the code so that it can easily be adapted to the specific requirements of the product. Today's course will discuss pros, cons, tips, techniques, limitations, and examples of this approach to writing flexible code.
Nov 13, 20122:00pm EST
One approach to reusability is to require that the domain of the code and its adjacent modules conform to a specification. Today's course will discuss the pros and cons, and give tips, techniques, and examples of this approach for code written to be common across implementations.
Nov 12, 20122:00pm EST
Much is written about reusable C++ code. But most embedded systems code is still written in C. Embedded systems add additional impact to reusability. Today's course will discuss myths and reasons for reusable code, along with the topics covered this week on writing reusable code in C.

Fundamentals of Electrical Power Measurement

Oct 26, 20122:00pm EDT
Part 5 discusses available power-related instrumentation that may be applicable to many situations (multimeters, scopes, power meters, source measurement units, among others), as well as implementation issues in practical systems, including 2/4-lead measurements, noise, loops, and other issues.
Oct 25, 20122:00pm EDT
Part 4 looks at taking the signals from transducers and converting them into useful information via analog and digital techniques to get meaningful power information, accuracy readings, and data analysis.
Oct 24, 20122:00pm EDT
Part 3 examines the electrical circuitry needed to interface the various sensors, safety issues for the system, the misunderstood term and concept of "ground," and floating/differential measurement situations.
Oct 23, 20122:00pm EDT
Part 2 looks at the four most-used transducer types (shunt resistor, transformer coil, Rogowski coil, and Hall devices) and their key attributes and tradeoffs, use for AC vs. DC vs. transient power measurement, and low, medium, and high-power regimes.
Oct 22, 20122:00pm EDT
Part 1 of this course will define basic terms, explain why power (and energy) measurement is needed, clarify what will and won't be covered, and explore what the role and reality of power measurement is. It will also provide an overview of the remaining parts of the course.

Understanding Smart Sensors

Oct 12, 20122:00pm EDT
Sensor fusion is an area that is rapidly advancing sensors' capabilities. The technology appears in automobiles, portable consumer electronics, and several other areas that affect daily life. In this tutorial, our expert will start with the basics and end with tools that can help interested listeners get first-hand experience in using and implementing sensor fusion.
Oct 11, 20122:00pm EDT
Energy harvesting, or using the energy present in an application to recharge batteries or avoid their use entirely, can provide a sensing system that operates indefinitely. Knowing the capabilities of various energy harvesting techniques and understanding the energy budget are essential to the successful application of these designs. This tutorial provides the potential user with background as well as the design tools to get started.
Oct 10, 20122:00pm EDT
Many technologies contribute to improving sensors that frequently get dubbed "smart sensors." The "smart" term is used loosely in many technical and non-technical areas, so what makes a sensor smart? Find out from our expert in this session.
Oct 9, 20122:00pm EDT
Pressure sensors provide one of the most frequent physical measurements. These sensors also have several nuances that can cause problems for those who do not work with them on a frequent basis. Our lecturer will discuss the issues in this tutorial.
Oct 8, 20122:00pm EDT
Obtaining the expected performance for a sensor in a system requires a solid understanding of the terms used to specify performance. In many cases, it is absolutely necessary to sort through the marketing hype about a sensor's capability, but even data sheets are non-uniform and can be confusing. In this course, our expert explains the essentials to avoid application pitfalls.

Introduction to Prototyping an LED Driver: From Design to Layout to PCB

Sep 28, 20122:00pm EDT
Today is the clincher, to take our layout and generate manufacturing files commonly called Gerber files as well as the Bill of Materials (BOM). Then we'll use a Gerber viewer to review the files. We'll then go over the process of how to specify and get a quote from a PCB manufacturer.
Sep 27, 20122:00pm EDT
To finish the layout, we'll need to add some vias for soldering on the wires. We'll also add some text to the board and fill in some extra copper to help with heat dissipation. Then we'll cover some power-supply-oriented design rules and show how to set up the program to do a Design Rule Check.
Sep 26, 20122:00pm EDT
If we need a component that is not in the provided libraries and not found in online user groups, we can always create our own components. We'll go through a few examples and use as much copy-and-paste as possible to create custom symbols and footprints for our custom components. We'll also cover the common footprint design guidelines, such as pad size and spacing tolerance, and using Eagle layout designer to create custom library components to fit our needs.
Sep 25, 20122:00pm EDT
This second class will start with an overview of circuit board layout software. Continuing on with our LED driver, we'll be using freeware to capture the schematic of our design using built-in library components. Then we'll see the real power of the software as the captured circuit is translated into PCB footprints. This allows us to lay down copper traces on the board.
Sep 24, 20122:00pm EDT
We start off this series with an overview of the prototyping process from a circuit design to schematic capture to circuit board layout. We'll be using the example of the LED driver design using the HV9910 that we discussed in "Advanced LEDs & Displays" in May. In this first class, we'll start with a quick review of the circuit, then go over the Bill of Materials and start the component selection process using the DigiKey Website.

Fundamentals of Embedded Computer Vision: Creating Machines That See

Sep 14, 20122:00pm EDT
Here, we present more complex embedded vision algorithm examples, including face detection and object tracking. As in the preceding session, we explain how these algorithms work, through demonstrations built with OpenCV. We also illustrate a quick and easy way to set up your own vision algorithm development environment using OpenCV. Finally, we provide pointers to additional resources for learning about embedded vision.
Sep 13, 20122:00pm EDT
At the heart of embedded vision are algorithms. These include algorithms for improving captured images, identifying features of interest, inferring the presence of objects, and reasoning about objects and motion. In this class, we introduce some fundamental algorithms, such as motion and line detection. We explain how these algorithms work, and illustrate them with demos (which are available for download). We also introduce OpenCV, which is a free, open source vision software library.
Sep 12, 20122:00pm EDT
Embedded vision applications typically make heavy demands on processors - not just in terms of processing performance, but also regarding memory, I/O, and real-time behavior. In this class, we explore the processor requirements of embedded vision applications in quantitative and qualitative terms. We then discuss the six main types of processor used in embedded vision applications, highlighting their key strengths and weaknesses and how they are evolving over time.
Sep 11, 20122:00pm EDT
Image sensors are the "eyes" of embedded vision systems, and their characteristics largely determine the capabilities of the systems on which they are built. In this session, we introduce the most common types of 2D and 3D sensors used in embedded vision applications and explore their strengths and weaknesses. We also highlight recent developments in sensor technology.
Sep 10, 20122:00pm EDT
In this course we introduce embedded vision - the incorporation of computer vision techniques into embedded systems. Via case studies, we explore the functionality that systems can gain with embedded vision and provide a taste of typical vision algorithms. We also discuss technology trends that are enabling embedded vision to be used in cost-, energy- and size-limited applications, and we highlight challenges that must be addressed in integrating embedded vision capabilities into systems.

ARM Cortex-M0

Aug 24, 20122:00pm EDT
This discussion presents an overview of commercial CORTEX-M0 components. We present component families from Freescale, Nuvoton, NXP, and ST Microelectronics. This discussion provides insight into today's available product. Our objective is to provide information about today's commercial devices and how a designer might select a particular part.
Aug 23, 20122:00pm EDT
This discussion is the third of three views into the details of the CORTEX-M0 processor features. Presented from the point of view of an embedded system designer, this discussion will address four of the key features of the CORTEX-M0 processor, which provide the competitive advantage the M0 is famous for. Those areas are power management, exception handling, stack structures, and SVC/WFE/WFI instructions.
Aug 22, 20122:00pm EDT
This discussion is the second of three views into the details of the CORTEX-M0 processor features. Presented from the point of view of an embedded system designer, this discussion will address the following features of the CORTEX-M0 processor: the SYSTICK core peripheral, the NVIC core peripheral, the SCB core peripheral, and the MPC core peripheral.
Aug 21, 20122:00pm EDT
This discussion is the first of three views into the details of the CORTEX-M0 processor features. Presented from the point of view of an embedded system designer, this discussion will address four different aspects of the CORTEX-M0 processor. They include the instruction set, the memory map, the register set, and the execution modes.
Aug 20, 20122:00pm EDT
This discussion shows by example the advantages of the CORTEX-M0 architecture over older 8- or 16-bit small computer embedded architectures. Performance and code style advantages will be discussed. On-chip peripheral features of older devices will be contrasted with those of today's modern devices. Our objective is to provide a well rounded understanding of the new 32-bit CORTEX-M0 landscape.

Linux Kernel Debugging

Aug 10, 20122:00pm EDT
The fifth and final course for the week will start with a demonstration on compiling the kernel with debugging information enabled. It then will delve in the KDB symbolic debugger/disassembler and KGDB source debugger. Before doing a wrap-up, Anderson will show how to employ hardware debuggers such as JTAGs.
Aug 9, 20122:00pm EDT
Getting down to the fine art of debugging, Anderson will go into detail on three operations: Ftrace, Oprofile, and LTTng. What these techniques mean and how they are applied will be the crux of this lesson.
Aug 8, 20122:00pm EDT
The third class lets the students virtually roll up their sleeves and begin enabling and using DebugFS. They'll also learn how to use kprobes, jprobes, and jretprobes. Finally, the SystemTap will be explained in detail.
Aug 7, 20121:00pm EDT
On the second day of class, instructor Michael Anderson will cover how to debug with printk, how to handle instrumenting code with /proc and /sys entries, and more.
Aug 6, 20122:00pm EDT
During the first class, students will learn how to get code into the kernel with kernel loadable modules. They'll learn how problems manifest themselves in the kernel, specifically referring to kernel panics, kernel oops, and other improper behaviors. After analyzing panics/oops to find the next step, the class will wrap up by watching interactions between user-space and kernel space via strace.

Introduction to Electronics

Jul 27, 20122:00pm EDT
Electronic components like integrated circuits are incredibly useful - but not when they're in isolation. The unsung hero of the electronics system world is the circuit board, which connects everything together. In this session, we will discover the origin of printed circuit board technology; single-sided, double-sided, and multi-layer circuit boards; and flexible circuit technologies. We will also consider electronic systems in general, leading to concepts like "The Internet of Things."
Jul 26, 20122:00pm EDT
In this session, we consider the earliest forms of programmable logic devices (PLDs), including PROMs, PLAs, PALs, and GALs, many of which are still in use to this day. Next we consider the evolution from simple PLDs (SPLDs) to complex PLDs (CPLDs). Also, we consider the problems with ASICs/SoCs and the gap between SPLDs/CPLDs and ASICs/SoCs that led to the introduction of FPGAs. In addition to discussing FPGAs in some detail, we consider the various programming technologies that may be used.
Jul 25, 20122:00pm EDT
In this session, we discover different types of ICs, including analog, digital, mixed-signal, and radio frequency (RF). We will also introduce the concepts of microprocessors (MPUs), microcontrollers (MCUs), programmable devices (SPLDs, CPLDs, and FPGAs), and ASICs/ASSPs/SoCs. Different forms of memory (SRAM, DRAM, EEPROM, Flash, FRAM, MRAM, and PCM) will be introduced. Also discussed will be different forms of packaging, including System-in-Package (SiP) assemblies and 3D IC technologies.
Jul 24, 20122:00pm EDT
In this session, we will discover the difference between the analog and digital domains; the wide variety of analog sensor technologies that are available; the ways in which we can implement multi-value digital systems; the ways we sample analog values and convert them into their digital counterparts; the difference between analog signal processing (ASP) and digital signal processing (DSP), and much, much more...
Jul 23, 20122:00pm EDT
We introduce fundamental concepts, starting with protons, neutrons, and electrons, leading to molecules, crystals, etc., which leads to the difference between conductors and insulators. We consider voltage and current, resistance and resistors, capacitance and capacitors, and inductance and inductors. Next, we look at different ways to control electricity, from switches to relays to vacuum tubes to diodes and transistors. Finally, we see primitive logic functions like NOT, AND, and OR gates.

Testing Wireless Devices & Systems

Jul 13, 20122:00pm EDT
This lecture will provide practical guidance on deployment testing in the field. We will discuss test methods, test equipment, and strategies for obtaining valid test results under variable field conditions and in the presence of interference. In addition, we will wrap up any loose ends from the previous days' lectures and answer any remaining questions.
Jul 12, 20122:00pm EDT
This lecture will cover the challenges associated with production testing of wireless hardware. We will discuss strategies for optimizing test speed, maximizing yields, and minimizing false failures. We will also examine test fixturing for over-the-air coupling to a wireless device under test (DUT).
Jul 11, 20122:00pm EDT
This lecture will examine QA test and test automation techniques. We will cover common test scripting and regression test methods and will discuss ways of reproducing field conditions and field failures.
Jul 10, 20122:00pm EDT
Today's lecture will cover R&D test methods and metrics applicable to wireless products. We will learn about performance and certification testing of RF and protocol layers. The material will include test methods for measuring radio range, data rate adaptation, roaming performance, throughput, and system level functionality.
Jul 9, 20122:00pm EDT
In this session, you will learn about wireless test methods, test standards, and test equipment used in R&D, quality assurance (QA), and production. We will cover performance, interoperability certification, and regression testing of mainstream wireless devices and systems, including WiFi, LTE, and other technologies. We will discuss hardware and software test methods and review test and certification standards from organizations including IEEE, IETF, 3GPP, PTCRB, and GCF.
CEC Semester One 2012

Hands-On Analysis of Five MCU Development Kits

Jun 22, 20122:00pm EDT
As a designer, you must consider more than finding good dev-kit hardware and an MCU to work with. In this session you will learn what to look for in a kit, what to watch out for, where to get support, debugging and programming tools, the need for testing, helpful books and references, design challenges, and so on.
Jun 21, 20122:00pm EDT
This kit, DM182015-1, lets engineers and programmers test wireless communications between two transceivers that use the Microchip MiWi protocol. Participants will learn how a wireless connection operates and see sample code for such a connection. An API simplifies wireless-communication software. Also covered: the use of a packet "sniffer" to observe wireless traffic.
Jun 20, 20122:00pm EDT
Atmel provides the small XMEGA-A3BU Xplained board and software to introduce engineers to this MCU architecture and to the company's software tools. Those tools include easy ways to work with sample code and find documents. Participants will learn about the tutor's experience using the board and how well the software works.
Jun 19, 20122:00pm EDT
The EFM32 Tiny Gecko Starter Kit (EFM32TG-STK3300) gives engineers and programmers a board that lets them measure power consumption and correlate power use with code. Participants will see how that capability helps fine-tune programs for battery-powered and energy-harvesting applications.
Jun 18, 20122:00pm EDT
This session focuses on the expandable SiM3U1xx Precision32 Development Kit that provides an ARM Cortex-M3 MCU and headers for five I/O ports. Silicon Labs offers its own integrated development environment and AppBuilder software for a quick start with peripheral control. Learn about the ups and downs of working with the hardware and software.

Software-Defined Instrumentation

Jun 8, 20122:00pm EDT
In this session, you'll learn how to specify your test system, the requirements of a workable test plan, and how to reuse and adapt that plan across different scenarios.
Jun 7, 20122:00pm EDT
At the end of this session, you'll understand the components of a modular test software framework, how to approach application development, and the role of analog front ends in capturing test data.
Jun 6, 20122:00pm EDT
In this session, you'll learn how to define your requirements for selecting a modular test systems, the role of application development software, and configuration of measurement and control services.
Jun 5, 20122:00pm EDT
In this session, you'll understand how software is used as the underpinnng of virtual instrumentation, how it supports modularity, and how it can be configured to exact application requirements.
Jun 4, 20122:00pm EDT
In this session, you'll learn the basics of software-defined instrumentation, its benefits, and the differences between traditional and virtual instruments.

Principles of Interface Design

May 25, 20122:00pm EDT
While getting the current product out now is important, neglecting to look into the future now could cause problems later on. You'll learn how to balance a long-term vision of the desired direction with the immediate needs of getting a product out the door.
May 24, 20122:00pm EDT
In this session, you'll learn about the benefits of proactively looking for potential problems and also get some pointers on how to design and build robust solutions with fewer problems.
May 23, 20122:00pm EDT
In this session, you'll learn how both software and hardware can play an important role in sharing responsibilities for a balanced and efficient operation, and how you can potentially cut time-to-market.
May 22, 20122:00pm EDT
In this session, you'll learn principles developed for the interface between hardware and software that will increase the development success rate of embedded systems.
May 21, 20122:00pm EDT
In this session, you'll learn principles developed for the interface between hardware and software that will increase the development success rate of embedded systems.

Advanced LEDs & Displays

May 11, 20122:00pm EDT
This session will cover the overall topology and controls of Intelligent Buildings and also discuss how networked LED systems fit into the picture.
May 10, 20122:00pm EDT
This class will provide a survey of emerging display technologies related to LEDs and their respective market segments.
May 9, 20122:00pm EDT
This class will give an overview and comparison of Power Line Communication versus IP-based Smart Lighting systems. We'll conclude with a survey of implemented systems.
May 8, 20122:00pm EDT
LEDs are a fundamentally new class of lighting devices. In this class, you'll learn about their strengths and weaknesses: lighting quality, driver limitations, lifetime factors, and how to compare product specs.
May 7, 20122:00pm EDT
In our intro session, you'll learn how to power an LED, how switch-mode power supplies (SMPS) work, and we'll also cover different types of SMPS and examples of implementation.

MEMS Sensor Technology

Apr 27, 20122:00pm EDT
In this session, you will understand the requirements and challenges for successful integration of MEMS into your system designs. We'll also review the concepts and offer prescriptive advice to sum up this week's series of five lectures.
Apr 26, 20121:15pm EDT
In this session, you'll be introduced to MEMS sensors that are expanding the features and capabilities of consumer electronics. You'll understand how and why more types of MEMS devices are finding their way into mobile phones and devices.
Apr 25, 20122:00pm EDT
In this session, you will become acquainted with the MEMS devices that sense motion: accelerometers, gyroscopes, and inertial measurement units (IMUs). You'll also understand how motion sensors have enabled exciting new features in mobile phones, gaming consoles, and other consumer devices.
Apr 24, 20122:00pm EDT
In this session, you'll learn about the many applications for MEMS devices. You'll also come to understand how to use MEMS in your own systems and be encouraged to try new applications.
Apr 23, 20122:00pm EDT
In this session, you'll learn the basics of MEMS technology. You'll gain an understanding of the history and on-going evolution of MEMS, as well as important differences between MEMS sensors and standard integrated circuits.

Wireless Networks in the Factory

Apr 13, 20122:00pm EDT
In this session, you'll come away with practical guidance on how to implement a wireless network. You'll learn about creating requirements and selecting appropriate products, as well as test, validation, and budgeting.
Apr 12, 20122:00pm EDT
In this session, you'll learn about the emerging interoperability standards for smart metering and industrial control applications. You'll understand the utility of the 915MHz band and other popular international unlicensed bands.
Apr 11, 20122:00pm EDT
In this session, you'll learn about ZigBee and other wireless protocols used for sensors and controls. You'll also understand the differences among them, as we compare ZigBee to Bluetooth and to proprietary wireless technologies used for a variety of low-power applications.
Apr 10, 20122:00pm EDT
In this session, you'll understand the alphabet soup of 802.11 specifications, including existing and emerging standards for transmission, security, and QoS. You'll also learn how different WiFi technologies fit together to serve factories, enterprises, hotspots, and wireless broadband.
Apr 9, 20122:00pm EDT
In this session, you will learn about the mainstream wireless technologies and their applications in the real world. We will cover the fundamentals of 21st century radios, including OFDM, MIMO, and smart antenna techniques, and you'll also get an overview of mainstream wireless standards.

System-Level Testing & Debugging

Mar 23, 20122:00pm EDT
In this session, you'll learn how soft skills can be enlisted in the service of system-level testing & debugging. Our lecturer will give you tips and techniques you can apply in the important areas of sleuthing skills, preventive skills, and people skills.
Mar 22, 20122:00pm EDT
In this session, you will understand several important techniques for addressing failures, such as divide and conquer, analyzing data, and consulting with experts. Our lecturer will also explain why solving current problems isn't enough and what you need to do to prevent system failures in the future.
Mar 21, 20122:00pm EDT
Getting deeper into the execution of the test plan concepts discussed in the previous lecture, in this session, you'll learn about the use of prototypes and simulations. You'll also understand how to bring up a system a piece at a time, and then test that system as a whole.
Mar 20, 20122:00pm EDT
In this session, you'll learn the fundamental principles and common methods of testing. You'll also understand the non-testing aspects important for testing. In addition, our lecturer will discuss his unconventional use of “hackware” to produce high-quality results.
Mar 19, 20122:00pm EDT
In this session you will learn the fundamental concepts of system test and debugging. You'll come away from the session understanding how to improve your success rate with complex systems consisting of modules developed by different teams and across disciplines.

Advanced Industrial Control Processing

Mar 16, 20122:00pm EDT
In this session we will discuss the concepts of determinism and response times, along with real-time operating system (RTOS) fundamentals. You'll also learn why and how industrial control systems need to consider things happening in real time, which requires immediate response to interrupts in a predictable manner.
Mar 15, 20122:00pm EDT
In this session, you will learn how control programming techniques have evolved, from early graphical ladder diagrams to modern graphical interfaces. You'll also learn about high-level programming concepts (both textual and graphical), which drive modern controller programming software packages.
Mar 14, 20122:00pm EDT
In this session you will learn the main considerations behind designing the Human-Machine Interface (HMI), where interaction between operators and machines occurs. You'll learn how to effectively control the machine and utilize feedback in making operational decisions.
Mar 13, 20122:00pm EDT
In this session you will learn the differences among the different hardware platforms available for industrial control applications. These include programmable logic controllers (PLCs), programmable automation controllers (PACs), and embedded single board controllers (SBCs). You'll also learn how these systems can be used in conjunction with each other.
Mar 12, 20122:00pm EDT
At the heart of every industrial control system is a processor. In this session you will learn the difference between a microprocessor and a microcontroller. You'll also learn how ASICs and ASSPs differ from SoCs. Finally, in this session you will learn how each of these components fits into the big picture.

Basic Industrial Control Processing

Mar 2, 20122:00pm EST
An industrial safety system is used to protect humans, the manufacturing/processing plant, and the environment in case the process goes beyond safe control margins. As the name suggests, these systems are not intended for controlling the process itself but rather protection. In addition to introducing various safety considerations and systems, our expert will also discuss the influence of European regulations on worldwide industry practices.
Mar 1, 20122:00pm EST
Programmable logic controllers (PLCs) are digital computers / control systems that are designed to be extremely reliable and to handle the stresses of harsh industrial environments. Their more-sophisticated cousins – programmable automation controllers (PACs) – combine the features and capabilities of a PC-based control system (like extremely high speed and floating-point processing) with those of a PLC (like extreme reliability). Our expert will introduce these.
Feb 29, 20122:00pm EST
The inputs and outputs to and from a controller may be a function of time (or time-driven), which means that the control flow is driven by a clock; or things may be controlled by events (event-driven), which means that the control flow is determined by events, such as a sensor triggering or a user action or a message from another control system. Our expert will introduce the concepts of discrete (digital), continuous (analog), time-driven, and event-driven systems.
Feb 28, 20122:00pm EST
A control system has one or more inputs from external sources and one or more outputs driving external loads. The controller may also use one or more feedback loops, which refers to sampling the outputs from the downstream process and feeding these sampled values back as additional inputs into the control system. Our expert will introduce the concepts of open-loop, closed-loop, linear, and non-linear control systems.
Feb 27, 20122:00pm EST
In its most general sense, a control system is a device that is used to manage, command, direct, or regulate the behavior of other devices, processes, or systems. Industrial control systems are used in the manufacturing and production of products and the control of processing plants. Our expert will discuss the evolution of control systems and introduce a variety of fundamental concepts.

Sensors

Feb 17, 20122:00pm EST
The rules can change when sensor specifications exceed those for high-volume applications. High precision and accuracy sensors as well as measurement extremes often dictate different sensor technologies. This lecture will explore a few of the more challenging situations.
Feb 16, 20122:00pm EST
Design considerations for interfacing sensors vary depending on the sensor's output and the application's requirements. This tutorial will address some of the more common issues.
Feb 15, 20122:00pm EST
For some measurements, selecting the right sensor simply involves a few parameters such as range, accuracy, and precision. However, applications with network communication and environmental issues such as temperature extremes and high humidity demand further considerations. Our lecturer will discuss a few of his favorites in this session.
Feb 14, 20122:00pm EST
Vision technology continues to evolve and offer users more choices. Is a CCD or CMOS sensor required? Find out from our expert in this tutorial.
Feb 13, 20122:00pm EST
Choosing the right sensor for industrial applications involves more than just the sensor technology used for the measurement. Other system requirements, including the network communication protocol, play equally important roles. Our expert will delve into some of the most common issues for industrial measurements.

Microcontrollers, Advanced

Feb 3, 20122:00pm EST
Most developers start debugging their code after it has been compiled and linked. That's a mistake! There will be bugs. In this session you'll learn to anticipate bugs, and to seed your code with constructs that capture the problems.
Feb 2, 20122:00pm EST
The quality revolution taught us that quality must be designed in, not bolted on. Yet the firmware industry has missed this critical point. Spend an hour with us and get the low-down on measuring bugs, and strategies to build error-free code from the outset.
Feb 1, 20122:00pm EST
Though commercial RTOSs have been around for 30 years, there's still a lot of confusion about what they're all about. Join us for a discussion about what's behind an RTOS, and what the benefits are. We'll also dispel some long-held myths.
Jan 31, 20122:00pm EST
The schedule grows much faster than the code size does. The only tool we know to defeat this is partitioning. Join us to see why most of the multicore hype is, well, hype, and how to really use multicore to partition a system effectively.
Jan 30, 20122:00pm EST
Most engineers building real-time systems rely on hope and miracles to get their systems working properly in the time domain. In this session you'll learn no-nonsense ways to deal with real-time issues, including hardware timing effects on firmware.

Microcontrollers, Basics

Jan 20, 20122:00pm EST
This lecture will survey the variety of hardware- and software-development tools available. We'll also provide you with an appreciation of the capabilities of free and paid tools, and an understanding of what you need in those tools.
Jan 19, 20122:00pm EST
This lecture will survey the variety of hardware- and software-development tools available. We'll also provide you with an appreciation of the capabilities of free and paid tools, and an understanding of what you need in those tools.
Jan 18, 20122:00pm EST
This lecture will survey the variety of hardware- and software-development tools available. We'll also provide you with an appreciation of the capabilities of free and paid tools, and an understanding of what you need in those tools.
Jan 17, 20122:00pm EST
Today's lecture will explain how to specify your requirements and select the appropriate chip families. It'll also enable you to better evaluate vendor development tools and support, and understand microcontrollers to determine future product capabilities.
Jan 16, 20122:00pm EST
At the end of this session, you will understand how a microcontroller differs from a microprocessor, understand the types of analog and digital peripherals on an MCU, and understand the types of communication devices available on MCUs.