MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now

Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Robotic arm: turntable (part 2/3)

by WonderTiger Sep 2, 2016
Download All Files

Thing Apps Enabled

Please Login to Comment

Hi how are you

but I have a question

  1. What is the purpose of this BOURNS 3590S potentiometer?
  2. it is very necessary to use it
  3. As shown the adjustment for the nema 17 and the potentiometer
  4. I do not have anything that can help me better in the assembly of the rotating base of the robot.

Thanks, I'm listening for your comments

Explain it with a video or something to clarify that doubt. since the explosive sight does not tell me much

What I want to say is that the nema 17 that the relationship can do with the potentiometer.

  1. Measuring the angle of the base without a zero-point calibration
  2. No ofcourse not :)
  3. I'm not sure what's the question here
  4. Please use the fully expanded exploded view as stated by the comments below. There is really no easier way to to explain it :)

There is a file missing. If you count from the bottom up, it is the 3rd file. The circular disk with the groove in it.

All the files should be present, the circular plate with the groove should be the "Base Top" plate.

i think it was just a piece of hardware not an actual print. my mistake.
I am making this at 80%, because of my smaller print area. I think I can still make it work.

For those who are wondering, the exploded rendering is way bigger than you can see at first (or when you download).
Just click on it then the Full Screen, then View Original.... (very intuitive and easy...)

You will get this : https://thingiverse-production-new.s3.amazonaws.com/assets/81/b0/bc/5d/44/Render2.png

Hope it helps

There is a file missing. If you count from the bottom up, it is the 3rd file. The circular disk with the groove in it.

hello. I made gripper and arm. But I can not make turn table part. Can you explain it more?

  • Sent from 3D Geeks: Thingiverse Browser App for Android

In order to print, should I to rotate things?

Hello how do you do program with arduino. Can you help me.

Do we have the wiring or assembling video of the arm, turntable and various connections to the servo motors?

Thank you,

hello. Did you make it. If you made it, let me know how I can assemble turn table parts.

  • Sent from 3D Geeks: Thingiverse Browser App for Android

Hi, can you do a video on the assembly of the carousel?

Can you show more assembly photos. Your 2 photos doesn't help much

btw what version of solidwork you used to make these files? I used SW 2014, but no file can be opened

I used SW 2015, so you got some compatibility issues there. The exploded view should be all you need to assemble it, besides all the parts can fit only in a single position. However if you still have issues assembling the thing, please send me a PM.

Part 3 will come when?

Hi, I'm just finishing up Part 3. Currently I have uploaded it to thingiverse, but I still have to do some verifying. I think I'm able to make it public tomorrow around the same time as this post.

Yeah - I'm also waiting on part 3! This is a great design so far.

See my reply from above :)

When did you know about the future?

Excellent designs so far. I'm just finishing the gripper print and eagerly awaiting the final arm design.

Thank you.


I just finished a gripper assembly video, you can watch it on the thingiverse page of the gripper: http://www.thingiverse.com/thing:1748596.

Part 3 should be published in the upcoming weeks. I still have to do some torque testing with my custom Smart Servos before I will publish the files. If people are interested in the Smart Servos I will probably be able to sell a few. The Smart Servo will consist of a TowerPro MG995 with a custom PCB and 3D printable back cover. The functions of the Smart Servo are comparable to a dynamixel AX-12A at around 50% of the cost. I will add some more details about the Smart Servos in part 3 of the robotic arm :).

Robotic arm: gripper (part 1/3)

Your SmartServo is very interesting! I was looking for such solution for my Hexapod (http://www.thingiverse.com/thing:1203987)

Indeed it should be a good replacement for normal hobby servos and at the same time a cheaper alternative to the dynamixel servos. At the moment the Smart Servos are at the beginning of the design phase. The custom PCB contains some basic components like a DC motor driver, RS-485 transceiver, linear power supply and a 8-bit microcontroller from Microchip. I briefly tested the different components to see if they worked, and everything be fine. However there is still a ton of stuff to do on those Smart Servos ;). At the moment I'm developing a custom bootloader so I can program the microcontrollers over RS-485 (might even consider to implement chain programming, so all the servos in the chain can be programmed at the 'same' time) as I did not had any room left for a dedicated ICSP program header. After the bootloader is completed I will start working on the PID controller, communication scheme and a general interfacing library, as you can see I've got plenty to do ;). If you're interested I can keep you updated on the progress of the servo's, just send me a message with your e-mail.

Some photos of the Smart Servo PCB:

