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

