Archive for the 'Review' Category

Digital vs. Analog Servos


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.


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.


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.


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 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’