A pair of 9g digital hobby servos are utilized for part rotation and swinging a set of mirrors in front of the top vision to allow it to also provide the bottom vision.
360 degrees of part rotation is implemented, has an accuracy of about 1.6 degrees, and a best case rotation speed of 0.13sec/90 degrees.
The mirrors should be able to extend or retract in 0.19sec.
Full rotation and clearance for parts up to 21.5x21.5x12mm is implemented.
The current design including the camera weighs 59 grams which is lighter than an assembled E3D v6, and the goal is to allow this to fit in its place.
This should allow adapting any existing 3D printer with decent accuracy, Z axis speed, and a stable build platform for small scale pick and place.
It should be noted that the cheap, knock-off version servos will not work here for part rotation. The measured accuracy of the knock-offs was almost 5x worse and they had significant backlash as well. This almost killed the project before it started as that was my original servo for testing.
However, I was pleasantly surprised when I tried some still relatively inexpensive, but genuine manufacturer servos. In this case, they were Tower Pro. They exhibited basically zero backlash (as the potentiometer is tightly coupled to the output shaft), and accuracy within 1 degree for most of the scale. As I'm using a 2:1 drive, that puts the overall accuracy at about 2 degrees.
There would need to be compensation for linearity if I used these for absolute positioning and temperature/timing issues could cause drift, but the nature of this task is relative if approached correctly. You pick up a part, rotate, check the positioning, and then rotate it relative to the previous position. This pattern will inherently correct for drift related errors. They should perform that task just about as well as the common Nema 8 stepper solution.
Another caveat is that if the requested motion is less than 2 degrees, the servo sometimes doesn't move at all. So I'm anticipating needing to code a minimum move size which backs off and then rotates to the target to compensate.
Lastly, a flying bottom looking camera doing vision during moves requires special sauce to work in OpenPnP. It does have a defined path for implementation though.
A couple of these things may require modifications to OpenPnP to work, but I think the result will be worth it.