Welcome to EE 14!
This is the public-facing page for Tufts EE 14, Embedded Systems.
For information on the Spring 2026 offering of the course, see the about page.
Textbooks
- Alexander Dean, Embedded Systems Fundamentals (Free PDF, see Piazza for version with PDF bookmarks)
- Elecia White, Making Embedded Systems (Sign in with Tufts credentials)
Reference links
- STM32L432KC device page at st.com
- STM32L432KC datasheet (This describes the device specs and pinout)
- STM32L4xxx series reference manual (This describes all the registers and peripherals)
- Cortex-M4 programming manual (This is the detailed spec on what various assembly instructions do)
- Cortex-M4 technical reference manual (Includes details on how many cycles each instruction takes)
- ARMv7-M architecture reference manual (Even more detailed spec, including instruction encodings)
- Nucleo-L432KC development board
- Nucleo pinout diagram
Week 1 (Jan 11)
Introduction (Wednesday 1/14)
Read syllabus
Sign up on Piazza (see email invite)
Complete welcome survey to sign up for a lab time (link on Piazza)
Homework
Begin scavenger hunt
Read White,
chapter 1
Read Dean, p3-17
Complete reading check
1
Possibly helpful
Week 2 (Jan 18)
MLK day, no class (Monday 1/19)
Using GPIO (Wednesday 1/21)
Read Dean ch2, p28-38
Complete reading check
2 (Due before class, 9 AM)
Optimization example (add
-O1 flag to see)
Lab 1: Hello, embedded!
Just for fun
Week 3 (Jan 25)
Homework
HW 1: Bit manipulation practice (Due Wednesday
2/4)
Monday 1/26
❄️ Snow day, no class!❄️
Timers and PWM (Wednesday 1/28)
Complete reading check
3
Lab 2: Blinky blink
Homework
Week 4 (Feb 1)
The big loop (Monday 2/2)
Read Dean chapter 3, p60-69
Complete reading check
4
Managing concurrency with state machines (Wednesday 2/4)
Complete reading check
5
Lab 3: PWM
Homework
Homework 3: GPIO library (Due 2/18)
Week 5 (Feb 8)
ARM assembly (Monday 2/9)
Read Dean, p92-107
Complete reading check
6
From C to assembly (Wednesday 2/11)
No new reading or reading check!
In-class quiz 1 (Study guide)
Lab 4: Reading inputs from a keypad
No prelab, start on HW 3
Week 6 (Feb 15)
Presidents’ day, no class (Monday 1/16)
Function calls in assembly (Wednesday 2/18)
Read Dean, p143-161
All the places data can go (Thursday 2/19)
Lab 5: Building an electronic lock
Week 7 (Feb 22)
How interrupts work (Monday 2/23)
Complete reading check
10
Using interrupts (Wednesday 2/25)
Read Dean, p107-130
Complete reading check
11
Lab 6: Analog input
Week 8 (March 1)
Using interrupts well (Monday 3/2)
Read White,
ch5 “Interrupts”, section “When and when not to use interrupts”
Complete reading check
12
Serial communication with external peripherals (Wednesday 3/4)
No reading for today!
In-class quiz 2 (Study guide)
Homework 4
Code download (must
be on campus or VPN)
Lab 7: Interrupts
Week 9 (March 8)
UART and SPI
Read White,
ch7 “Communicating with Peripherals”, through section on SPI
Complete reading check
14
I2C
Read I2C -
Sparkfun Learn
Complete reading check
15
Lab 8: UART driver
White,
ch7, “Circular Buffers”
What happens before
Spring break (March 15)
Week 10 (March 22)
Creating a system architecture (Monday 3/23)
Complete reading check
16
Estimating requirements (Wednesday 3/25)
No reading for today!
Lab 9: I2C
Week 11 (March 29)
Clock trees, DACs, and DMA (Monday 3/30)
No reading for today
Writing for non-technical audiences, math operations(Wednesday 4/1)
Read White,
ch12 “Math”
Complete reading check
19
Project
Week 12 (April 5)
Doing math fast (and faster) (Monday 4/6)
No new reading
configure_linker.py script to
enable hardware floating point
Float Exposed visualization
Resets: sleep mode, watchdogs, and brownouts (Wednesday 4/8)
In-class quiz 3 (Study guide)
Week 13 (April 12)
What happens before main()? (Monday
4/13)
How a
microcontroller starts (Artful Bytes, uses STM32 as example)
Linker files and memory organization (Wednesday 4/15)
Week 14 (April 19)
Monday 4/20
Patriots’ day, no class!
(Wednesday 4/22)
In-class quiz 4 (Study guide)
Week 15 (April 26)
Wrapping up! (Monday 4/27)
Final project
Final project demonstrations, Thursday April 30, 1-2:30pm, TTC Atrium
Final project writeups due May 5