December 16 – Day 2: Web Application Security: Injection
Continuing Education Center 12/16/2014 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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 Post a comment 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.
November 21 – Day 5: Analog Design for the Digital World: Design and Test
Continuing Education Center 11/21/2014 Post a comment 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.
November 20 – Day 4: Analog Design for the Digital World: A/D and D/A
Continuing Education Center 11/20/2014 Post a comment 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.
November 14 – Day 5: An Example Implementation in Detail
Continuing Education Center 11/14/2014 Post a comment 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.
November 13 – Day 4: Protecting Your System in the Field
Continuing Education Center 11/13/2014 Post a comment 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.
November 12 – Day 3: Secure Devices - An Overview
Continuing Education Center 11/12/2014 Post a comment 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.
November 11 – Day 2: How do you Implement Secure Hardware?
Continuing Education Center 11/11/2014 Post a comment 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.
November 10 – Day 1: Stealing and Hacking Your Design is Easier than You Think
Continuing Education Center 11/10/2014 Post a comment 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.
November 3 – Day 1: Introduction to Advanced User Interface Technologies
Continuing Education Center 11/3/2014 Post a comment 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.
October 22 – Day 3: Embedded TCP/IP Concepts
Continuing Education Center 10/22/2014 509 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.
More often than not, with the purchase of a sports car comes the sacrifice of any sort of utility. In other words, you can forget about a large trunk, extra seats for the kids, and more importantly driving in snowy (or inclement) weather. But what if there was a vehicle that offered the best of both worlds; great handling and practicality?
Science fiction author Isaac Asimov may have the best rules for effective brainstorming and creativity. His never-before-published essay, "On Creativity," recently made it to the Web pages of MIT Technology Review.
Much has been made over the potentially dangerous flammability of lithium-ion batteries after major companies like Boeing, Sony, and Tesla have grappled with well-publicized battery fires. Researchers at Stanford University may have come up with a solution to this problem with a smart sensor for lithium-ion batteries that provides a warning if the battery is about to overheat or catch fire.
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.