Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

cu-summer-stem-embedded-systems

The Cooper Union - Summer STEM Embedded Systems: C-ing Beyond Arduino

Starting with programming an Arduino Uno Rev3 with the Arduino framework and progressing to bare-metal C on the underlying AVR microcontroller, students will dive headfirst into the embedded world where all the safety is off, and all our favorite abstractions are gone. Students will start with an Arduino and get comfortable interfacing with hardware using digital IO, PWM, ADCs, interrupts, and communications protocols like UART & I2C. Once familiar, the facade will get peeled away, and students will get a rundown of a Unix shell, computer architecture, compilers, build systems, and debuggers. Using this new-found knowledge, students will go through the paces of writing a device driver using one of the available memory-mapped peripherals on an AVR microcontroller to gain familiarity with bare-metal C. Throughout the course, students will get constant exposure to practical embedded applications and by the end, will have to come up with and implement an embedded application from scratch.

Student outcomes:

  • Gain familiarity with embedded tools and hardware devices.
  • The ability to apply embedded programming techniques.
  • Successfully traverse datasheets and sample code.
  • Debugging techniques (software and hardware) along with collaboration.

Copyright (C) 2025 Jacob Koziej <jacobkoziej@gmail.com>

Distributed under the CC-BY-NC-SA-4.0.