Robotics · Completed
The Deskinator
An autonomous desk-cleaning robot that our four-person team improved through mechanical, electrical, and firmware testing.
Boston University · EK210 · Team of four · Fall 2025
On this page
- Role
- Firmware and integration contributor
- Contribution
- Navigation firmware, system assembly, and mechanical and electrical troubleshooting.
- Evidence
- Documented suction trial: 72 of 95 rice grains collected

Objective
Our EK210 team set out to build a robot that could clean a 4 ft × 4 ft desk without driving over an edge. I wrote the Arduino C++ firmware for S-curve pathing, IR-triggered edge avoidance, and gesture activation. I also helped assemble the system and troubleshoot the mechanical and electrical subsystems.
The final concept combined two encoder motors, three downward-facing IR sensors, a gesture sensor, a centrifugal blower, a debris filter, and separate power paths for motion and control. The report framed safe movement and thorough cleaning as the two highest-priority objectives, followed by debris collection, compact size, battery life, noise, maintenance, and cost.

Approach
- Drive: The original motors struggled under the robot’s weight, so we moved to 12 V N20 encoder motors.
- Vacuum: We replaced the original fan after early pickup tests showed that it could not collect rice reliably.
- Filter: When a shorter replacement filter was delayed, we built a perforated paper-cup-and-gauze substitute to keep the prototype moving.
- Nozzle: We narrowed the opening and angled it toward the desk to improve contact with debris.
The motor and fan changes were coupled. The 12 V battery increased the load carried by the drive system, which exposed the original motors’ torque limit. The stronger blower improved pickup but also dominated power consumption. The filter and nozzle changes then addressed the airflow losses between the desk surface and the fan.

Firmware and edge response
The firmware waits for a recognized gesture, enables the fan and motor driver, and runs a timed cleaning routine. In the main loop, it reads the left, center, and right edge sensors before issuing the next motion command. A triggered sensor stops both motors before selecting a pivot direction; encoder counts control the turn rather than relying on a fixed delay alone.

Test / Results
The report records an early trial with about 24% pickup and a final trial with 72 of 95 rice grains collected, or 76%, after the fan, filter, and nozzle changes. Our team placed in the top four of roughly 20 groups during the class demonstration.
The robot demonstrated edge avoidance and gesture activation, but neither behavior was fully repeatable. A better test plan would use timed runs across several debris patterns and record both pickup percentage and successful edge detections.
The report also records two control limitations. Fast hand swipes were easier for the gesture sensor to miss, and the near/far gestures were less reliable than the directional gestures. Motor commands below roughly 100 stalled the drive, while higher speeds reduced the time available for the edge sensors to stop the chassis. We used a command near 120 as the workable middle ground during testing.

