5i25/6i25 Setup with Gecko g540

More
28 Feb 2018 03:20 - 28 Feb 2018 03:20 #106684 by krislogan
So I have been using Linuxcnc for a couple of years with software stepping and a Gecko g540. Been working get, no miss steps, always produces what I throw at it.

I am moving towards more production, so will be using the machine more often so I wanted to add in some robustness with hardware stepping.

Every since I installed the 6i25 (and flashed it with the g540x2.bit) I can not for the life of me get the machine to run for longer then a couple of minutes. Start it up everything works fine, start cutting and the machine randomly stops, no errors it is literally like someone has pressed the F2 button. In fact the debug looks exactly like that.

I thought it might be the g540 so I disconnected from the 6i25 and reconnected to my parport and did some test cuts, not a problem. Thought it was the system so I dropped back to my "Fallback" OS that I no is rock solid for Linuxcnc, same problem.

Can anybody help, this is really got my going crazy. If I run Linuxcnc in "sim-mode" (g540 off) it also behaves the same way. Can it be a timing/watchdog issue?

I have some issues with the g540 and the 6i25 with the y2 tandem not jogging but I just increased the "Step On Time" to 2000 and it all works fine. Thought this might of been the problem so used the default settings but it still behaves like someone is coming and pressing F2.

I have attached my stripped down hal and ini files for people to look at. I have some other issues with estop in and hy-vfd control but I will deal with them later, as they are just fiddly stuff.

Would really like to get this working and not have wasted $200 on the 6i25 card (australia, crap exchange, high shipping costs).

Thank you in advance :D
Attachments:
Last edit: 28 Feb 2018 03:20 by krislogan.

Please Log in or Create an account to join the conversation.

More
28 Feb 2018 08:33 #106688 by rodw
Seeing you are another Aussie, I had a look. :silly:

I can't see anything obvious but try increasing these settings to around 5000
DIRSETUP   = 200
DIRHOLD    = 200
STEPLEN    = 2000
STEPSPACE  = 2000

I seem to remember there are a couple of gotchas with the 540 but I've never used one. I'm sure someone will come along who knows them better.

Please Log in or Create an account to join the conversation.

More
28 Feb 2018 16:04 #106710 by PCW
Replied by PCW on topic 5i25/6i25 Setup with Gecko g540
Are you saying the machine state changed? (and you can recover by changing back to machine on state via the GUI)

Please Log in or Create an account to join the conversation.

More
03 Mar 2018 09:23 #106875 by krislogan
PCW:- Yes, it was exactly like that but I have resolved that issue, think it was due to having PWMgen and/or encoders in the set up that where not physically there.

The new issue and the important one now that I can get it running is the E-Stop.

On the software stepping set up it works fine, just checked it. But for the life of me I can not get it working. Have attached HAL and INI files.

Seems with what appears the "standard" way of doing things (and how pncconf set it up as well) the machine is not seeing the input from the pin e.g. state does not change when viewing pin with halmeter.
Method 1
net estop-ext <= hm2_5i25.0.gpio.003.in_not
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in

However if I set it up as below, it works sort of, as in I can see the pin state change so that is good, but when I press estop linuxcnc does not go into an estop state (which I understand is the case for this method).
Method 2
net estop-ext <= hm2_5i25.0.gpio.003.in_not
net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in

The strange thing is that method 1 has no pin state change at all and method 2 does, so it's not hardware(also as it works in my software stepping config(can post if interested)).

Cheers, and sorry for moving the goal posts.
Attachments:

Please Log in or Create an account to join the conversation.

More
03 Mar 2018 22:43 #106890 by krislogan
I also tried this:-

loadrt estop_latch
addf estop-latch.0 servo-thread
net estop-loopout iocontrol.0.emc-enable-in <= estop-latch.0.ok-out
net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in
net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
net remote-estop estop-latch.0.fault-in <= hm2_5i25.0.gpio.003.in_not