Nice work!
What about encoder? Do you rely on the original (and low quality) potentiometer? Or do you plan to change it, maybe switch to another solution, like magnetic encoder?
Another question: why RS485 and not I²C?
BTW, it seems you are using TowerPro clones (I don't see the capacitors on the motor); original MG99x have slightly different dimensions, so check for your final PCB: it would be pity not to be able to use original TowerPro servos (which have less gear backlash).

Yes, at first I will use the stock potentiometer. My guess is that the potentiometer will be fine, however I will probably make a device to test the linearity of the stock potentiometer. If the results of these tests are acceptable then I will continue to use the stock potentiometer, otherwise I will buy a better one. I probably won't go with the magnetic encoder solution as this will add complexity and cost, that way you might as well buy a dynamixel servo. But who knows... in the future I might consider a magnetic encoder implementation :).

There are two main reason why i'd go with RS-485 over I2C. First, as you might know RS-485 is a protocol that uses differential signalling, thus in environments where there is a lot of common mode noise, like noise generated by the brushes and commutator of the DC servo motors, the RS485 bus should be to handle it better than I2C. Also it should be able to work over much longer distances than I2C. For example I wouldn't even try to use I2C over a length longer than 1 meter, whilst this will be no problem for a RS-485 bus. Secondly, with a RS-485 bus I gain the flexibility to implement my own addressing scheme.

I indeed use the TowerPro clones, do you know the PCB dimensions of the original TowerPro's? I think the PCB should fit most standard size servos. The dimensions of the board are 21mm in length, 18.2mm in width and 1.6mm thick:

I think stock potentiometer is not linear at all. What you should do is use a LUT in your firmware, so one can set things really linear if needed. I agree, magnetic encoder is expensive, and not easy to adapt...

About RS485, you're right, this is a better idea here. I just hope it can be fast enough to be able to refesh the positions of 32 servos at, say, 100Hz.

Do you have a DXF file of your PCB, so I can check all dimensions? BTW, I only own original MG996R, not MG995, but I think they use the same enclosures.

At LUT might be a good starting point, but again I did not do any real world testing yet. So right now I'm just throwing around some ideas :).

Regarding the speed of the RS485 bus. First off it won't work like a conventional servo which you have to refresh with a ~50Hz PWM signal. My intention is that you can select a single servo in a network of multiple servos and then send a command like "go to angle 145, with a maximum speed of 50% and maximum acceleration of 10%". The servo that receives this message will then execute this command and stay at this end position until a new command is received. This way you will not have to refresh the position signal as often as you would normally have to do with the PWM signal.

However the answer to your question if it's possible to refresh 32 servos with 100Hz will probably be yes. The RS485 transceiver will be driven by an integrated UART module from the microcontroller. If we think about how a data packet would look like when we want to digitize: "go to angle 145, with a maximum speed of 50% and maximum acceleration of 10%", we can come up with the following:

  • Start flag, indicate the beginning of the data packet (1 byte)
  • Target servo address (1 byte)
  • Target servo command, e.g. go to to angle (1 byte)
  • Packet payload length (1 byte)
  • Packet payload, consisting of the maximum speed and acceleration parameters (2 bytes, 1 byte per parameter)
  • Packet checksum, simple exclusive OR checksum (1 byte)
  • Packet end flag, indicate the end of the data packet (1 byte)

The packet will then consists out of 8 bytes, so each servo that is refreshed 100 times a second will require a data rate of atleast 800Byte/s, this totals up to ~26 kByte/s for refreshing 32 servos at 100Hz. As I stated we'll use UART to control the RS485 receiver, thus each byte that will be send by the UART module will consists of 10 bits (start bit and stop bit are added), the required bandwidth will be around 256 kBits/s. Almost any low-end 8 bit microcontroller should easily go up to a data rate of 1 Mbit/s, thus the RS-485 bus, or in fact the UART, will not be the limiting factor of the system :).

At the moment I have no DXF file for the PCB, I will see if I can make you one.

Yeah, you're right, no need to such refresh rate! I think giving a new position 10 times per second is enough to make smooth trajectories. Good :o)

I checked the dimensions, and it should be OK. Is your PCB the final release? Or do you plan to make some modifciations? I can send you a real MG996R, so you can check yourself with the final release.

Another point: it is usefull to be able to have the connections on the rotation shaft. I designed a bottom cover for the MG996R whichs allow that: http://www.thingiverse.com/thing:1734234 (second picture). This is maybe something to take into consideration for the connector type/position...

The PCB on the pictures is the first version, it will probably undergo some modifications in the future. At the moment I'm using the same connector as the one that comes delivered with the servo, but instead of 3 pins it will have 4 (Vdd, DAT+, DAT- and GND). The drawback of these connectors are their height. The backcover will have to be about 10mm longer so that it will be flush with the back of the connectors. In my opinion this isn't optimal, so I will look for another type in the future.

At this stage the backcover you designed shouldn't give any issues as the rotation shaft is directly above the motor, and not located near the connectors. But then again I will probably use other connectors in the future, so will have to see how that goes :).

No, the rotation shaft is opposite to motor : it is just above the PCB, aligned with the potentiometer...

Whoops. You are right!! At the moment that will become an issue then, hmmm. I might consider an angled connector then! Tommorow I'm going to do some research :).

Whoops. You are right!! At the moment that will become an issue then, hmmm. I might consider an angled connector then! Tommorow I'm going to do some research :).

Whoops. You are right!! At the moment that will become an issue then, hmmm. I might consider an angled connector! Tommorow I'm going to do some research :).

Ziet er florissant uit.