Skip to main content
Back to Portfolio
University Project

embeddedpayrollsystem

Navigating extreme hardware constraints. Designing a functional system within the tight limits of an Arduino Uno using C++.

Memory-Constrained Environment

Developing on an Arduino Uno means strictly managing kilobytes of RAM. Every variable, protocol, and state transition was rigorously optimized to prevent memory leaks and overflows.

Core Architecture

  • Finite State Machine

    Structured core logic using a robust FSM to maintain predictable operations.

  • Custom Serial Protocol

    Designed efficient data transfer protocols to communicate reliably.

  • LCD Integration

    Interfaced with an LCD screen to display real-time payroll data securely.

  • Low-Level Memory

    Direct hardware manipulation and tight memory management in C++.

Technology Stack

LanguageC++
HardwareArduino Uno
InterfaceLCD Screen / Serial
ConceptsFSM, Memory Optimization

The Project

This project was developed for a university module focused on embedded systems. The objective was to design a functional payroll system, but with a major catch: it had to run entirely on memory-constrained hardware, specifically an Arduino Uno interacting with an LCD screen.

To make it work reliably within the tight memory limits, I wrote the software in C++ and structured the core logic around a Finite State Machine (FSM). I also had to design and implement custom serial communication protocols to handle data transfer efficiently without overwhelming the microcontroller's limited resources. It was a rigorous exercise in low-level programming and optimization.