Emco Compact 5 interface with linuxcnc (painless)
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
11 Jul 2013 20:34 #36556
by skunkworks
Emco Compact 5 interface with linuxcnc (painless) was created by skunkworks
we managed to get a few of these compact 5 pc from a local school. As most of you I started searching the internet for info on the lathe. I found this artical
www.maxton.com/ebay/emco/EMCO...to%20Mach3.pdf
from the digital machinist mag that explained how to remove the octal latch from the interface board, switching the board to step/dir and setting up mach. I did a search for the 74ls374 chip discussed in the artical. It looked like I could use linuxcnc to send the clock signal to the board. So after some figuring and searching I found figured out the printer port pins..
x step pin 2
x dir pin 3
z step pin 4
z dir pin 5
index pin 12
estop pin 11
100 ppr sensor pin 10
74ls374 enable pin 14
74ls374 clock pin 1
So I hacked together a hal file that used the 'reset' function of the printer port driver to send a clock every base period to latch the 74ls374 chip. After not remembering to set switch 1 to on on the emco interface board (sets the interface to step/dir) and scratching my I got linuxcnc communicating. The performance was not stellar. The article above talks about setting your max velocity to 19ipm. This is what I was seeing. Just pretty poor performance. Sounded crappy. Now it could be that I didn't have the timing perfect but read on.. (according to the article above - the original software did around 30ipm)
When I forgot to set switch 1 on the emco interface board - I had decided (by twiddling bits on the printer port with linuxcnc) that the default setup must have been phase drive. The original software controlled the 4 phases of the stepper drives/motors. I didn't have much to lose so I modified the linuxcnc hal file to do 4 phase drive for each axis and set switch on on the emco board back to 'off'.
HAL Component Descriptions
So pins 2-5 ran one stepper and pins 6-9 ran the other.
the stepgen in linuxcnc will do a bunch of wave forms - I was interested in - 5 through 10. (4 phase patterns)
I started with pattern 9. This is Unipolar Half Step
-This acted the same as the step/dir I started with. 19ipm max and sounded crappy.
Next I tried pattern 10. This was a long shot as it is Bipolar Half Step
-I don't think it worked at all - or at least it was way worse..
Then I tried pattern 5. Unipolar Full Step (one winding on)
-I had to half the steps per inch obviously - but it acted the same as the above. around 19ipm and sounded bad.
finally I tried patten 6. Unipolar Full Step (two windings on)
-Wow. This sounded nice. We started pushing it and it started sounding rough at around 40ipm. (didn't seem to be losing steps but I think I might be just fine with 35ipm max)
We still have to up the acceleration as that could be pushed a bit also. this is around .0005 per step - very usable.
Very happy.
Now we need to get the index and 100ppl setup in linuxcnc and I will take some videos (threading and such). with this performance initially - I don't know if I will change the drives/steppers until they fail...
one last thing I would like to try is putting the interface back into step/dir mode and from what I have read - you can put it into full step mode.
So - Again - this is without modifying the emco electronics in any way. Setting up linuxcnc to output the 'clock' to latch the chip.
when I get the encoder setup within linuxcnc - I will post the hal/ini files here.
Since yesterday - we have theading and also have been running it around 45ipm...
sam
www.maxton.com/ebay/emco/EMCO...to%20Mach3.pdf
from the digital machinist mag that explained how to remove the octal latch from the interface board, switching the board to step/dir and setting up mach. I did a search for the 74ls374 chip discussed in the artical. It looked like I could use linuxcnc to send the clock signal to the board. So after some figuring and searching I found figured out the printer port pins..
x step pin 2
x dir pin 3
z step pin 4
z dir pin 5
index pin 12
estop pin 11
100 ppr sensor pin 10
74ls374 enable pin 14
74ls374 clock pin 1
So I hacked together a hal file that used the 'reset' function of the printer port driver to send a clock every base period to latch the 74ls374 chip. After not remembering to set switch 1 to on on the emco interface board (sets the interface to step/dir) and scratching my I got linuxcnc communicating. The performance was not stellar. The article above talks about setting your max velocity to 19ipm. This is what I was seeing. Just pretty poor performance. Sounded crappy. Now it could be that I didn't have the timing perfect but read on.. (according to the article above - the original software did around 30ipm)
When I forgot to set switch 1 on the emco interface board - I had decided (by twiddling bits on the printer port with linuxcnc) that the default setup must have been phase drive. The original software controlled the 4 phases of the stepper drives/motors. I didn't have much to lose so I modified the linuxcnc hal file to do 4 phase drive for each axis and set switch on on the emco board back to 'off'.
HAL Component Descriptions
So pins 2-5 ran one stepper and pins 6-9 ran the other.
the stepgen in linuxcnc will do a bunch of wave forms - I was interested in - 5 through 10. (4 phase patterns)
I started with pattern 9. This is Unipolar Half Step
-This acted the same as the step/dir I started with. 19ipm max and sounded crappy.
Next I tried pattern 10. This was a long shot as it is Bipolar Half Step
-I don't think it worked at all - or at least it was way worse..
Then I tried pattern 5. Unipolar Full Step (one winding on)
-I had to half the steps per inch obviously - but it acted the same as the above. around 19ipm and sounded bad.
finally I tried patten 6. Unipolar Full Step (two windings on)
-Wow. This sounded nice. We started pushing it and it started sounding rough at around 40ipm. (didn't seem to be losing steps but I think I might be just fine with 35ipm max)
We still have to up the acceleration as that could be pushed a bit also. this is around .0005 per step - very usable.
Very happy.
Now we need to get the index and 100ppl setup in linuxcnc and I will take some videos (threading and such). with this performance initially - I don't know if I will change the drives/steppers until they fail...
one last thing I would like to try is putting the interface back into step/dir mode and from what I have read - you can put it into full step mode.
So - Again - this is without modifying the emco electronics in any way. Setting up linuxcnc to output the 'clock' to latch the chip.
when I get the encoder setup within linuxcnc - I will post the hal/ini files here.
Since yesterday - we have theading and also have been running it around 45ipm...
sam
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
11 Jul 2013 20:38 #36557
by skunkworks
Replied by skunkworks on topic Emco Compact 5 interface with linuxcnc (painless)
This is the lathe
electronicsam.com/images/emco/emcoclose.JPG
unmolested interface board (and stepper drive board)
electronicsam.com/images/emco/interfaceanddrive.JPG
sam
electronicsam.com/images/emco/emcoclose.JPG
unmolested interface board (and stepper drive board)
electronicsam.com/images/emco/interfaceanddrive.JPG
sam
Please Log in or Create an account to join the conversation.
12 Jul 2013 00:24 #36573
by BigJohnT
Replied by BigJohnT on topic Emco Compact 5 interface with linuxcnc (painless)
Very nice Sam!
JT
JT
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
12 Jul 2013 02:49 #36581
by skunkworks
Replied by skunkworks on topic Emco Compact 5 interface with linuxcnc (painless)
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
12 Jul 2013 09:12 #36584
by skunkworks
Replied by skunkworks on topic Emco Compact 5 interface with linuxcnc (painless)
quick threading video.. (yes - not the correct cutter - and the exit move is a bit shallow.. but shows the spindle sync is right on...)
sam
sam
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
12 Jul 2013 23:17 #36605
by skunkworks
Replied by skunkworks on topic Emco Compact 5 interface with linuxcnc (painless)
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
15 Jul 2013 06:41 #36650
by skunkworks
Replied by skunkworks on topic Emco Compact 5 interface with linuxcnc (painless)
5/8 11 threads in plastic
sam
sam
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
19 Jul 2013 09:37 #36792
by skunkworks
Replied by skunkworks on topic Emco Compact 5 interface with linuxcnc (painless)
last video - I swear!
and on a more serious note..
So - as far as I can tell - the original control did 1/2 stepping up to about 19ipm - then full stepping from there to 30ipm. Now the lathe runs fine on full stepping from 0 to 40 (maybe 45)ipm. Half stepping only works well up to 20ipm-ish. (stalls above that)
But why stop there..
I started thinking about if linuxcnc could do that.... (without coding anything)
A couple advantages of halfstepping..
1 higher resolution 0.000273403/step vs 0.000546806 per step
2 reduced resonance.. (I have not run into this with full stepping on the lathe)
Then at normal cutting speeds - < 16ipm you get a higher resolution.
So why not have 2 stepgens running. One that half steps (type 9) with input scale of 3657.6073152 and the other full stepping (type 6) with a scale of 1828.8036576 (lathe calculation - metric screws)
Then switch between the two stepgens at a specific feed (I picked 16ipm with a hysteresis of 1ipm)
All I can say is - HAL IS AWESOME
I setup a Lut5 with Jeff E's help (thanks jeff!) that switches the printer port between the 2 stepgens.
A offset componant was used between the 2 stepgens to better align the phasing. (not tweeked 100% yet) but we jogged it around - could not tell that it was switching between the 2 stepgens and it always came back to 0.
there is a bit more than that.. (ddt for calculating the axis velocity, abs of that, comp w/hystorisis, and stuff I have forgotten already.)
And here is a halscope capture. Left side is halfstepping - right side is full stepping. The trigger is the velocity threshold.
www.electronicsam.com/images/emco/Screenshot.png
I think the offset could be tweaked more scientifically to maybe get rid of the blip. But as it is running the 4 phases directly - it didn't seem to effect the motion.
here is the initial configs.
www.electronicsam.com/images/emco/linuxc...full-half_step_test/
again - jmk and everyone that has worked on hal - Very very awesome work!
sam
and on a more serious note..
So - as far as I can tell - the original control did 1/2 stepping up to about 19ipm - then full stepping from there to 30ipm. Now the lathe runs fine on full stepping from 0 to 40 (maybe 45)ipm. Half stepping only works well up to 20ipm-ish. (stalls above that)
But why stop there..
I started thinking about if linuxcnc could do that.... (without coding anything)
A couple advantages of halfstepping..
1 higher resolution 0.000273403/step vs 0.000546806 per step
2 reduced resonance.. (I have not run into this with full stepping on the lathe)
Then at normal cutting speeds - < 16ipm you get a higher resolution.
So why not have 2 stepgens running. One that half steps (type 9) with input scale of 3657.6073152 and the other full stepping (type 6) with a scale of 1828.8036576 (lathe calculation - metric screws)
Then switch between the two stepgens at a specific feed (I picked 16ipm with a hysteresis of 1ipm)
All I can say is - HAL IS AWESOME
I setup a Lut5 with Jeff E's help (thanks jeff!) that switches the printer port between the 2 stepgens.
A offset componant was used between the 2 stepgens to better align the phasing. (not tweeked 100% yet) but we jogged it around - could not tell that it was switching between the 2 stepgens and it always came back to 0.
there is a bit more than that.. (ddt for calculating the axis velocity, abs of that, comp w/hystorisis, and stuff I have forgotten already.)
And here is a halscope capture. Left side is halfstepping - right side is full stepping. The trigger is the velocity threshold.
www.electronicsam.com/images/emco/Screenshot.png
I think the offset could be tweaked more scientifically to maybe get rid of the blip. But as it is running the 4 phases directly - it didn't seem to effect the motion.
here is the initial configs.
www.electronicsam.com/images/emco/linuxc...full-half_step_test/
again - jmk and everyone that has worked on hal - Very very awesome work!
sam
Please Log in or Create an account to join the conversation.
20 Jul 2013 00:28 #36811
by BigJohnT
Replied by BigJohnT on topic Emco Compact 5 interface with linuxcnc (painless)
The last part is sweet when you screw the nut on. Was that your first attempt at 5/8-11 threads on the Emco?
JT
JT
Please Log in or Create an account to join the conversation.
- skunkworks
- Offline
- Moderator
Less
More
- Posts: 361
- Thank you received: 150
20 Jul 2013 03:11 #36812
by skunkworks
Replied by skunkworks on topic Emco Compact 5 interface with linuxcnc (painless)
heh - I don't know - that was dad playing with the lathe. I think he went in a bit too deep... but it worked
sam
sam
Please Log in or Create an account to join the conversation.
Moderators: cncbasher
Time to create page: 0.318 seconds