Modding HiTec HS-422 servo for continuous rotation
I got a lot of HS-422 servos, and i decided to mod one of them for continuous rotation.
The following method worked fine, but when testing i did notice something odd, and i will get in to that at the end.
What you need
- 2 x 2.2K resistor
- Flush cutters
- Soldering iron
- Dremel or other rotary tool (optional, but makes it a bit easier)
Basicly what we need to do, is trick the servo into thinking that its always at 90 degrees, that way it will keep trying to turn either left or right, when asking it to 0 or 180 degress.
1) Disassemble the servo by removing the 4 screws in the bottom.
Remove the bottom lid, to gain access to the control board.
Remove the single screw holding the potentiometer in place, and take out the potentiometer.
2) Now cut the 3 wires connected to the potentiometer, we don't need that anymore, but keep it for other use.
3) Now remove the cut of end from the control board by using the soldering iron.
There might be some glue, i just burned that away with the iron.
4) Solder 1 resistor across from where the green wire was connected, to where the yellow wire was connected, leaving the leg of the resistor a bit higher on the green side.
5) Now take the last resistor and solder it the leg of the other resister, on the green side, and solder the other end to where the red wire was connected.
The electronics part is now done, but we still need to remove the mechanical stop in the gears.
1) Turn the servo around, and carefully remove the top and make sure not the pull out any gears inside.
2) Locate the small notch located on the main gear (the one that sticks out of the servo chassis), now this need to be removed.
3) Start by cutting it with the flush cutters, making sure not to damage any of the teeth.
Then file down the rest, i used a rotary tool with a small sanding bit, this needs to be pretty smooth so it doesn't conflict with middle gear.
Make sure you don't leave to much debris inside, and that the gears a lubed before putting back the top.
Now put the whole thing together again, and check if its possible to turn it +360 degrees without any problems, if it seems like it can't turn, or it grinds at a certain spot, then you need to smooth it out a bit more.
You now have a continuous rotation servo.
Now i did some testing with an arduino nano, expecting the servo to stop at 90 and run full speed at 180 and 0 (in each direction).
But what happend was that it was running full speed at 0, stopping at 15 and fullspeed other direction at about 30. So i lost a bit of granularity in controlling the speed.
Not sure why this happened, but i might go back and test with some other resistor values, but as long as you keep that in mind when controlling it, it works great.