April 23 - Day 4: Building a Solution Using an ARM Controller
Continuing Education Center 4/23/2015 425 comments 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.
April 22 - Day 3: Solutions for Cloud Storage in the IoT
Continuing Education Center 4/22/2015 459 comments 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.
April 21 - Day 2: Introduction to Cloud Computing
Continuing Education Center 4/21/2015 544 comments 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.
April 20 - Day 1: Internet of Things Overview and Requirements
Continuing Education Center 4/20/2015 611 comments 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.
April 10 - Day 5: Engineering Systems for Emergency Preparedness: Long-Term Concerns and Other Issues
Continuing Education Center 4/10/2015 312 comments 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.
April 9 - Day 4: Engineering Systems for Emergency Preparedness: Systems and Services
Continuing Education Center 4/9/2015 381 comments 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.
April 8 - Day 3: Engineering Systems for Emergency Preparedness: Supplies and Storage
Continuing Education Center 4/8/2015 348 comments 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.
April 7 - Day 2: Engineering Systems for Emergency Preparedness: Regional Differences
Continuing Education Center 4/7/2015 322 comments 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.
April 6 - Day 1: Engineering Systems for Emergency Preparedness: Living Things
Continuing Education Center 4/6/2015 332 comments 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.
April 3 - Day 5: PSoC BLE Part 2
Continuing Education Center 4/3/2015 411 comments 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.
April 2 - Day 4: PSoC BLE Part 1
Continuing Education Center 4/2/2015 423 comments 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.
April 1 - Day 3: PSoC and Physical Computing
Continuing Education Center 4/1/2015 494 comments 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.
March 31 - Day 2: Getting Started with PSoC
Continuing Education Center 3/31/2015 524 comments 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.
March 30 - Day 1: The World of PSoC
Continuing Education Center 3/30/2015 594 comments 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.
March 13 - Day 5: Development Kits and Reference Designs
Continuing Education Center 3/13/2015 579 comments 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.
March 12 - Day 4: Software Tools
Continuing Education Center 3/12/2015 685 comments 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.
March 11 - Day 3: Device Features and Functions
Continuing Education Center 3/11/2015 668 comments 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.
March 10 - Day 2: Motor Control Algorithms
Continuing Education Center 3/10/2015 779 comments 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.
March 9 - Day 1: An Introduction to Motor Control
Continuing Education Center 3/9/2015 773 comments 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.
February 27 - Day 5: Writing Portable Code
Continuing Education Center 2/27/2015 601 comments 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.
February 26 - Day 4: Design Patterns for Firmware
Continuing Education Center 2/26/2015 628 comments 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.
February 25 - Day 3: Driver Design Techniques
Continuing Education Center 2/25/2015 668 comments 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.
February 24 - Day 2: Baremetal Scheduling Techniques
Continuing Education Center 2/24/2015 711 comments 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.
February 23 - Day 1: C Concepts for Embedded Systems
Continuing Education Center 2/23/2015 938 comments 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.
February 13 - Day 5: Coding Smart Module Device Drivers with the CCS C Compiler
Continuing Education Center 2/13/2015 382 comments 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.
February 12 - Day 4: Bluetooth on Your Phone Courtesy of the CCS C Compiler
Continuing Education Center 2/12/2015 376 comments 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.
February 11 - Day 3: The Internet of Things According to CCS C
Continuing Education Center 2/11/2015 440 comments 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.
February 10 - Day 2: Embedded USB Tasks with CCS C
Continuing Education Center 2/10/2015 446 comments 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.
January 29 - Day 4: IPv6 for Micros: Project Phase II – Simple Web Server
Continuing Education Center 1/29/2015 499 comments 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.
January 27 - Day 2: IPv6 for Micros: Setting up the Development Environment
Continuing Education Center 1/27/2015 522 comments 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.
January 26 - Day 1: IPv6 for Micros: IPv.6 Review and Defining Our Project
Continuing Education Center 1/26/2015 581 comments 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 - Software Tools
Continuing Education Center 1/16/2015 419 comments 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.
Programmable Logic - Adding Processors
Continuing Education Center 1/15/2015 524 comments 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.
Programmable Logic - Specialized Functions
Continuing Education Center 1/14/2015 544 comments 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.
Programmable Logic - Switches and Logic
Continuing Education Center 1/13/2015 612 comments 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.
An Introduction to Programmable Logic
Continuing Education Center 1/12/2015 822 comments 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.
December 16 – Day 2: Web Application Security: Injection
Continuing Education Center 12/16/2014 330 comments 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.
December 5 – Day 5: Software Architecture of a UAV
Continuing Education Center 12/5/2014 449 comments 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.
December 4 – Day 4: From Architecture to Implementation
Continuing Education Center 12/4/2014 462 comments 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.
December 3 – Day 3: Understanding Embedded Software Architectures
Continuing Education Center 12/3/2014 492 comments 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.
December 2 – Day 2: Software Architecture using UML
Continuing Education Center 12/2/2014 573 comments 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!
December 1 – Day 1: Introduction to Embedded Software Architecture
Continuing Education Center 12/1/2014 624 comments 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.
Fifty-six-year-old Pasquale Russo has been doing metalwork for more than 30 years in a tiny southern Italy village. Many craftsmen like him brought with them fabrication skills when they came from the Old World to America.
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.