Date January 2026
Role Embedded & Robotics Engineer
Tech Stack
ESP32 ROS 2 Micro-ROS FreeRTOS Stepper Motors KiCad

Designed and built a two-axis pan-tilt camera platform with sub-degree positioning accuracy, controlled over ROS 2 via micro-ROS running on an ESP32.

Hardware

Custom 4-layer PCB in KiCad built around the ESP32-PICO-D4. Two NEMA-11 stepper motors with integrated encoders provide closed-loop position control. The PCB integrates:

  • DRV8825 stepper drivers with microstepping (1/32)
  • ICM-20948 9-axis IMU for feed-forward stabilization
  • PCA9685 PWM expander for camera trigger and auxiliary control
  • RS-485 transceiver for multi-drop daisy-chaining with other nodes
  • 12-48 V input with onboard buck converters for 5V and 3.3V rails

Firmware

Micro-ROS nodes run on FreeRTOS, publishing joint states and accepting position/velocity commands over ROS 2. A custom motion controller handles acceleration profiling, s-curve planning, and encoder-based backlash compensation. The IMU provides real-time orientation feedback for active vibration damping during camera exposure windows.

Integration

The system connects to the broader ROS 2 network as two JointState publishers and a FollowJointTrajectory action server. A launch file auto-discovers the device over serial and bridges DDS to micro-ROS. The platform achieves 0.05° absolute positioning accuracy with 100 Hz control loop updates.

Phone +1 (555) 000-0000
Location Plymouth, MI