Introduction: Circuit Specialists 180 Degree Servo Tower Modify to Continuous Servo Tower.
Have you ever try to convert once of these servo towers before? If you did then you would know that, it is not hard, the concept at least. However, if you try to program them after the modification you might face a serious problem. The servo tower doesn't really stop when you send in the command, and this could be a pain. If your plan for these convert servo towers are "wheels motor" for your Arduino rover project then bad luck for you. Because your rover would never stop running around. etc.
Therefor, I decide to write up my experience on how to modify these servo after modifying handful of servo tower myself, and learn couple hard lessons. Our final goal for this modification is able to control the servo tower in a precise matter after the modification.
If you don't know what is the application for this servo, you could look at the video. In this short clip, I use the converse high torque continuous servo tower in a robot arm project. The robot arm was able to move from 170 to 180 and stop in stunning precision and extremely stable. With the 12kg/cm of torque that Circus Specialist's servo tower offer and my gear reduction unit 1:4. My robot arm can pick up an object have 10 kg mass at ease. :}
Throughout the article there will be tips section. These sections usually talks about the mistake that I made during that process. You can use these tips to avoid some of the mistakes.
Step 1: Understanding About 180 Degree Servo Tower
The way 180 degree servo motor work more simple than you think. The only difference between these servo motors and continuous servo motor is, continuous servo motor doesn't have a micro potentiometer and the main gear locking pin.
I have been searching around how to modify these servo for quite a while now. Also try it out myself and broke couple servos myself ( no worry, just those cheap plastic once). The idea is quite simple, however, if you are a Maker like me, your standard would be pretty high. My final goal is able using an Arduino to control the servo motor come to a complete stop, since this was one of the worst problems I was facing during the process of conversing these servo. I will continue deeper on the problem when we get there.
Now, I have couple tip: If you are not familiar with electronics, taking things apart, you should work on a clean surface since you could drop these gears easily.
You could try out with plastic gear servo first since they require less tools to modify them.
I use a Metal Gear Digital High Torque Standard size Servo Tower from Circuit Specialists. They offer the best quality for your buck, I wish I have found about them before for all my robotic projects. These Servo Tower Metal Gear offers 12 Kg/cm for 5 bucks. Yes, 5 dollars and 43 cent to be exact , I mean it, check out the link for the link for the servo tower under.
The employee from the company are so nice. After finding out I am a student and also a member of Maker Community. They offered a promotion code for anyone interested. The code is"KHANGROBOTS" is valid for 10% off all purchases until 4/30/16. Anyone can use it so please feel free to try it out.
Stall torque 12kg/cm
Operating speed 0.20sec/60degree(4.8v)
Operating voltage 4.8-7.2V
Temperature range: 0°~55°
Servo Plug: JR (Fits JR and Futaba)
Step 2: Hardware Modify and Software Modify.
As I explained to you earlier. The idea behind the modification is simple, there are many Youtube video on how to modify these servo towers. However, due to my own experience, after modification process, these servo towers cannot come to a complete stop. They can be very slow turn, however, if your project requires a " breaking function" where the vehicle or robot need to come to a complete stop at a precise moment. That is when the problem really significant.
For that reason, I would like to break down this modification into 2 parts. The first is about the hardware, where we will take care of the locking pin on the main gear. The second part is about the potentiometer, and how to set the servo tower to a complete stop using Arduino basic programing.
Step 3: Hardware Modification Preparing Process.
First make sure your servo is secured, then remove the four screws in the back of the servo motor.
Make sure you keep this screws in a safe place, they hold the servo tower together so you don't want to loose them.
Second, you will need to flip the servo tower around. So do it slowly and carefully because you don't want the cover top to fall out. You could use one of your fingers to hold the top as you flip it around.
Now, it is important that you secure your servo tower because it is not going to move anytime soon :) .
After getting your servo tower secure, you can slowly take the top cover off. Remember, there will be gear set inside so you don't want to mess around with it before you get a better look at the initial setup.
If you follow through with everything, then, in front of you now should be a beautiful micro gear reduction unit. (shiny if you got the once like mine ;)
Tips: taking a lot of pictures from different angles to make sure got the gear set up for reinstallation later. Because different size servo tower or different brand could have different gear setup. However, for most the time as my experience, the standard size tower would have the same setup with the once you see in these pictures.
Step 4: Gear Remove Process.
Usually on the top of the stainless steel gear (main gear) will have a tiny bearing. You want to remove them and set them back in the top case.
The brass gear in the middle is the drive gear, you will need to remove it first before you can remove the main gear. Take it easy because you don't want to pull out the final gear.
After removing the drive gear and set it aside in a clean surface, you do not want anything to get between those tiny teeth.
Now you can remove the main gear, there will be another bearing there. It will either under the main gear or still on the servo tower. You can either leave it on the servo tower or you could set it on the side, don't lose it. This bearing keeps the main gear fitted with the servo tower.
Tips: It is important that you are working on a clean place. The reason why I make such a big deal about this because on these gears, they have a fair amount of grease. Therefor, they catch thing with them very easy.
When you remove the drive gear, you might want to use a small plier and move the drive gear up with the plier horizontal with it. This way you are not pulling the final gear, since the final gear is a little paint to put it back together but it is not impossible. The final gear set in place using a tiny axial, due to my own experience, sometimes the axial stuck in the top case, then the final gear would be easy to be moved out position so be careful and look for the tiny axil. After getting the axial from the top case you can then reinstall it in the final gear and secure it first before removing the drive gear.
Step 5: Modifying the Main Gear.
After having the main and drive gears off the servo tower, and keep them in a safe place. Now we need to clamp down the main gear nice and even because, we are going to cut down the locking pin.
Tip: This part is very important because you can mess up the teeth very easy during the process so be patient. Due to my own mistake, you don't have to have a perfect cut. What I mean here is that, give yourself some room, you don't have to cut it completely flat. As you see in the picture, my cut was pretty ugly, but I planned to fine it down at the end so I didn't mind that much.
You can use either a Dremel or just get a Dremel blade and blade holder, then you could use and power drill you have around.
If you get to this part then we are done with the hardware modification. You are now haft way through the process, give yourself a path on the shoulder.
Step 6: Electronic Modification Preparing Process
The electronic modification process require a little understanding about the Arduino Environment and a stable hand.
First, we need to understanding the Knob example. The knop function using the feedback from a potentiometer, convert the potentiometer value (ranging from 0 ~1024) to degree value ( 0~180). However the knop example does not tell you the position of your potentiometer so I made a little modify to the code.
int potpin = 1;
val = analogRead(potpin);
val = map(val, 223, 1003, 0 , 180);
Serial.print("Val: ");Serial.print(val); Serial.println(" degree");
We also need to wire a potentiometer to the analog Pin 1. If you are not familiar with wiring circus, don't worry I have just a link for you. Click here. It is more simple then you think. The basic idea behind a potentiometer is the resistant between two of its end .
After wiring and upload the code I have up there for you into your Arduino , now click on the Serial monitor icon on the up right corner (a mini magnifying glass). You should see something like the third picture, now adjusting your potentiometer to return 90 degree in value. And this is the only time you will need this potentiometer.
Tip: Please watch the video of the next part, The servo tower would be active after you upload the code to your Arduino so it is crucial that your servo tower is secured.
Step 7: Sub-hardware Modify
Don't worry if one of the gear in our servo tower starts to spin really fast, that is normal. If you follow the last step, then now your serial monitor should return 90 degree value. What you want to do next turns the potentiometer on your servo tower to 90 degrees also. This way the motor inside the servo tower will come to a complete stop.
Be more patient. You will most likely to overshoot it, don't worry, turn the potentiometer in the opposite direction slowly. You will able to walk down to that 90 degree value. Now practice couple more time to make sure you know the exact position of the potentiometer on the servo tower that make the motor come to a complete stop.
This part, since like it cancels out everything you have been trying to achieve. As you cut down the potentiometer stick like the second picture . Most likely the motor inside your servo tower will start to spin again, don't worry, if you have been practicing the last step your muscle memory should have no problem adjusting it back to stopping position.
Reinstalling the small bearing under the main gear back into the servo tower just like in the third picture. Then, once again cut that potentiometer stick flat against the bearing. This way we will prevent the main gear will turn the potentiometer in the future.
Tips: what I do extra to make sure the potentiometer inside the servo tower from moving is a small piece of napkin. Rip out a very small corner of a napkin. Then, using a tweezers push that tiny piece of napkin on one side of the potentiometer. Now you can re-adjust and make sure the motor in the servo tower comes to a complete stop, remove the bearing on that you installed earlier. The reason why because we about to use super glue so we don't want the glue effect the bearing. After putting the bearing on the side, you can now drop a very small drop on to the side of the piece of napkin that we pushed in earlier. This way the napkin absorb the super glue, gets harden and the potentiometer in place securely.
Step 8: Reinstallation.
Now is an easy part. After giving it 5 minutes for the superglue to dry. Reinstall the bearing for the main gear that we removed from the last step. Give it a little turn to make sure the motor doesn't activate because of the main gear. You can also take a look at the video I attached.
If everything is going smoothly, then you can now re-install the drive gear and you have done. Put the top case back on the servo tower firmly. Lets run some test on the Arduino before we bolting down everything.
For a quick and simple test, remember the potentiometer we wired to the Arduino to get the 90 degrees value? Now you can slowly turn the potentiometer and the servo tower should also start to move. Turning the potentiometer to the other direction will cause the servo tower to move in the other direction also. Try to listen for any grinding noise or sign of heating up.
Tips: Keep the power to your servo tower as all time. This way you know if some things touch the potentiometer and activate the motor inside. You can readjust the potentiometer before puts everything back on and find out that the potentiometer was moved. During the test, if you hear a grinding noise, you can carefully remove the top cover and perform the test. However, turn the potentiometer slowly, under high speed the gear could get loose.
Step 9: Final Examination.
This final step will ensure we achieve what we set out to do. Able to control the servo tower using Arduino in a precise matter.
This step will be no different than the last step that we do much. Click on the Serial Monitor icon in the up right corner of the Arduino environment and with the code I provided you, there should be a series line return in degree just like the video that I attached. Turn the potentiometer to the 90 degree position, the servo tower should come to a complete stop. Congratulation, you have successes convert a 180 degree standard servo tower to continuous servo tower and still able to control it in a precision matter.
Please contact me if you have any question about coding, hardware modification, sub-hardware modification. My email is : firstname.lastname@example.org
Participated in the
Hack Your Day Contest