Archive for the 'Review' Category

Bus Servo Draw Bot

I wanted to complete a start to finish project with the LX-16A bus servos to do a complete review of their viability for the type of mechatronics projects I do. The low price of the LewanSoul bus servos make them a competitive option over digital servos. I chose to do a remake of the Line-Us clone drawing machine because I would not need to spend too much design time and it would be a good 1:1 comparison with digital servos. Since the bus servos are quite a bit larger, I decided to scale up the machine by 1.5x.

Made My Own Brackets.

I started by buying one servo and it came with brackets. When I went to get more, I noticed the price was lower. I did not realize I was getting these without brackets. These are the brackets you get with the more complete kit.

I requested some 3D models from LewanSoul. They were only able to provide 2D DXF files, but they were easy to convert in Fusion 360. This allowed me to 3D print some brackets. It actually worked out quite well because I was able to thicken up the brackets and integrate some captive square nuts.

They mounted easily to the servos and were plenty strong for this project.

Servo Arms

I made two arms and one short cam for the Z. They were about 4mm thick and had a little pocket that slid over the standard round actuator. They screwed on with the screws that come with the servos. Before mounting anything I turned on the servos and moved them to the center of the range. This put the arms at a known angle.

Support Bracket and Base

The support bracket holds all three servos and there are 2 pockets on the bottom for some shaft bushings.

The base has two shafts pressed into it.

The shafts slide into the bushings and there is a spring to hold the parts together.  The spring prevents the pieces from separating and also provides a little extra pull down force in case the shafts bind a little. The cam provides about 6mm of lift.

Final Assembly

The servos are mounted to the support bracket.

The wires are connected to the servos. They just daisy chain from one servo to the next.

The remaining links are then connected.

Testing

Here is a video of the first run.

Results

I think these are a good alternative to digital servos. They are very strong, easy to mount and accurate. Depending on the design of the controller, using a simple UART might be easier than having multiple PWM signals or extra hardware. The servo’s size might be larger than some machines need but that comes with the higher power.

Source Code

Some people have asked for the source code. Here is what I have. I just tweaked something I had to be good enough for this demo. I can’t offer support for it other than a few quick questions asked on this blog post.

Assembly Model

all I have is this partial STEP File

 

 


 

If you want to be notified of future blog posts, please subscribe.

LewanSoul Lobot LX-16A Serial Servo Review

I stumbled upon these LewanSoul LX-16A Servos the other day on Amazon while searching for standard digital servos. These servos are digital serial bus servos. That means they use a serial protocol on a bus rather than a PWM signal. I have used bus servos before, but the $12 price got my attention. That competes well with plain old PWM servos.

Serial bus servos have some real advantages over standard PWM servos.

  • Wiring: The wiring can be a lot simpler because you can put all your servos on a single 3 wire bus. Each servo has 2 connectors to make daisy chaining easier.
  • Higher resolution: The resolution is typically higher. It depends on the way they sense position. These use a high accuracy potentiometer and list 0.24° as the resolution.
  • You can set the speed: You can set a destination and speed for each move.
  • Set the range: You can limit the range of the servo. This is great if the using the full range would crash a joint on your machine.
  • Continuous turn mode: There is a speed adjustable continuous rotation mode on these, but absolute distance moves cannot be done.
  • Motor On/Off: Turn the motor off for manual movement.
  • Feedback: The communication is bi-directional so you can query a servo for…
    • Position: If you manually move a servo, you get its position. This is great for recording “poses” or setting range limits.
    • Temperature: You can read the current temperature of the motors.

Compared to Robotis

I have used the Robotis Dynamixel XL320 servos before but these are a lot stronger and the XL-320 has a weird, plastic rivet, mounting systems that I am not fond of.

Here is a size comparison with a XL-320.

Specs

Spec LX-16A XL-320
Max. Torque 17 kg-cm 4 kg-cm
Resolution 0.24° 0.29°
Range 240° and Continuous Rotation 300° and Continuous Rotation
Speed 62 RPM 114 RPM
Weight 52g 16.7g

