CNC – [protofusion] http://protofusion.org/wordpress Open Hardware and Software Sun, 12 Jun 2011 23:21:08 +0000 en-US hourly 1 https://wordpress.org/?v=5.6.13 11753368 DIY CNC Progress http://protofusion.org/wordpress/2010/12/diy-cnc-progress/ http://protofusion.org/wordpress/2010/12/diy-cnc-progress/#comments Thu, 30 Dec 2010 03:52:32 +0000 http://protofusion.org/wordpress/?p=707 ]]>

Since my last post, I have completed my junction box and I have prepared 3 motor/speed controller assemblies. I have acquired a second leadscrew to use for my Y-axis, and the electronic portion of the construction (except for limit switches) is complete. Now I can focus on the physical construction of the machine.

Update [6/12/11]: I now have all 3 motors up and running with leadscrews, and parts for both an X and Y linear bearing setup (pillow block on precision ground rod for Y axis, heavy-duty precision angle iron and captive rollers for X-axis). The Z-axis is still up in the air for now. I’ll post more information about materials in the near future.

Junction Box

The junction box is made from a stripped Cisco router, which acts as a great enclosure with integrated 5v/12v switching power supply. The integrated supply means I don’t need a USB connector to grab power from the controlling computer for powering encoders and other circuitry, which is quite convenient.

CNC Junction box

Junction box - 2 parallel in, 4 cat5 and 1 aux out. First 3 cat5 ports are for each axis, the last cat5 port is for the E-stop, and the "Serial 1" port is for future use.

The “Serial 1” port is currently not in use, but I might end up using it for turning my power supplies on and off from EMC2, as well as for additional inputs such as a handheld controller, spindle output, and/or DRO.

Servos and Controllers

I have 3 servo assemblies ready to go, although I am unsure if I will use one of these heavy-duty servos for  my z-axis. I have done some additional calibration of PID loops, and I still need to work on software backlash compensation.

Servos for all axes

Servos for each axis attached to speed controllers. The controllers are Victor 883's, really not the tool for the job, but they work well enough for my needs.

I will post additional information and CAD drawings when I get more work done on the physical design. I have some rough CAD sketches, but they are dimensionless at the moment.

]]>
http://protofusion.org/wordpress/2010/12/diy-cnc-progress/feed/ 4 707
Initial DIY CNC Prototyping http://protofusion.org/wordpress/2010/10/initial-cnc-prototyping/ http://protofusion.org/wordpress/2010/10/initial-cnc-prototyping/#respond Tue, 26 Oct 2010 03:38:19 +0000 http://protofusion.org/wordpress/?p=384 ]]>

I’ve started constructing the basic electronics for the CNC machine I’m working on. It’s going to be a cheap machine made with what I have on hand, so accuracy won’t be great, but it should be an interesting experience. The leadscrews I’m using are less than optimal, requiring much software backlash compensation, but should work well enough for basic CNC work. Some early build photos are included below.

CAT5 signalling cable for quadrature encoder, motor PWM, and limit switches for a single axis. Once my mouser order comes in, these will be nicely soldered with panel-mount connectors.

All communication for motor controllers (PWM), encoders, and limit switches is being done over CAT5 cable, just because it’s pluggable, easy to use, and longer or shorter cables can be swapped in. Currently it looks like I can live with 1 CAT5 cable per axis.

Victor 883 Speed Controller, by Innovation First

For motor controllers, I’m using Victor 883’s. The controllers are currently running at 12v, but will run at 24v once I get some appropriate power supplies. These controllers weren’t intended for precise positioning and motion control (they are RC-style, meant for competitive robotics), but they perform quite well after some HAL PWM adjustments to EMC2. After some PID tuning, accuracy has increased as well.

EMC2, E-stop button, and my crazy parallel port breakout. Soon to be enclosed in a project box with 2x DB25 and 5x CAT5 panel-mount connectors.

Speaking of which, I am using EMC2 to control my CNC machine. Communication is all over the parallel port, saving me a ton of cash that would otherwise be spent on an FPGA card (although I’ll be needing another parallel port PCI card). EMC2 provides a ton of functionality and, unlike all other software of its type, it allows low-level HAL descriptors for motor controllers, encoders, and any other hardware. This allows you to move some complexity from your hardware into your software, or to modify the software to use old or unsupported hardware.

EMC2 Motor Controller Test from Ethan Zonca on Vimeo.

I’ll be posting more information on the project as the summer progresses, although I expect progress to be quite slow.

]]>
http://protofusion.org/wordpress/2010/10/initial-cnc-prototyping/feed/ 0 384
Victor Speed Controllers and EMC2 http://protofusion.org/wordpress/2010/06/victor-speed-controllers-and-emc2/ http://protofusion.org/wordpress/2010/06/victor-speed-controllers-and-emc2/#comments Wed, 16 Jun 2010 21:26:10 +0000 http://protofusion.org/wordpress/?p=427 ]]>

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 => parport.0.pin-02-out

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

]]>
http://protofusion.org/wordpress/2010/06/victor-speed-controllers-and-emc2/feed/ 2 427