Problems with plasma-thc (thc300) Configuration
So i started with the thc300 config and found the pins in the .hal files and made them right. But for some reason it seems as though it thinks i'm running servo's with feedback going to emc because i get joint following errors. Also i can't get the motors to enable when i turn on the "power" (logical in emc).
Another thing is that when it starts up it goes into joint mode, i do not want this, and i honestly don't know exactly what it is for. Also the acceleration in the axis gui says deg/min (or sec i forget). Why is it not in/min or sec.
Here are the specs of the machine we built:
4x8 Gantry (dual motors on gantry (X axis).. )
THC301D connected to a second parallel port
A cheapo TB6560 4 axis driver board on the first para port
With a basic configuration using the stepconf wizard it works fine. I set the X axis to the A pins and invert the direction so the gantry moves fine. And the Y and Z move fine. But i can't get much to work right with the thc300 config. The ESTOP and Touch Probe inputs work fine so i know i have the right address for the 1st para port. And i'm using the same port # for the 2nd port as is in mach3. I confirmed the port with "cat /proc/ioports" and the address are correct.
Attached are the ini and hal files i'm using. any help would be greatly appreciated..
members.cox.net/jdsanchez473/cnc/axis_manualtoolchange.hal
members.cox.net/jdsanchez473/cnc/estop.hal
members.cox.net/jdsanchez473/cnc/kinematics.hal
members.cox.net/jdsanchez473/cnc/stepper.hal
members.cox.net/jdsanchez473/cnc/thc300.hal
members.cox.net/jdsanchez473/cnc/thc300.ini
members.cox.net/jdsanchez473/cnc/thc300_parport.hal
members.cox.net/jdsanchez473/cnc/thc300_vcp.hal
Please Log in or Create an account to join the conversation.
Another thing is that when it starts up it goes into joint mode, i do not want this, and i honestly don't know exactly what it is for. Also the acceleration in the axis gui says deg/min (or sec i forget). Why is it not in/min or sec.
Firstly, gantrykins is a kinematics module that allows you to map any number of "joints" to any number of "axes".
You have a 3-axis machine (X,Y,Z) with 4 joints (0,1,2,3). The kinematics.hal file links joints 0 and 3 to X, 1 to Y and 2 to Z.
Joint mode allows you to move each motor independently. Homing in joint mode should then auto-square your gantry.
There are a few issues in your config files which need sorting out to operate a gantry properly (stepconf is not really aware of non-trivial kinematics machines).
Firstly, you don't have an A axis, so should change the AXES = XYZA to read AXES = XYZ
The [AXIS_N] sections of the ini file are actually miss-named. They really should be called [JOINT_N] but are named as they are for historical reasons (don't change them).
Homing happens in Joint mode, so you need to have the same homing sequence number for joints 0 and 3 (in [AXIS_0] and [AXIs_3] in the ini file to avoid twisting the gantry during homing. Having no homing sequence defined (as you have) should also be fine.
I am afraid I am not sure how a gantry config is meant to work, I rather feel it should automatically switch to "World" (XYZ) mode after homing, but would need to experiment with a config to find out.
In any case, after homing you should be able to press "$" to switch to "world" mode, and I think you should then be able to jog without following errors. The following error is due to the stepgen.0.pos-fb and stepgen.3.pos-fb positions not both matching the X-axis position (if they are different, then clearly they can't both match).
With a basic configuration using the stepconf wizard it works fine. I set the X axis to the A pins and invert the direction so the gantry moves fine. And the Y and Z move fine. But i can't get much to work right with the thc300 config.
It doesn't really matter that your hal files call the X2 axis A, but it might be clearer to change the names to X1 and X2 throughout. (the signal names, which are the first item on a "net" command line, are freely choosable by the user). You have motor.3 linked to stepgen.3 and that is what matters.
I am afraid that this is a rather rambling post, and might not have clearly explained even the things I am trying to explain.
Is quite a nice explanation of the difference between Joint mode and World mode, on a simple system where they are clearly not the same thing. Part of the confusion with Gantrykins is that the joints and axes are so very nearly the same thing that is it not clear what the difference is.
Please Log in or Create an account to join the conversation.
net xenable => parport.0.pin-04-out
net xenable => parport.0.pin-05-out
net xenable => parport0.pin-17-out
as was in the simple configuration that worked fine moving the motors.
but when i hit the power button i don't get the normal hissing/ringing sound from the steppers and they will not move when commanded to.
I will change the things you suggested this evening.
Thanks again, really appreciate the help
Please Log in or Create an account to join the conversation.
I wasn't clear how many enables you needed for your 4 motors, but if they each have a enable pin, then clearly they need connecting too.t
net xenable => parport.0.pin-04-out
net xenable => parport.0.pin-05-out
net xenable => parport0.pin-17-out
You can check that emc thinks it is setting them using the HAL meter, Halscope or Hal Config viewer in the "Machine" menu.
Please Log in or Create an account to join the conversation.
Firstly, you don't have an A axis, so should change the AXES = XYZA to read AXES = XYZ
This appears to be incorrect advice. I am experimenting at the moment with a similar simulated config to try to understand it.
Please Log in or Create an account to join the conversation.
For the time being you will need to keep the AXES=4 and COORDINATES=X Y Z A and just ignore the A axis. (it should never move)
You will start in Joint mode, then when you home you can switch to World mode with "$".
Any time the motors get out of step with each other you will get a following error, and EMC will stop, not letting you re-start. The trick when this happens is to switch to Joint mode, where there will be no f-error and then re-home the gantry axis, at which point you can switch back to World mode and there will be no f-error any more. (manually jogging the joints in joint mode so that their positions are very close will also work, if re-homing the axis is not a good plan at the time)
Please Log in or Create an account to join the conversation.
net EnableX axis.0.amp-enable-out => stepgen.0.enable
net EnableY axis.1.amp-enable-out => stepgen.1.enable
net EnableZ axis.2.amp-enable-out => stepgen.2.enable
net EnableA axis.3.amp-enable-out => stepgen.3.enable
and i had "xenable" for the pins, not "EnableX" in the hal that sets the pins for the enables
At one point i had got rid of the joint following errors but now i can't seem to do it again. When i manually turn on the torch (spindle) the relay doesn't click either. It just seems like there are quite a few buggy things or maybe i just plain don't know what i'm doing, but i've went threw the config files and i belive i'm starting to grasp the basics of how it all ties together. Problem is its like a giant jigsaw puzzle, you change one part and nothing works until you match it up in the other hal files.
I just wish it didn't have that many hal files to make it work. The hal's have parts commented out that are placed in other hal's and it just gets confusing lol..
But i thank you all for your help and please any more info would be great. I still would like to use emc2 on this machine and future tables we build.
Here is a link to a vid of the machine running with mach (still in baby stages but working ok). This was all home/shop built, no kits or plans.
Please Log in or Create an account to join the conversation.
I just wish it didn't have that many hal files to make it work. The hal's have parts commented out that are placed in other hal's and it just gets confusing lol..
It is, and I found it confusing too. This seems to be a consequence of the way that the wide range of sample configs are assembled.
I would suggest combining them all into one file. In fact in my setup I pretty much ignore the INI file too, and edit direct in one HAL file, just so I can see all the parts.
If you look at the parallel port enable pins in Hal Meter, do they behave as expected?
The "enable" connections on my amps are active-low. There is a +5V supply to the opto-isolator, and the P-Port pin connects to the low side and then current flows through the LED when the pin is low, and not when it is high. This is because P-Ports are a lot better at sinking current than sourcing it.
However, if your Mach setup works then it seems unlikely to be an issue with the external wiring.
This might be helpful: wiki.linuxcnc.org/emcinfo.pl?Parallel_Port_Tester
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.