Can't get Smithy 622 out of e-stop with 2.7

More
28 Apr 2018 21:17 #109768 by lustenaderj
I somewhat recently got a Smithy CNC622, and the controls came with LinuxCNC 2.5.1 installed on it. Took a bit of tweaking when I got it to get things going as it uses normally open limit switches on the z-axis and the HAL file defaults to normally closed (but thankfully described in the file that some older models came this way and had the correct settings just commented out). Other than that, I was able to get the mill running, but there were odd remnants of previous installations of EMC2 and files from previous owners, so I wanted to do a clean install of the current version.

So I got a cheap SSD and installed 2.7 on it (just in case, didn't want to destroy the mostly working version). Using the configuration picker, I chose my mill from the list. As expected, the HAL file defaulted to the same limit switch settings, but other than that looked extremely similar. The problem is that, now, it will not leave an e-stop state, and I suspect it is related to the charge pump not enabling for some reason (indicator not lit in HAL configuration watch, but is when using 2.5), but I just don't know enough about LinuxCNC to be able to figure it out. Just to verify it was the installation and something else didn't go loopy with the hardware, I swapped back and forth several times to the original drive and I can toggle the e-stop as expected with the old 2.5 install (I can hear the safety relay/contactor actuate when toggling the e-stop with 2.5).

Any suggestions would be greatly appreciated.

HAL and INI files for both the 2.5 and 2.7 install are attached (only change made to 2.7 files attached was the limit switch comment change, none of my half baked attempts at figuring out the issue).

Thanks,
Jonathan

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

More
28 Apr 2018 21:53 #109777 by PCW
I would start with your working 2.5 file set and edit them to make them 2.7 compatible rather than starting with an unknown file set, the changes should be pretty minor, mainly commenting out the:

addf hm2_5i20.0.pet_watchdog servo-thread

and probably the

addf hm2_5i20.0.write_gpio servo-thread
addf hm2_5i20.0.read_gpio servo-thread

lines as well

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

More
28 Apr 2018 22:42 #109779 by lustenaderj
Gave it a shot removing all three suggested lines from the 2.5 file and replacing the hal file, as well as just the watchdog line. Started into 2.7, but no change to the ability to toggle estop or have the charge pump enable with either.

I would start with your working 2.5 file set and edit them to make them 2.7 compatible rather than starting with an unknown file set, the changes should be pretty minor, mainly commenting out the:

addf hm2_5i20.0.pet_watchdog servo-thread

and probably the

addf hm2_5i20.0.write_gpio servo-thread
addf hm2_5i20.0.read_gpio servo-thread

lines as well

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

More
29 Apr 2018 01:25 #109784 by PCW
You might set a reasonable watchdog time-out as well that seem to be missing (and i'm not sure what the default is)
Another angle to attack this is to dump all the pin and parameter states and see what's different between the two versions

(halcmd show all >somefile will do this)

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

More
29 Apr 2018 19:03 #109817 by lustenaderj
I exported the HALCMD Show all reports. Put all of the data into a spreadsheet with the entries labeled as being from either 2.5 or 2.7 and broken into tabs corresponding to the report grouping. But I haven't had a chance to convert these into tables or pivot tables to help look for discrepancies yet - I'll give that a shot at lunch tomorrow as I have Open Office installed at home but am much better at spreadsheet manipulation in Excel.

I tried setting the Watchdog timer to 100ms from the default of 10 - there was no change.
Attachments:

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

More
30 Apr 2018 19:58 #109866 by lustenaderj
Created some tables from the HALCMD exported data to look at the differences between 2.5 and 2.7. A good bit of the differences looks to be based around enable, charge pump, and e-stop (to my rookie LinuxCNC eyes at least).

LCNC Version Owner Type Dir Value Name
2.5 11 bit IN TRUE axis.0.jog-vel-mode<==Enable
2.7 11 bit IN FALSE axis.0.jog-vel-mode<==Enable
2.5 11 bit IN TRUE axis.1.jog-vel-mode<==Enable
2.7 11 bit IN FALSE axis.1.jog-vel-mode<==Enable
2.5 11 bit IN TRUE axis.2.jog-vel-mode<==Enable
2.7 11 bit IN FALSE axis.2.jog-vel-mode<==Enable
2.5 12 bit IN TRUE charge-pump.enable<==Enable
2.7 13 bit IN FALSE charge-pump.enable<==Enable
2.7 13 bit OUT FALSE charge-pump.out-2
2.7 13 bit OUT FALSE charge-pump.out-4
2.5 7 bit OUT FALSE halui.estop.is-activated
2.7 7 bit OUT TRUE halui.estop.is-activated
2.5 7 bit OUT FALSE halui.program.optional-stop.is-on
2.7 7 bit OUT TRUE halui.program.optional-stop.is-on
2.5 7 bit IN FALSE halui.program.pause<==SOFF
2.7 7 bit IN TRUE halui.program.pause<==SOFF
2.5 9 bit OUT TRUE hm2_5i20.0.gpio.022.in
2.7 9 bit OUT FALSE hm2_5i20.0.gpio.022.in
2.5 9 bit OUT FALSE hm2_5i20.0.gpio.022.in_not
2.7 9 bit OUT TRUE hm2_5i20.0.gpio.022.in_not
2.7 9 bit IN FALSE hm2_5i20.0.gpio.022.out<==chargep
2.5 9 bit IN TRUE hm2_5i20.0.gpio.022.out<==chargepump
2.5 9 bit OUT FALSE hm2_5i20.0.gpio.027.in
2.7 9 bit OUT TRUE hm2_5i20.0.gpio.027.in
2.5 9 bit OUT TRUE hm2_5i20.0.gpio.027.in_not==>DRV3
2.7 9 bit OUT FALSE hm2_5i20.0.gpio.027.in_not==>DRV3
2.5 9 bit OUT TRUE hm2_5i20.0.gpio.033.in_not
2.7 9 bit OUT FALSE hm2_5i20.0.gpio.033.in_not
2.5 9 bit OUT FALSE hm2_5i20.0.gpio.033.in==>SOFF
2.7 9 bit OUT TRUE hm2_5i20.0.gpio.033.in==>SOFF
2.5 9 bit OUT FALSE hm2_5i20.0.gpio.035.in
2.7 9 bit OUT TRUE hm2_5i20.0.gpio.035.in
2.5 9 bit OUT TRUE hm2_5i20.0.gpio.035.in_not==>ACOK
2.7 9 bit OUT FALSE hm2_5i20.0.gpio.035.in_not==>ACOK
2.5 9 bit OUT FALSE hm2_5i20.0.gpio.036.in
2.7 9 bit OUT TRUE hm2_5i20.0.gpio.036.in
2.5 9 bit OUT TRUE hm2_5i20.0.gpio.036.in_not==>DRV2
2.7 9 bit OUT FALSE hm2_5i20.0.gpio.036.in_not==>DRV2
2.5 9 bit OUT FALSE hm2_5i20.0.gpio.037.in_not
2.7 9 bit OUT TRUE hm2_5i20.0.gpio.037.in_not
2.7 9 bit OUT FALSE hm2_5i20.0.gpio.037.in==>estop-en
2.5 9 bit OUT TRUE hm2_5i20.0.gpio.037.in==>estop-enable
2.7 9 bit IN FALSE hm2_5i20.0.pwmgen.00.enable<==Ena
2.5 9 bit IN TRUE hm2_5i20.0.pwmgen.00.enable<==Enable
2.5 5 bit IN TRUE iocontrol.0.emc-enable-in<==estop-enable
2.7 5 bit IN FALSE iocontrol.0.emc-enable-in<==estop-enable
2.5 11 bit IN FALSE motion.feed-hold<==SOFF
2.7 11 bit IN TRUE motion.feed-hold<==SOFF
2.7 11 bit IN FALSE motion.probe-input
2.5 11 bit IN TRUE motion.probe-input<==probe


LCNC Version Type Value Name Linked To
2.5 bit TRUE ACOK <==hm2_5i20.0.gpio.035.in_not
2.7 bit FALSE ACOK <==hm2_5i20.0.gpio.035.in_not
2.5 bit TRUE chargepump <==charge-pump.out
2.7 bit FALSE chargepump <==charge-pump.out
2.5 bit TRUE chargepump ==> hm2_5i20.0.gpio.022.out
2.7 bit FALSE chargepump ==>hm2_5i20.0.gpio.022.out
2.5 bit TRUE DRV2 <==hm2_5i20.0.gpio.036.in_not
2.7 bit FALSE DRV2 <==hm2_5i20.0.gpio.036.in_not
2.5 bit TRUE DRV3 <==hm2_5i20.0.gpio.027.in_not
2.7 bit FALSE DRV3 <==hm2_5i20.0.gpio.027.in_not
2.5 bit TRUE Enable ==> axis.0.jog-vel-mode
2.5 bit TRUE Enable ==> axis.1.jog-vel-mode
2.5 bit TRUE Enable ==> axis.2.jog-vel-mode
2.5 bit TRUE Enable ==> charge-pump.enable
2.5 bit TRUE Enable ==> hm2_5i20.0.pwmgen.00.enable
2.7 bit FALSE Enable ==>axis.0.jog-vel-mode
2.7 bit FALSE Enable ==>axis.1.jog-vel-mode
2.7 bit FALSE Enable ==>axis.2.jog-vel-mode
2.7 bit FALSE Enable ==>charge-pump.enable
2.7 bit FALSE Enable ==>hm2_5i20.0.pwmgen.00.enable
2.5 bit TRUE estop-enable <==hm2_5i20.0.gpio.037.in
2.7 bit FALSE Estop-enable <==hm2_5i20.0.gpio.037.in
2.5 bit TRUE estop-enable ==> iocontrol.0.emc-enable-in
2.7 bit FALSE Estop-enable ==>iocontrol.0.emc-'Enable'-in
2.5 bit FALSE SOFF <==hm2_5i20.0.gpio.033.in
2.7 bit TRUE SOFF <==hm2_5i20.0.gpio.033.in
2.5 bit FALSE SOFF ==> halui.program.pause
2.5 bit FALSE SOFF ==> motion.feed-hold
2.7 bit TRUE SOFF ==>halui.program.pause
2.7 bit TRUE SOFF ==>motion.feed-hold


LCNC Version Owner Type Dir Value Name
2.5 9 float RW 21 hm2_5i20.0.stepgen.00.maxaccel
2.7 9 float RW 0 hm2_5i20.0.stepgen.00.maxaccel
2.5 9 float RW 3.3 hm2_5i20.0.stepgen.00.maxvel
2.7 9 float RW 0 hm2_5i20.0.stepgen.00.maxvel
2.5 9 float RW 21 hm2_5i20.0.stepgen.01.maxaccel
2.7 9 float RW 0 hm2_5i20.0.stepgen.01.maxaccel
2.5 9 float RW 3.3 hm2_5i20.0.stepgen.01.maxvel
2.7 9 float RW 0 hm2_5i20.0.stepgen.01.maxvel
2.5 9 float RW 21 hm2_5i20.0.stepgen.02.maxaccel
2.7 9 float RW 0 hm2_5i20.0.stepgen.02.maxaccel
2.5 9 float RW 3.3 hm2_5i20.0.stepgen.02.maxvel
2.7 9 float RW 0 hm2_5i20.0.stepgen.02.maxvel
2.5 9 float RW 21 hm2_5i20.0.stepgen.03.maxaccel
2.7 9 float RW 0 hm2_5i20.0.stepgen.03.maxaccel
2.5 9 float RW 3.3 hm2_5i20.0.stepgen.03.maxvel
2.7 9 float RW 0 hm2_5i20.0.stepgen.03.maxvel
2.5 11 u32 RO 0x0027AE07 motion.servo.last-period
2.7 11 u32 RO 0x0027B5A5 motion.servo.last-period
2.5 11 float RO 10234 motion.servo.last-period-ns
2.7 11 float RO 1000881 motion.servo.last-period-ns
2.5 11 s32 RW 4901 motion-command-handler.tmax
2.7 11 s32 RW 41808 motion-command-handler.tmax
2.5 11 s32 RW 69381 motion-controller.tmax
2.7 11 s32 RW 90610 motion-controller.tmax
Attachments:

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

More
30 Apr 2018 20:22 #109867 by PCW
The thing that seems completely wrong here is this:

#the Enable signal is used to permanently enable things
newsig Enable bit
sets Enable TRUE

The signal Enable is explicitly set true, and yet the signal Enable is false in the 2.7 signal list
Are you sure you are running the hal file you think you are? (the one pointed to in the ini file)?

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

More
30 Apr 2018 21:20 #109870 by lustenaderj
I'm pretty sure I'm looking in the correct one. It is the one listed in the .ini file, and if I toggle the limit switch comments for my z axis to the other style I get a limit switch error in addition to the not leaving estop.

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

More
30 Apr 2018 21:45 #109873 by PCW
Well the "Enable" signal issue is pretty strange. It suggests some problem with the 2.7 installation

Can you set enable by hand?
halcmd sets Enable true
while monitoring Enable with halmeter or equivalent

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

More
01 May 2018 00:33 #109880 by lustenaderj
Setting enable by hand in that manner gives me 2.7 behaving exactly as it should be. Makes no sense why it has to be done manually, but it does work that way. Thanks a million :)

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

Time to create page: 0.082 seconds
Powered by Kunena Forum