March 27 - Day 4: Embedded Ethernet the PIC Way
Continuing Education Center 3/27/2014 Post a comment 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.
March 26 - Day 3: Embedded USB the PIC Way
Continuing Education Center 3/26/2014 Post a comment 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.
March 25 - Day 2: The Multilingual PIC Microcontroller
Continuing Education Center 3/24/2014 Post a comment 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.
March 14 - Day 5: Your Own Design
Continuing Education Center 3/14/2014 Post a comment 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.
March 13 - Day 4: A Sample Design From Start to Finish
Continuing Education Center 3/13/2014 Post a comment 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.
March 12 - Day 3: Lattice LCMXO2 Evaluation Board
Continuing Education Center 3/12/2014 Post a comment 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.
March 11 - Day 2: Programmable Logic Design Flow
Continuing Education Center 3/11/2014 1 comment 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.
March 10 - Day 1: An Introduction to Designing with Programmable Logic
Continuing Education Center 3/10/2014 9 comments 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.
February 28 - Day 5: The Wonderful World of Software Maintenance
Continuing Education Center 2/28/2014 434 comments 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.
February 27 - Day 4: Testing Your Way to Success
Continuing Education Center 2/27/2014 583 comments 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.
February 26 - Day 3: Implementation Strategies
Continuing Education Center 2/26/2014 560 comments 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.
February 25 - Day 2: Software Design Principles
Continuing Education Center 2/25/2014 535 comments 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.
February 24 - Day 1: Introduction to the Embedded Software Design Cycle
Continuing Education Center 2/24/2014 576 comments 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.
February 13 - Day 4: Kernel Development
Continuing Education Center 2/13/2014 364 comments 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.
February 12 - Day 3: Customizing the Packages, Images & Layer
Continuing Education Center 2/12/2014 396 comments 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.
February 11 - Day 2: Building Pre-Defined Embedded Linux Images
Continuing Education Center 2/11/2014 395 comments 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.
February 10 - Day 1: Introduction to Embedded Linux & the Yocto Project
Continuing Education Center 2/10/2014 576 comments 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.
January 31 - Day 5: Benchmark Testing of MIMO Performance
Continuing Education Center 1/31/2014 337 comments 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.
January 28 - Day 2: All You Ever Want to Know About Channel Emulation
Continuing Education Center 1/28/2014 380 comments 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.
January 27 - Day 1: Wireless Technology Update
Continuing Education Center 1/27/2014 393 comments 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.
January 17 - Day 5: A Basic4Android HTTP Server App
Continuing Education Center 1/17/2014 432 comments 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.
January 16 - Day 4: Basic4Android Sockets and Digital I/O
Continuing Education Center 1/16/2014 433 comments 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.
January 14 - Day 2: A Basic4Android USB-Based Digital I/O App
Continuing Education Center 1/14/2014 521 comments 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.
January 13 - Day 1: Basic4Android Wireless Digital I/O App
Continuing Education Center 1/13/2014 591 comments 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.
December 20 - Day 5: Mitigation Strategies
Continuing Education Center 12/20/2013 177 comments 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.
December 19 - Day 4: Attack Methods
Continuing Education Center 12/19/2013 183 comments 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.
December 18 - Day 3: Vulnerabilities
Continuing Education Center 12/18/2013 161 comments 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.
December 17 - Day 2: Threat Sources
Continuing Education Center 12/17/2013 169 comments 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.
December 16 - Day 1: State of the Industry
Continuing Education Center 12/16/2013 213 comments 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.
December 6 - Day 5: Example Designs
Continuing Education Center 12/6/2013 213 comments 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.
December 5 - Day 4: Protecting Your Embedded System in the Field
Continuing Education Center 12/5/2013 220 comments 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.
December 4 - Day 3: Cryptographic Techniques to Protect Your Embedded System
Continuing Education Center 12/4/2013 236 comments 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.
December 2 - Day 1: Security Threats to Your Embedded System
Continuing Education Center 12/2/2013 291 comments 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.
November 22 - Day 5: Writing a Memory-Mapped Driver for a Timer
Continuing Education Center 11/22/2013 303 comments 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.
November 21 - Day 4: Organizing & Developing Reusable Code
Continuing Education Center 11/21/2013 389 comments 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.
November 20 - Day 3: A Review of C Programming Techniques
Continuing Education Center 11/20/2013 341 comments 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.
November 19 - Day 2: Developing a Software Architecture
Continuing Education Center 11/19/2013 319 comments 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.
November 18 - Day 1: Introduction to Embedded Software
Continuing Education Center 11/18/2013 427 comments 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.
November 6 - Day 3: MiWi Node Hardware
Continuing Education Center 11/6/2013 243 comments 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.
November 5 - Day 2: ZigBee vs. MiWi
Continuing Education Center 11/5/2013 202 comments 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.
November 4 - Day 1: What Is 802.15.4?
Continuing Education Center 11/4/2013 232 comments 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.