Cam Bayona

// engineering portfolio
About Resume Projects Contact

Projects

// click a card to expand

Room reconstructed as a 3D LiDAR point cloud Robotics & Embedded
03

Custom 3D LiDAR & drivers

Built a 3D scanner with an RPLIDAR C1, a closed-loop stepper motor, and custom C++ drivers. Captures approximately 56,000 points in roughly five minutes.

C++ HAL Buffers Lidar
expand ↗
MIDI Controller Embedded
02

MIDI Controller

MIDI controller DJ board for assistive therapy
[In progress]

C++ TinyUSB MIDI
expand ↗
Autonomous Security Webcam Computer Vision
01

Autonomous Security Webcam

Pan-tilt camera that tracks moving objects in real time using OpenCV with closed-loop control on a Raspberry Pi.

Python OpenCV UART
expand ↗
Designathon CAD
04

Designathon Challenge

Calculator-mounted engineering symbol stencil done in OnShape CAD software.

OnShape
expand ↗
This website Web
05

This Website

Done in HTML with inline CSS & Javascript. Hosted on Netlify as a static website with tailored domain.

HTML CSS JS
expand ↗

Autonomous Security Webcam

Objective

Build a low-cost autonomous security camera that detects and tracks motion in real time without any cloud dependency.

Overview

Used a Haar Cascade classifier in OpenCV to detect faces and generate bounding boxes for centering within a target region. A Raspberry Pi 4 transmitted control commands via UART (PySerial) to an Arduino Nano, which drove a NEMA17 stepper motor through a TMC2209 driver, enabling closed-loop positional correction and feedback control.

Results
  • Tracks targets continuously with minimal observable jitter without PID tuning.
  • Designed serial communication architecture and power delivery system using buck converters and a barrel jack, with soldered wiring to improve reliability and electrical stability.
Links

MIDI Controller

Objective

The objective of this project was to develop a custom DJ board/MIDI controller as an assistive tool for therapy specialists working with patients. The device enumerates as a TinyUSB MIDI controller and integrates with Ableton Live, allowing its inputs to be mapped to various functions within the DAW. To support rehabilitation and motor-skill development, the controller features interchangeable knob sizes, enabling therapists to tailor exercises to patients' mobility and dexterity needs while tracking progress over time.

Overview

The board started with an RP2040 and being migrated to a Teensy 4.1 for additional analog pins. Currently, most of the software is complete and we are awaiting a finalized board layout schematic to begin PCB design. *Later iterations will auto-recognize input types by assigning each kind of peripheral a unique magnetic signature to easily identify when modules are swapped out via a hall-effect sensor.

Results
  • Migrated from a multi-stage pipeline (analog inputs → Arduino → Python/PySerial → Ableton Live) to a direct USB MIDI implementation on a single Raspberry Pi Pico using TinyUSB.
  • Supports MIDI mapping in Ableton Live for transport controls (play/stop, arm) via push buttons and parameter control (gain, effects) via potentiometers, with concurrent input polling for responsive multi control handling.

Custom 3D LiDAR & drivers

Objective

Build a hobby-grade 3D scanner from a 2D LiDAR. Over five months, I developed a system that rotates an RPLIDAR C1 along an additional axis using an MKS Servo 42C closed-loop stepper motor and custom 3D printed mounts.

Custom C++ drivers

I chose C++ for its performance potential and low-level hardware control. After experimenting with existing RPLIDAR libraries, I wrote drivers for both devices to gain the control needed to modify scan capture and benchmark speed improvements. The drivers discover the devices over USB, communicate over serial (UART), construct command packets, and parse device responses.

  • Packet synchronization, checksum validation, and recovery from malformed or misaligned data.
  • Bitwise decoding of distance, angle, quality, and scan-start information from the LiDAR byte stream.
  • Protocol-specific byte ordering, including the motor's big-endian response format.
  • Motor positioning using encoder feedback, angular calculations, and the configured microstepping.
Synchronized scanning & reconstruction

The scan starts by moving the motor to zero and initializing the scan state. At each position, the software verifies motor feedback, captures a valid 2D slice, and stores it with the measured angle. It then advances by 1° until 180 slices have been captured. Scan boundaries and measurement validation keep each slice tied to the correct motor position.

Coordinate transformations convert polar LiDAR measurements into 3D Cartesian coordinates, accounting for the motor's 180° rotation. The resulting point cloud is visualized in Open3D.

Latest results
  • Approximately 56,000 captured points in a recognizable room reconstruction.
  • A complete scan in roughly 5 minutes, improved from 8–10 minutes in earlier versions.
  • My highest-fidelity capture to date, shown in the first video.
Next steps

Occlusion, surface reflectivity, and measurement noise still leave gaps or imperfect regions. I plan to improve scanning throughput, refine noise filtering, and experiment with adaptive angular sampling to reduce unnecessary measurements.

Links

Designathon

Objective

My team and I were tasked with designing something useful for engineering students within a 24-hour timeframe. Instead of building a complex technical solution, we focused on a simple, common problem: drawing engineering symbols. We created stencil sets that attach to calculator cases, featuring symbols used in fields like electrical engineering, chemistry, and materials science.

Overview

Being a CpE student, I focused on making EE symbols, adding variety including logic gates and even a sinusoidal wave. We completed our project in OnShape, using a common derivation of a Ti-84 case as reference. I have attached a 3D model for viewing.

Results
  • Placed top 3 with Honorable Mention: Design Elegance
  • Designed 3-4 variations including chemistry, materials science & cases for Ti 30x iis calculators.

This Website

Objective

My goal was to make a concise, informative and sleek website that conveyed who I am and where my passions lie.

Overview

This website is composed of 3 main html pages, each containing common CSS classes and headers/footers for consistency. There are various folders containing the images and videos shown as well.

Results
  • Structured carousels with sliders allow for easy scrolling through my projects.
  • Included various embeds such as a 3D model viewer done with sketchfab, and a demonstration video of the 3D LiDAR scanner.