Victor Speed Controllers and EMC2

I’m currently working on building a EMC2-controlled CNC machine with mostly parts I have on hand. I decided to use Victor 883’s to control my servos, but EMC2 does not put out the RC-style PWM signal that victors are driven with. Thankfully, hardware in EMC2 is configured with HAL, allowing the software to work with nearly any hardware. Below are the values and configuration I used. If you are planning on using other RC-style motor controllers, you’ll need to calculate these values yourself.

If you are planning on using an RC-style motor controller for a CNC machine, note that you will likely not get the precision achieved by professional servo controllers or homemade h-bridges. However, I have achieved excellent accuracy with the Victor 883 motor controller, my semi-tuned PID loop consistently gets +/-.0032″ accuracy.

Duty cycle range for Victor 883 (as measured)

Maximum duty cycle: 95.29%
Minimum duty cycle: 56.08%

Scale and Offset Values (scale/offset from [-1, 1] to [.5608, .9529] )

Scale amount: .1952
Offset amount: .7554

X-axis Configuration Example

# PWM output for X-axis
linksp Xpwm =>

setp pwmgen.0.pwm-freq 490.0 # seems to work well

# Minimum and maximum duty cycle for the Victor 883
setp pwmgen.0.max-dc .9529
setp pwmgen.0.min-dc .5608

# Scale and offset pwm signal
setp pwmgen.0.scale .1952
setp pwmgen.0.offset .7554

Ethan is a computer engineer and open source hardware/software developer from Michigan. He enjoys AVR and linux development, photography, mountain biking, and drinking significant amounts of home-roasted coffee. Find out more at

Tagged with: , ,
Posted in CNC
2 comments on “Victor Speed Controllers and EMC2
  1. gustavo says:

    Can you provide the hal files?

    • Unfortunately I scrapped this project after a while, I don’t think I have the files anymore (unless they are lying around on an old hard drive).

Leave a Reply

Your email address will not be published. Required fields are marked *