← Back to projects

Junior Design

Embedded Arduino/C++ codebase for my Junior Design team, structured as a modular PlatformIO project with reusable drivers and a state-driven main control loop.

Embedded ArduinoCustom PCB DesignWebsocket

Highlights

  • State-machine control flow designed for clear, testable behavior
  • Custom PCB creation and integration with reusable peripheral drivers
  • Websocket Communication for real-time data exchange and monitoring with bot

This repository contains the core embedded C++ codebase used by my Junior Design team.

Rather than concentrating logic in a single file, the codebase is organized to separate platform setup, reusable drivers, and application behavior.

Hardware / Platform
- PlatformIO-based embedded workflow (platformio.ini)
- Custom PCB Design for color sensors, IR sensor, and H-Bridge motor driver

Software Architecture
- Top-level state machine to manage system modes and transitions
- Clear separation between hardware initialization, peripheral drivers, and application logic
- Reusable drivers for I2C, SPI, UART, sensors, and actuators

Key Takeaways
This project strengthened my ability to:
- Design embedded software around state machines and explicit transitions
- Build reusable, well-bounded driver modules
- Maintain a clean project layout that scales with team development