Robotics / Embedded systems
Autonomous Solar Panel Cleaning Robot
- STM32
- Embedded C/C++
- CAN bus
- Wi-Fi
- BLE
- Motor control
- Altium / KiCad
Developed as part of professional work. Architecture is described at a high level; proprietary schematics, source code and client details are omitted.
The problem
Solar arrays lose output to dust buildup, and manual cleaning doesn’t scale across a large industrial installation. TODO(berk): add the specific constraint that made a robot necessary here — array size, access, cleaning frequency required.
My role
I own the main control board: the hardware (PCB) and embedded firmware that runs the robot. This includes drive and brush motor control, electronic water-valve and lighting management, IMU-assisted driving, battery monitoring, non-volatile data storage, and the LED/buzzer warning system — all on a single platform. TODO(berk): note which parts of the system (mechanical design, mobile app, etc.) were owned by other engineers.
Constraints
- ESD and EMI protection required for outdoor industrial deployment
- TODO(berk): power budget, temperature range, cost per unit, safety requirements, timeline
System architecture
Single main control board handling drive motors, brush motors, water valve, lighting, IMU, battery monitoring and non-volatile storage. TODO(berk): block diagram (SVG) and a short walkthrough of how the subsystems talk to each other.
Firmware design
TODO(berk): task structure, scheduling, priorities, the state machine for the cleaning cycle, and how watchdog / fault recovery / safe-stop are handled.
Communication
2.4 GHz Wi-Fi and BLE for connectivity. TODO(berk): why these over a wired link for this platform, and how the robot integrates with the rest of the site (if applicable).
Hardest problem
TODO(berk): pick the single most interesting failure — what you observed, how you narrowed it down, root cause, what you changed.
Result
TODO(berk): measured outcome — uptime, cycle time, current draw, units built.
What I’d do differently
TODO(berk)