
Recently we suspected that one motor of our hexacopter had been damaged in a crash. Since removing the motor requires almost the complete disassembly of the copter I started thinking of ways to test the motor in place.
The most important parameters I was looking for were the speed of each rotor relative to the others, and the consistency of the speed over several rotations.
I settled on using a small 5V laser module and a photodiode to time the rotations of each rotor individually. One big advantage of this technique was, that you can shine the laser through the rotor at an angle, and don’t need to come to close to the “spinning fan of minor bodily harm”.
To detect the laser I used a simple circuit, consisting of a photodiode and an adjustable resistor. The resistor was set in a way, that the voltage at TO_OLS was above 2V with the laser shining on the diode, and less then 1V with the laser interrupted.

Schematic for the photodiode and resistor
To record the data, the output of the detector was connected to an Open Bench Logic Sniffer and reorded with [jawis] OLS client. This made the evaluation of the data very easy. The OLS was set to trigger on low levels, and the rotations became clearly visible in the OLS client.

OLS data at 89% speed setting. 3 rotations of the rotor are visible.
The distance between low levels can be directly measured in the OLS client and this was all I needed to compare all motors to each other.
In the end, all the motors were fine and the problem was most likely a simple calibration error before take off. If anyone is interessted, the maximum speed of one rotor was around 4000 rpm, which would result in a tip speed of about 250 km/h.