Solis
A robot that pulls itself across a rooftop solar array on four strings. Built as a prototype by two design students in 2021.
A cased prototype that travelled across a real rooftop array on its four strings, driven from a phone. We never measured a clean.
- my part
- Industrial design student, co-designer
- when
- 2021, in a 180-hour course
- context
- Nirma University, Bachelor of Design, course IDPR 321
- team
- Two studentsDevarsh Patel helped with the design research and the making of the model; the deck credits us both
- status
- Prototype

outcomes
4
strings, one to each corner, each wound by its own motormeasured · sourceCounted in the 2021 deck: p.22 (four spools, four ropes), p.26 (motors M1 to M4, cable lengths D1 to D4), and the bare-chassis photo of 23 April 2021 (four steppers).
2
builds, a rig on a table, then the robot on a roofmeasured · sourceCounted in the 2021 deck: p.21 to 23 (the first rig on a table and on a floor) and p.24 to 25 (one chassis, bare, cased and on rooftop arrays).
180
hours, the whole coursereported · sourceThe 2021 deck, p.2: course IDPR 321, Course Duration 180 hours.
Somebody has to climb up there
On the roofs we visited, the arrays stood on steel legs, high enough that cleaning one meant a pole mop and sometimes a stool. In our user study we photographed panels cleaned five ways: rinsed with water from a bucket, then a broom, a brush, a wet mop and a dry cloth.
In our secondary research we read a 2017 study by Hussain, Batra and Pachauri, which found that a uniform layer of 10 g of dust on a single panel can cut its power by up to 25%. That figure is theirs, from a controlled experiment, not something we measured with Solis.
The pain points we wrote down were plain: the panels are hard to reach, water alone doesn’t shift the dust, a dry broom or brush struggles too, and monkeys defecate on them. Our brief was a device that cleans solid and liquid waste off a panel. Our list of desires added that it shouldn’t need a person to look after it.
Three ways to clean a panel
All three are on one concept sheet in our 2021 deck, marked up by hand with pluses and minuses.
decision 1
A cable drive instead of a gantry

We drew three ways in. A fixed frame round the panel with an actuator was automatic, but our notes say it couldn’t remove every type of dust and used no water. An X-Y gantry, the render on the sheet, could move in x and y and spin a roller, and was marked down for “low scalability” and “heavy, high power”: it needs a frame as big as the array it cleans. A spin mop on a pole had spin and water, and its third note, “Manual Effort”, carries a plus like the other two; a mop on a pole still needs a person. We kept the spin mop’s head and dropped the frame. In principle, four strings from the corners of any rectangle can carry the head anywhere in between.
Four strings, worked out by hand
The working is on two handwritten sheets, on the deck’s slide called Code.
decision 2
The maths on paper

Each motor sits on the robot and winds one string to one corner. The sheet puts the labels M1 to M4 at the four corners, and the drawing below keeps them; in the photos the steppers are on the plate. Put the robot at x and y from the bottom-left corner and every string is the long side of a right-angled triangle: Pythagoras, four times. A move is old lengths minus new ones, as the sheet has it, turned into motor steps, so some strings pull in while others let out. The joystick added or took away 10 from x or y, and the sheet ends in a loop: read the input, work out the lengths, step, go again.
3,200microsteps a turnsourceThe 2021 deck, p.26: steps per mm = 200 steps per rev × 16 microstepping, over the spool.200 full steps, each split into 16, so a spool can let out string a fraction of a millimetre at a time
Here is that sheet working. Move the box and watch which strings get wound in.
- M1 D1
- 1,769 mmholds
- M2 D2
- 3,087 mmholds
- M3 D3
- 1,389 mmholds
- M4 D4
- 2,886 mmholds
What the robot carries

one stepper per string
spins the mop
a pump for the water
one stepper per string
spins the mop
a pump for the water
The motors and the pump are all on the robot, so on the roof each string was clamped at a corner of the array, and the setup needs two measurements, the two spans between the clamps (xMS and yMS on the sheet). Two switches on the sheet run the mop and the water.
decision 3
Motors on top, spools underneath

We sketched three ways to stack a spool, a motor and the mop on one plate. Number 3, highlighted green, is the one we built: the motors stand on the plate and the spools hang under it. On the roof the strings leave the box just above the glass. The X plate in the corner of the sheet is the plate in the photo above.
decision 4
A plain box over the plate

We sketched drums, faceted shells and soft squares, then drew the plainest one in CAD: a rounded square just big enough for the plate, open underneath for the mop. We printed it in white, and the print lines show in the roof photos. The green-seamed dome on my old site is a render of a form that doesn’t appear in any photograph of what we built, so it isn’t here.
On a real roof

From a stool

On a table

Table legs

Spin mop

On the roof
By mid-May 2021 the box was out on rooftop arrays, held by its four strings and fed by a lead. On a real rooftop array it travelled across the panels on its corner cables, and we drove it from a phone; the video is linked at the foot of this page. The deck’s slide called Working holds a screenshot of the phone controller: a Bluetooth app whose title bar reads HC-05, the module on the plate, with a joystick and an Automatic Mode switch. The maths sheet has a box headed “Pre programed path” with nothing in it, and I can’t tell from the deck whether the switch ran that path.

In 2025 I came back to Solis and designed a companion app for it, and part of its code was written with AI. It’s a concept with demo data, and it has never talked to this robot.