Same result as method 1. Additionally I stripped down RODW estop chain with still no luck :(

Please Log in or Create an account to join the conversation.

More
04 Mar 2018 04:35 #106891 by rodw

Additionally I stripped down RODW estop chain with still no luck :(


I wouldn't trust him!

Did you find this example?

forum.linuxcnc.org/47-hal-examples/25861-external-e-stop

Please Log in or Create an account to join the conversation.

More
04 Mar 2018 10:26 #106895 by Clive S

I wouldn't trust him!

I wouldn't trust him either: lol: Just kidding
The following user(s) said Thank You: rodw

Please Log in or Create an account to join the conversation.

More
05 Mar 2018 09:41 #106944 by krislogan
rodw:- that is the same(as I can see it) as the code I tried.

I think some of the problem is I don't come from a coding background, I am not exactly sure how the halpins work and the variables. I have tried what I think is logical with weird results e.g.
net var-a <= hardware.a.in
net var-a => emc-enable-in

but it tells me the halpin already has an output, but I see that as having one input hardware.a.in and one output emc-enable-in

Basically the g540 uses a NC as the fault control. So when the physical estop is latched it physically disables the g540 and when it is unlatched it enables the g540.

For my software stepping machine that translates to:-
net estop-out charge-pump.enable iocontrol.0.user-enable-out
net estop-ext <= parport.0.pin-15-in-not
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in

That worked a charm, and I can't for the life of me see why it doesn't work for the 5i25. I know that unless the estop is unlatched (g540 physically enabled) linuxcnc receives no input from the hm2_5i25.0.gpio.003.in_not, which makes sense as well the gecko is in fault mode.

The way I think it should work is:-
estop-ext -> iocontrol.0.emc-enable-in; iocontrol.0.user−enable−out; iocontrol.0.user−request−enable = true
if iocontrol.0.emc-enable-in = false
then iocontrol.0.user−enable−out & iocontrol.0.user−request−enable = false

Sorry like I said not sure how the pins or variables work or how they relate to emc, it appears there are maybe three ways to enable emc??

Please Log in or Create an account to join the conversation.

More
05 Mar 2018 10:57 #106947 by rodw
I've gotta say estops are not my strong point

but if I look at Big Jons's example, and looking at your hal file posted earlier, I would have thought it would look like this
# estop
loadrt estop_latch
addf estop-latch.0 servo-thread
net estop-loopout iocontrol.0.emc-enable-in <= estop-latch.0.ok-out
net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in
net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
net remote-estop estop-latch.0.fault-in <=  hm2_5i25.0.gpio.003.in_not

and comment out the code you have.

Please Log in or Create an account to join the conversation.

More
05 Mar 2018 20:00 #106971 by krislogan
That code, is the same as I have tried before and the machine enables for a split second then switches to estopped with this output to the terminal:-

Issuing EMC_TASK_SET_STATE -- ( +505,+16, +27, +2,)
NML_INTERP_LIST(0x82f05c0)::clear(): discarding 0 items
NML_INTERP_LIST(0x82f05c0)::append(nml_msg_ptr{size=12,type=EMC_TASK_PLAN_SYNCH}) : list_size=1, line_number=0
emcTaskPlanSynch() returned 0
NML_INTERP_LIST(0x82f05c0)::get(): {size=12, type=EMC_TASK_PLAN_SYNCH}, list_size=0
emcTaskPlanLevel() returned 0
task: main loop took 0.110264 seconds
Issuing EMC_TASK_PLAN_SYNCH -- ( +516,+12, +0,)
emcTaskPlanSynch() returned 0
Issuing EMC_TASK_SET_STATE -- ( +505,+16, +28, +4,)
Issuing EMC_TRAJ_SET_TELEOP_ENABLE -- ( +230,+16, +29, +0,)
NML_INTERP_LIST(0x82f05c0)::clear(): discarding 0 items
NML_INTERP_LIST(0x82f05c0)::append(nml_msg_ptr{size=12,type=EMC_TASK_PLAN_SYNCH}) : list_size=1, line_number=0
NML_INTERP_LIST(0x80a9c00)::clear(): discarding 0 items
emcTaskPlanSynch() returned 0
NML_INTERP_LIST(0x82f05c0)::clear(): discarding 1 items
NML_INTERP_LIST(0x82f05c0)::append(nml_msg_ptr{size=12,type=EMC_TASK_PLAN_SYNCH}) : list_size=1, line_number=0
task: main loop took 0.113051 seconds
NML_INTERP_LIST(0x82f05c0)::get(): {size=12, type=EMC_TASK_PLAN_SYNCH}, list_size=0
emcTaskPlanLevel() returned 0
task: main loop took 0.100486 seconds
Issuing EMC_TASK_PLAN_SYNCH -- ( +516,+12, +0,)
emcTaskPlanSynch() returned 0

BUT if I latch the estop, I can enable the machine but of course as the estop is latched the g540 is in fault mode.
Attachments:

Please Log in or Create an account to join the conversation.

Time to create page: 0.104 seconds
Powered by Kunena Forum