Usage

To use the servos you need to use one of their controllers. The most basic controller just converts a USB or TTL serial signal to their protocol. The controller is small and low cost ($10). You can send commands via a USB (Com Port) or via the TTL pins.

Setup Program.

They have a setup program.  The program is Windows only and I had to run it in Administrator mode to get it to work. This makes setting up the servos easy, but you could write your own program if you don’t want to use theirs.

TTL Control

They also provide some Arduino Sketches. They worked fine and are a good place to grab some code if you are writing your own program.  The sketches use the Arduino hardware TX and RX pins. That conflicts with uploading, so you need to disconnect the controller every time you upload. I edited the sketch to use SoftwareSerial on some other pins and that made playing with the code a lot easier.

First Impressions

I found the servos very easy to use and they appear to be strong and responsive. I think they will be a good option for my on my machines.

Next Steps

I want to test these in a real machine. I thought I might try to make a slightly larger version of my Line-Us clone. That would be a good comparison of accuracy. I might try one day build on it tomorrow.  I can probably get a machine designed and built in a day, but the controller programming would need more time.

 

Digital vs. Analog Servos

wiggles

There is quite a bit of wiggliness on my drawing bot. While it is a bit adorable as it draws, I wanted to see if I could improve the line quality. I thought increasing the the rate at which I updated the position would make it smoother. I took it all the way up to 48Hz, but was not getting much better quality than I did at a 1/4 of that.

Analog Servos

I little research into analog servos brought some possible solution to light. Analog servos are controlled with a PWM signal.  The PWM pulse should be between 1ms and 2ms and repeat at 50Hz.

servo_timing

The basic technology inside an analog servo has been around longer than I have. The circuit converts the signal pulse into a voltage based on it’s length.  The output shaft is coupled to a potentiometer which also outputs a voltage. These two voltages are compared to produce an error voltage.  The error voltage would be positive or negative based on which direction off the output shaft potentiometer is from the input signal voltage.  This voltage is sent through an amplifier and then to the motor.  The motor turns in the proper direction until the error voltage is zero.

aservo

One problem with this method is the voltage to the motor is proportional to the error voltage.  The motor will have very little torque when the error is small, as would occur with small moves.

To keep the servo from being overly sensitive to small changes changes in the pulse length, the servos have a deadband.  Over sensitivity would cause jittering and use a lot of power. The deadband is expressed in microseconds (us). Analog servos typically have a 5us deadband. If the error is less than the deadband, the servo will not move.

If the servo pulse range is 1ms to 2ms or a 1000us range, then this causes the second problem. A  1000us range divided by the 5us deadband is 200.  This means I basically have to move more the 1/200 of the usable range to get it to move.  The full range is 180° so I have roughly 1° resolution.  That will cause lines to look very jittery.

Try this to get a feel for an analog servo.  With the servo receiving a commanded position, attempt to rotate the output.  You will notice two thing. First you will notice the strength of the servo is proportional to how far you twist it off the commanded position. The second thing to notice is noise and vibration.  That vibration is the 50Hz PWM period.

Digital Servos

Digital Servos use the same same basic input method (1ms to 2ms pulse) to preserve backward compatibility, but everything is done digitally.  Additionally, most of the servo’s parameters can be programmed. The digital circuit does not need to be limited to the 50Hz period and the control loop can be more sophisticated than simply using the error voltage.

The two immediate things I can take advantage of is lowering the deadband.  I can program it down to 1us or on some servos even lower. This give me a 5x improvement in resolution.  The other thing is the higher torque at small moves.

Try this to get the feel for a digital servo.  With the servo receiving a commanded position, attempt to rotate the output.  You will notice two thing. First you will notice the strength is very strong regardless of how far you twist it. The second thing to notice is noise and vibration.  That vibration is going to be a much higher pitch.

The results.

digital_wiggles

