Designing IoT Edge Devices, was offered for the first time in Spring 2020 as a “Special Topics” pilot offering, with Ken Loparo as the instructor of record. After the pilot, the course will be scheduled for the Fall semester going forward.
Edge Computing is the next evolution of computing, after Cloud Computing, driven by the requirements of IoT where computing resources are distributed closer to the “edges” of the networks to reduce communication latency and bandwidth costs. Cloud Computing typically relies only on software designs running on virtualized hardware, whereas Edge Devices are embedded network devices requiring both hardware and software co-design. In addition to a generous grant supporting the course development, Intel Corporation provided hardware development kits for students to learn about the HW/SW co-design methodology needed to design IoT Edge Devices.
In this class students experience the development process of an Internet-of-Things (IoT) Edge Device from a software/hardware co-design perspective through a series of laboratory projects, which utilize real-time FPGA hardware, an embedded Linux system, and cloud-based connectivity. Topics covered include the embedded Linux build toolchain, Linux Kernel Device driver development, FPGA System-On-Chip peripherals, hardware/software debugging, user interface design, sensor data acquisition, connected device networking protocols, edge-computing, and cloud-based services. Prior experience with C/C++, Python, and Verilog languages is recommended.
The hardware platform, provided by the Intel Corporation, has both a dual-core Intel Atom® processor and an Intel Cyclone® FPGA connected together via a PCI Express bus. Accessing the FPGA hardware in Linux requires a kernel driver, which students will learn about and use to access sensor hardware. The hardware platform also includes a touch-panel LCD and keyboard to simplify development. Lab stations with this hardware platform, along with a Windows PC, have been setup in a new laboratory in the Olin Building dedicated for the course.