Skip to content

Lab Timeline & Summaries


Lab 0 – Stopwatch & Graphical Menu

Due Mar 26

Objective: Familiarize with the TM4C1294XL LaunchPad, Code Composer Studio, and basic peripheral programming.

Highlights: System clock setup, LCD initialization, timer ISR, button debouncing, and menu navigation.

View Lab 0 →

Lab 1 – FreeRTOS Stopwatch

Due Apr 2

Objective: Move the stopwatch from a bare-metal super-loop into a FreeRTOS application built from scratch.

Highlights: Manual FreeRTOS integration, task creation, queues, periodic scheduling, and RTOS-based stopwatch design.

View Lab 1 →

Lab 2 – Multi-Screen Dashboard

Due Apr 9

Objective: Refactor the Lab 1 stopwatch into a modular multi-screen application with interrupt-driven buttons, joystick navigation, and microphone level monitoring.

Highlights: Multiple source files, binary semaphores, software timers, ADC microphone sampling, and true multitasking across screens.

View Lab 2 →

Lab 3 – Snake Game Part 1

Objective: Implement the core architecture for the Snake game: create FreeRTOS tasks for game logic, input handling, and display updates; protect shared LCD access with a mutex; use message queues for inter-task communication; and apply priority tuning plus runtime profiling to observe and optimize real-time behavior.

Highlights: Task creation, mutexes, message queues, priority tuning, and runtime profiling.

Lab 4 – Snake Game Part 2

Due to Thanksgiving break, there is no rush on Nov 25.

Objective: Enhance your Snake game with advanced FreeRTOS timing, synchronization, and performance analysis: precise periodic tasks, buffered input, real-time metrics, and robustness.

Highlights: Hardware timer jitter measurement; vTaskDelay vs vTaskDelayUntil comparison; counting semaphore joystick buffer; 10ms chronometer (software timer); wall collisions & game-over animation; stack usage display, optimization & overflow detection.

Lab 5 – Final System Integration

Objective: Integrate all previous modules into a single multitasking system.

Highlights: FreeRTOS task coordination, inter-task communication, performance monitor, and adaptive Snake gameplay.