The results are subtle, but I think it is better.  With no changes to the firmware it got a little better.  I changed the update rate from 50Hz to 200Hz and it got a little better again.

I used Hitec HS5055MG servos.  I wanted a brand name servo, I know I could program.  Out of the box the servo only had about 90deg of rotation.  I was able to up that to about 178.  I was quite surprised I could not get 180°.  That needed to be accounted for in the kinematic or the shapes are distorted.

I think if you want the best, go for the digital, but in my opinion, the improment in quality did not justify the cost.

 

 

Geckodrive G540 Review

G540 Stepper Motor Controller

I have some projects coming up that will need a fourth axis, so I needed to buy a 4 axis motor controller.  I tried a cheap Chinese Toshiba TB6560 based drive a while back and had a bad experience.  A good controller is not all about current, voltage or step size.  What you really want is smooth running motors.   Some controllers have such bad resonance that the motors shake and jump and miss steps.  Some are so bad they are vitually unusable at low speeds.  Some have horrible inconsistent motor noise even when stopped.

I have had great luck with my Geckodrive G203V Stepper Drivers on my big 1200 oz/in motors for my router and those motors have a reputation of being tough to control.  Therefore, I decided to give the G540 4 Axis Drive a try.  It retails for $299, but you can usually find a street price of about $250.  I found a good price at Kelinginc.com and found they had a “will call” option for delivery.  They are in the area so I decided to give them a visit.  I met with the owner, John.  He was very friendly guy and we chatted for about 30 minutes and he gave me a tour of the place.  I have no trouble recommending him to anyone.  Tell him I sent you.

The controller is rather small at 6.375 x 2.375 x 1.25.  Below it is pictured with a G203V.

Gecko G540 Size Comparison

Continue reading ‘Geckodrive G540 Review’

New Laser Engraver Controller

Retna Engave Controller

Full Spectrum Engineering is about to release it’s new Retna Engrave laser engraving controller.  It is initially targeted at the hobby and DIY market.  There are Chinese controllers available, but most people are quickly underwhelmed by the software that comes with them.  The Moshisoft and Newlydraw interfaces are quite quirky.  Note: The image above is probably an old version.

Henry Liu, the head of Full Spectrum, and I have been chatting back and forth since the beginning of my laser project.  He is very sharp and seems to have good pulse on the low end laser and DIY laser community.  We hashed out most of the controller options out there from DSP to FPGA and both decided that the XMOS chip might be the perfect device for the job.  Once he decided to go full force with the XMOS, I stopped working on mine, knowing that he could do a better job.  He is sending me one of his controllers to try out next week.

Currently the controller runs as a printer driver for Windows.  This means that basically any program can use it to cut or engrave.  He also has a Mach3 plug-in coming soon and eventually an  open API where others can create new applications for it.  It falls short of full open source, but it is a good option for many of us.  The controller hangs off an existing DB25 parallel connector, so it is an easy upgrade for anyone currently using Mach3 or EMC2.  The firmware is also upgradeable over the USB connection.

Continue reading ‘New Laser Engraver Controller’

MachStdMill – A Taste of Mach4

I decided to give the MachStdMill Mach3 screen set a try.  This is the new look and feel that the yet to be released Mach4 will have.  They decided to make a version available for Mach3 to get some early feedback and to lower the learning curve when Mach4 is released.

You need to upgrade to development release Mach3 R3.042.040 before you are able to run the new screen set.  There is a a good installation “readme” PDF that walk you through the install.  There is also a forum dedicated to support of it.

My First Impressions.

The screens have a much more work flow feel to them.  Things are consistently arranged and are on the correct page when you need them.  I have tried a bunch of the screen sets on the Mach forums in the past.  Typically, I just scratch the surface of what Mach3 can do for my routing and laser requirements so, just about any screen set is going to work for me.  I often changed just to get a new look for a while.  This, though, has a totally different feel to it.  I like it and it should definitely make a usability and productivity improvement.

Continue reading ‘MachStdMill – A Taste of Mach4’