October 22 – Day 3: Embedded TCP/IP Concepts
Continuing Education Center 10/22/2014 511 comments 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.
October 20 - Day 1: Design & Build a 32-bit Embedded Web Server
Continuing Education Center 10/20/2014 656 comments 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.
September 11 - Day 4: IPv.6: Traffic & Routing
Continuing Education Center 9/11/2014 411 comments 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.
September 10 - Day 3: Addressing in IPv.6
Continuing Education Center 9/10/2014 422 comments 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.
August 22 - Day 5: An Internet of Things Weather Station Example
Continuing Education Center 8/22/2014 623 comments 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.
August 21 - Day 4: Controlling Raspberry Pi Peripherals With Python
Continuing Education Center 8/21/2014 660 comments 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!
August 20 - Day 3: An Overview of the Raspberry Pi (& Single-Board Computers)
Continuing Education Center 8/20/2014 689 comments 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.
August 19 - Day 2: Python Fundamentals
Continuing Education Center 8/19/2014 633 comments 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.
August 18 - Day 1: Introduction to Python
Continuing Education Center 8/18/2014 774 comments 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.
August 8 - Day 5: Linux & Block Device Drivers
Continuing Education Center 8/8/2014 411 comments 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.
August 7 - Day 4: Input Device Drivers With the Linux OS
Continuing Education Center 8/7/2014 398 comments 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.
August 6 - Day 3: Serial Drivers Using Linux
Continuing Education Center 8/6/2014 464 comments 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.
August 5 - Day 2: Linux Character Device Drivers
Continuing Education Center 8/5/2014 599 comments 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.
August 4 - Day 1: Introduction to the Linux Kernel
Continuing Education Center 8/4/2014 715 comments 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.
July 23 - Day 3: Creating Schemas to Develop a Bluetooth Link
Continuing Education Center 7/23/2014 296 comments 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.
July 21 - Day 1: The Out-of-the-Box Bluetooth Experience
Continuing Education Center 7/21/2014 375 comments 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.
July 11 - Day 5: Tying Up the Loose ARM Ends
Continuing Education Center 7/11/2014 381 comments 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.
July 10 - Day 4: Build Your Own ARM-Based Product!
Continuing Education Center 7/10/2014 496 comments 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.
July 9 - Day 3: Understand the ARM Tool Flow
Continuing Education Center 7/9/2014 528 comments 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.
July 8 - Day 2: An ARM Cortex-M4 Design Example
Continuing Education Center 7/8/2014 582 comments 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.
July 7 - Day 1: An Introduction to the ARM Cortex-M4 Architecture
Continuing Education Center 7/7/2014 667 comments 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.
June 27 - Day 5: IIoT: Where Do We Go From Here?
Continuing Education Center 6/27/2014 352 comments 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!
June 26 - Day 4: The #1 IIoT Challenge: Security
Continuing Education Center 6/26/2014 381 comments 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.
June 25 - Day 3: The Backbone of IIoT: IPv.6
Continuing Education Center 6/25/2014 374 comments 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.
June 23 - Day 1: Background & Overview of IoT/IIoT
Continuing Education Center 6/23/2014 485 comments 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.
June 13 - Day 5: Arduino & Games
Continuing Education Center 6/13/2014 554 comments 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.
June 12 - Day 4: Arduino & Biomimicry
Continuing Education Center 6/12/2014 700 comments 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.
June 11 - Day 3: Arduino & Physical Computing
Continuing Education Center 6/11/2014 736 comments 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.
June 10 - Day 2: Getting Started With Arduino
Continuing Education Center 6/10/2014 737 comments 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.
June 9 - Day 1: Arduino Basics
Continuing Education Center 6/9/2014 834 comments 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.
May 23 - Day 5: C++ for Embedded - Case Study No. 2
Continuing Education Center 5/23/2014 517 comments 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 21 - Day 3: C++ & a Real-Time Operating System
Continuing Education Center 5/21/2014 694 comments 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 - Day 2: A C to C++ Migration Strategy
Continuing Education Center 5/20/2014 592 comments 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 - Day 1: C++ for Embedded Programming
Continuing Education Center 5/19/2014 870 comments 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 100% solar-powered airplane Solar Impulse 2 is prepping for its upcoming flight, becoming the first plane to fly around the world without using fuel. It's able to do so because of above-average performance by all of the technologies that go into it, especially materials.
With major product releases coming from big names like Sony, Microsoft, and Samsung, and big investments by companies like Facebook, 2015 could be the year that virtual reality (VR) and augmented reality (AR) finally pop. Here's take a look back at some of the technologies that got us here (for better and worse).
Good engineering designs are those that work in the real world; bad designs are those that don’t. If we agree to set our egos aside and let the real world be our guide, we can resolve nearly any disagreement.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.