Multisensor Temperature Monitoring System (ARM Cortex-M4)

Purpose / Problem

Design a real-time embedded system capable of monitoring multiple temperature sensors, detecting threshold violations, and logging alert events using deterministic, low-level firmware suitable for resource-constrained environments.

My Role

Individually designed and implemented the complete system in ARM Thumb-2 assembly, including interrupt handling, memory management, and system verification.

Technical Details

Implemented a 1 ms SysTick interrupt-driven architecture for periodic sensor sampling and processing

Designed a per-sensor finite state machine to detect high/low threshold violations, manage alert persistence, and handle alert clearance

Developed a custom xorshift pseudo-random number generator to simulate realistic temperature drift across multiple sensors

Enforced safe value clamping to maintain valid sensor ranges and prevent overflow conditions

Created a memory-resident, timestamped event logging system using compact data structures optimized for RAM usage

Manually managed stack, heap, vector table, and exception handlers in accordance with AAPCS and Cortex-M4 architectural requirements

Verified system behavior using the Keil µVision simulator by inspecting live RAM contents and interrupt execution without external hardware or I/O interfaces

Technical Difficulties

Originally the program was supposed to output 3 different alerts. Alerting when temperature thresholds were over or under and when the alert was cleared. However, due to the complexity of the cortex architecture, the alerts did not specify what type of violation had occurred.

I had prototyped the event logging to registers itself but due to the amount of data being inputted, memory storage was a better option.

Outcome / What You Learned

Gained strong proficiency in bare-metal embedded development using ARM assembly

Developed a deep understanding of interrupt-driven system design and deterministic execution

Improved skills in low-level debugging, memory organization, and ISR safety

Strengthened ability to translate real-world sensing problems into reliable embedded software architectures

Technologies & Skills

ARM Cortex-M4, ARM Assembly (Thumb-2), Embedded Systems, SysTick Timer, Interrupts & ISRs, Finite State Machines, Memory-Mapped I/O, Bare-Metal Firmware, Low-Level Debugging, Keil µVision

Elevator Simulation System (Verilog)

Purpose / Problem

Design and simulate a digital elevator control system capable of navigating multiple floors, processing binary inputs, and responding correctly to complex operational scenarios.

My Role

Designed and implemented the complete elevator control logic in Verilog, including state machine architecture, input handling, and system verification.

Technical Details

Developed a multi-state finite state machine to control elevator movement, floor selection, and direction logic

Modeled floor navigation using binary number operations to represent and compare floor positions

Implemented control logic to handle multiple input scenarios, including sequential floor requests and direction changes

Designed combinational and sequential logic blocks to ensure correct timing and state transitions

Created comprehensive testbenches to validate system behavior across normal and edge-case operating conditions

Outcome / What You Learned

Strengthened understanding of finite state machines and synchronous digital design

Gained hands-on experience with hardware description languages and simulation-based verification

Improved ability to translate real-world control problems into robust digital logic architectures

Developed disciplined testing practices to ensure reliability and correct system behavior

Technologies & Skills

Verilog HDL, Digital Logic Design, Finite State Machines, Binary Arithmetic, Testbenches, Simulation & Verification