- Configuring LinuxCNC
- Configuration Tools
- PnCConf Wizard
- 7i96s + 7i89 analog spindle and mpg troubles
7i96s + 7i89 analog spindle and mpg troubles
- JohnnyBeluga
- Offline
- New Member
Less
More
- Posts: 13
- Thank you received: 2
01 Jun 2024 09:56 #302049
by JohnnyBeluga
7i96s + 7i89 analog spindle and mpg troubles was created by JohnnyBeluga
ChatGPTCertainly! Here is a corrected version of your post for the LinuxCNC forum:Hi!I need some help with my LinuxCNC setup. I'm having trouble adding an MPG pendant and getting the spindle to work correctly. I have tried different solutions, but I'm obviously missing something. When I launch my configuration, I can jog the three axes through the GUI, but the MPG doesn't work. I tried adapting the custom HAL file with an example file and setting up the jog wheel through PNCconf. I'm also struggling with the spindle's analog control. I tested the spindle, and it works as expected with a variable voltage supply, reaching 2500 RPM at 5V.
Any hints or suggestions on what I might be doing wrong or what to check would be greatly appreciated!Thanks in advance for your help!
Any hints or suggestions on what I might be doing wrong or what to check would be greatly appreciated!Thanks in advance for your help!
Please Log in or Create an account to join the conversation.
- PCW
- Away
- Moderator
Less
More
- Posts: 17860
- Thank you received: 4767
01 Jun 2024 13:05 - 01 Jun 2024 13:38 #302055
by PCW
Replied by PCW on topic 7i96s + 7i89 analog spindle and mpg troubles
net spindle-vel-cmd-rpm => [HMOT](CARD0).pwmgen.00.value
should be
net spindle-vel-cmd-rpm-abs => [HMOT](CARD0).pwmgen.00.value
Spindle section should be:
(assuming you are supplying 5V to 7I96S TB2 pin 24)
[SPINDLE_0]
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 2500.0
OUTPUT_SCALE = 2500
OUTPUT_MIN_LIMIT = 0
OUTPUT_MAX_LIMIT = 2500
What is the issue with jogging?
should be
net spindle-vel-cmd-rpm-abs => [HMOT](CARD0).pwmgen.00.value
Spindle section should be:
(assuming you are supplying 5V to 7I96S TB2 pin 24)
[SPINDLE_0]
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 2500.0
OUTPUT_SCALE = 2500
OUTPUT_MIN_LIMIT = 0
OUTPUT_MAX_LIMIT = 2500
What is the issue with jogging?
Last edit: 01 Jun 2024 13:38 by PCW.
Please Log in or Create an account to join the conversation.
- JohnnyBeluga
- Offline
- New Member
Less
More
- Posts: 13
- Thank you received: 2
01 Jun 2024 15:00 #302062
by JohnnyBeluga
Replied by JohnnyBeluga on topic 7i96s + 7i89 analog spindle and mpg troubles
Thank you for the help, Yes I suppy 5v to TB2 pin 24. I made the changes in the .hal and ini files but spindle still doesn't move.
The jogging work trough the GUI but my MPG pendant doesn't work I tried to adapt the example file avaible for MPGs. The MPG switches part is in custom.hal and the handwheel in the main hal file.
The jogging work trough the GUI but my MPG pendant doesn't work I tried to adapt the example file avaible for MPGs. The MPG switches part is in custom.hal and the handwheel in the main hal file.
Please Log in or Create an account to join the conversation.
- JohnnyBeluga
- Offline
- New Member
Less
More
- Posts: 13
- Thank you received: 2
01 Jun 2024 15:12 #302065
by JohnnyBeluga
Replied by JohnnyBeluga on topic 7i96s + 7i89 analog spindle and mpg troubles
After re-checking I had the wiring changed yeasterday to try the spindle with the variable power supply. I rewired and with your changes it's working well.
Please Log in or Create an account to join the conversation.
- PCW
- Away
- Moderator
Less
More
- Posts: 17860
- Thank you received: 4767
01 Jun 2024 15:25 - 01 Jun 2024 15:30 #302066
by PCW
Replied by PCW on topic 7i96s + 7i89 analog spindle and mpg troubles
As far as MPG jogging goes, you have the signal "axis-selected-count"
created but it does not seem to be connected to anything:
net axis-selected-count <= [HMOT](CARD0).encoder.02.count
created but it does not seem to be connected to anything:
net axis-selected-count <= [HMOT](CARD0).encoder.02.count
Last edit: 01 Jun 2024 15:30 by PCW.
Please Log in or Create an account to join the conversation.
- JohnnyBeluga
- Offline
- New Member
Less
More
- Posts: 13
- Thank you received: 2
01 Jun 2024 15:44 #302069
by JohnnyBeluga
Replied by JohnnyBeluga on topic 7i96s + 7i89 analog spindle and mpg troubles
In need to connect each MPG function to a function present in the HALUI section ?
For the rotary switches to select the axis and the scale I used the example file :
loadrt mux4 count=1
addf mux4.0 servo-thread
setp joint.0.jog-vel-mode 0
setp joint.1.jog-vel-mode 0
setp joint.2.jog-vel-mode 0
setp axis.x.jog-vel-mode 0
setp axis.y.jog-vel-mode 0
setp axis.z.jog-vel-mode 0
setp mux4.0.in0 .0001
setp mux4.0.in1 .001
setp mux4.0.in2 .01
net scale1 mux4.0.sel0 <= [HMOT](CARD0).inm.00.input-04
net scale2 mux4.0.sel1 <= [HMOT](CARD0).inm.00.input-03
net mpg-scale <= mux4.0.out
net mpg-scale => joint.0.jog-scale => axis.x.jog-scale
net mpg-scale => joint.1.jog-scale => axis.y.jog-scale
net mpg-scale => joint.2.jog-scale => axis.z.jog-scale
net mpg-x joint.0.jog-enable <= axis.x.jog-enable <= [HMOT](CARD0).inm.00.input-02
net mpg-y joint.1.jog-enable <= axis.y.jog-enable <= [HMOT](CARD0).inm.00.input-01
net mpg-z joint.2.jog-enable <= axis.z.jog-enable <= [HMOT](CARD0).inm.00.input-00
For the rotary switches to select the axis and the scale I used the example file :
loadrt mux4 count=1
addf mux4.0 servo-thread
setp joint.0.jog-vel-mode 0
setp joint.1.jog-vel-mode 0
setp joint.2.jog-vel-mode 0
setp axis.x.jog-vel-mode 0
setp axis.y.jog-vel-mode 0
setp axis.z.jog-vel-mode 0
setp mux4.0.in0 .0001
setp mux4.0.in1 .001
setp mux4.0.in2 .01
net scale1 mux4.0.sel0 <= [HMOT](CARD0).inm.00.input-04
net scale2 mux4.0.sel1 <= [HMOT](CARD0).inm.00.input-03
net mpg-scale <= mux4.0.out
net mpg-scale => joint.0.jog-scale => axis.x.jog-scale
net mpg-scale => joint.1.jog-scale => axis.y.jog-scale
net mpg-scale => joint.2.jog-scale => axis.z.jog-scale
net mpg-x joint.0.jog-enable <= axis.x.jog-enable <= [HMOT](CARD0).inm.00.input-02
net mpg-y joint.1.jog-enable <= axis.y.jog-enable <= [HMOT](CARD0).inm.00.input-01
net mpg-z joint.2.jog-enable <= axis.z.jog-enable <= [HMOT](CARD0).inm.00.input-00
Please Log in or Create an account to join the conversation.
- PCW
- Away
- Moderator
Less
More
- Posts: 17860
- Thank you received: 4767
01 Jun 2024 16:18 #302073
by PCW
Replied by PCW on topic 7i96s + 7i89 analog spindle and mpg troubles
Not related to halui, you need to connect the hardware jog count to
LinuxCNC's joint and or axis jog counts:
net axis-selected-count axis.x.jog-counts joint.0.jog-counts
net axis-selected-count axis.y.jog-counts joint.1.jog-counts
net axis-selected-count axis.z.jog-counts joint.2.jog-counts
LinuxCNC's joint and or axis jog counts:
net axis-selected-count axis.x.jog-counts joint.0.jog-counts
net axis-selected-count axis.y.jog-counts joint.1.jog-counts
net axis-selected-count axis.z.jog-counts joint.2.jog-counts
Please Log in or Create an account to join the conversation.
- JohnnyBeluga
- Offline
- New Member
Less
More
- Posts: 13
- Thank you received: 2
01 Jun 2024 19:18 #302092
by JohnnyBeluga
Replied by JohnnyBeluga on topic 7i96s + 7i89 analog spindle and mpg troubles
I tried to add this to my previous config and then decided to go from the original example hal.
# Include your custom HAL commands here
# This file will not be overwritten when you run PNCconf again
########MPG_Pendant##########
loadrt encoder num_chan=2
loadrt mux4 count=1
addf mux4.0 servo-thread
addf encoder.capture-position servo-thread
#addf encoder.update-counters base-thread
# If your MPG outputs a quadrature signal per click set x4 to 1
# If your MPG puts out 1 pulse per click set x4 to 0
setp encoder.0.x4-mode 0
# For velocity mode, set to 1
# In velocity mode the axis stops when the dial is stopped
# even if that means the commanded motion is not completed,
# For position mode (the default), set to 0
# In position mode the axis will move exactly jog-scale
# units for each count, regardless of how long that might take,
setp axis.x.jog-vel-mode 1
setp axis.y.jog-vel-mode 1
setp axis.z.jog-vel-mode 1
# This sets the scale that will be used based on the input to the mux4
setp mux4.0.in0 0.1
setp mux4.0.in1 0.01
setp mux4.0.in2 0.001
# The inputs to the mux4 component
net scale1 mux4.0.sel0 <= [HMOT](CARD0).inm.00.input-04
net scale2 mux4.0.sel1 <= [HMOT](CARD0).inm.00.input-03
# The output from the mux4 is sent to each axis jog scale
net mpg-scale <= mux4.0.out
net mpg-scale => axis.x.jog-scale
net mpg-scale => axis.y.jog-scale
net mpg-scale => axis.z.jog-scale
# The MPG inputs
net axis-selected-count <= [HMOT](CARD0).encoder.02.count
# The Axis select inputs
net mpg-x axis.x.jog-enable <= [HMOT](CARD0).inm.00.input-02
net mpg-y axis.y.jog-enable <= [HMOT](CARD0).inm.00.input-01
net mpg-z axis.z.jog-enable <= [HMOT](CARD0).inm.00.input-00
# The encoder output counts to the axis. Only the selected axis will move.
net encoder-counts <= encoder.0.counts
net encoder-counts => axis.x.jog-counts
net encoder-counts => axis.y.jog-counts
net encoder-counts => axis.z.jog-counts
There the hardware jog count is already connected to the linuxcnc one. I don't understad about the scale. I have 3 output on my pendant and there is only 2 in this config with mux4. It's a multiplexer so I need to put 0,0 and 0,001 in the same physical input ? I add to delete this line #addf encoder.update-counters base-thread because it was giving me an error at launch "base-thread not found". I also changed the MPG input part because I connected my MPG to channel 2 encoder on the 7i89.
# Include your custom HAL commands here
# This file will not be overwritten when you run PNCconf again
########MPG_Pendant##########
loadrt encoder num_chan=2
loadrt mux4 count=1
addf mux4.0 servo-thread
addf encoder.capture-position servo-thread
#addf encoder.update-counters base-thread
# If your MPG outputs a quadrature signal per click set x4 to 1
# If your MPG puts out 1 pulse per click set x4 to 0
setp encoder.0.x4-mode 0
# For velocity mode, set to 1
# In velocity mode the axis stops when the dial is stopped
# even if that means the commanded motion is not completed,
# For position mode (the default), set to 0
# In position mode the axis will move exactly jog-scale
# units for each count, regardless of how long that might take,
setp axis.x.jog-vel-mode 1
setp axis.y.jog-vel-mode 1
setp axis.z.jog-vel-mode 1
# This sets the scale that will be used based on the input to the mux4
setp mux4.0.in0 0.1
setp mux4.0.in1 0.01
setp mux4.0.in2 0.001
# The inputs to the mux4 component
net scale1 mux4.0.sel0 <= [HMOT](CARD0).inm.00.input-04
net scale2 mux4.0.sel1 <= [HMOT](CARD0).inm.00.input-03
# The output from the mux4 is sent to each axis jog scale
net mpg-scale <= mux4.0.out
net mpg-scale => axis.x.jog-scale
net mpg-scale => axis.y.jog-scale
net mpg-scale => axis.z.jog-scale
# The MPG inputs
net axis-selected-count <= [HMOT](CARD0).encoder.02.count
# The Axis select inputs
net mpg-x axis.x.jog-enable <= [HMOT](CARD0).inm.00.input-02
net mpg-y axis.y.jog-enable <= [HMOT](CARD0).inm.00.input-01
net mpg-z axis.z.jog-enable <= [HMOT](CARD0).inm.00.input-00
# The encoder output counts to the axis. Only the selected axis will move.
net encoder-counts <= encoder.0.counts
net encoder-counts => axis.x.jog-counts
net encoder-counts => axis.y.jog-counts
net encoder-counts => axis.z.jog-counts
There the hardware jog count is already connected to the linuxcnc one. I don't understad about the scale. I have 3 output on my pendant and there is only 2 in this config with mux4. It's a multiplexer so I need to put 0,0 and 0,001 in the same physical input ? I add to delete this line #addf encoder.update-counters base-thread because it was giving me an error at launch "base-thread not found". I also changed the MPG input part because I connected my MPG to channel 2 encoder on the 7i89.
Please Log in or Create an account to join the conversation.
- PCW
- Away
- Moderator
Less
More
- Posts: 17860
- Thank you received: 4767
01 Jun 2024 19:37 - 01 Jun 2024 19:38 #302096
by PCW
Replied by PCW on topic 7i96s + 7i89 analog spindle and mpg troubles
The example uses a software encoder so that can be deleted
This should be closer:
I tried to add this to my previous config and then decided to go from the original example hal.
# Include your custom HAL commands here
# This file will not be overwritten when you run PNCconf again
########MPG_Pendant##########
loadrt mux4 count=1
addf mux4.0 servo-thread
# For velocity mode, set to 1
# In velocity mode the axis stops when the dial is stopped
# even if that means the commanded motion is not completed,
# For position mode (the default), set to 0
# In position mode the axis will move exactly jog-scale
# units for each count, regardless of how long that might take,
setp axis.x.jog-vel-mode 1
setp axis.y.jog-vel-mode 1
setp axis.z.jog-vel-mode 1
# This sets the scale that will be used based on the input to the mux4
setp mux4.0.in0 0.1
setp mux4.0.in1 0.01
setp mux4.0.in2 0.001
# The inputs to the mux4 component
net scale1 mux4.0.sel0 <= [HMOT](CARD0).inm.00.input-04
net scale2 mux4.0.sel1 <= [HMOT](CARD0).inm.00.input-03
# The output from the mux4 is sent to each axis jog scale
net mpg-scale <= mux4.0.out
net mpg-scale => axis.x.jog-scale
net mpg-scale => axis.y.jog-scale
net mpg-scale => axis.z.jog-scale
# The MPG inputs
net encoder-counts <= [HMOT](CARD0).encoder.02.count
# The Axis select inputs
net mpg-x axis.x.jog-enable <= [HMOT](CARD0).inm.00.input-02
net mpg-y axis.y.jog-enable <= [HMOT](CARD0).inm.00.input-01
net mpg-z axis.z.jog-enable <= [HMOT](CARD0).inm.00.input-00
# The encoder output counts to the axis. Only the selected axis will move.
net encoder-counts => axis.x.jog-counts
net encoder-counts => axis.y.jog-counts
net encoder-counts => axis.z.jog-counts
The mux4 component uses a binary code on the
select pins so 2 pins can select 4 different inputs:
SEL1 SEL0 INPUT
0, 0 in0
0, 1 in1
1, 0 in2
1, 1 in3
This should be closer:
I tried to add this to my previous config and then decided to go from the original example hal.
# Include your custom HAL commands here
# This file will not be overwritten when you run PNCconf again
########MPG_Pendant##########
loadrt mux4 count=1
addf mux4.0 servo-thread
# For velocity mode, set to 1
# In velocity mode the axis stops when the dial is stopped
# even if that means the commanded motion is not completed,
# For position mode (the default), set to 0
# In position mode the axis will move exactly jog-scale
# units for each count, regardless of how long that might take,
setp axis.x.jog-vel-mode 1
setp axis.y.jog-vel-mode 1
setp axis.z.jog-vel-mode 1
# This sets the scale that will be used based on the input to the mux4
setp mux4.0.in0 0.1
setp mux4.0.in1 0.01
setp mux4.0.in2 0.001
# The inputs to the mux4 component
net scale1 mux4.0.sel0 <= [HMOT](CARD0).inm.00.input-04
net scale2 mux4.0.sel1 <= [HMOT](CARD0).inm.00.input-03
# The output from the mux4 is sent to each axis jog scale
net mpg-scale <= mux4.0.out
net mpg-scale => axis.x.jog-scale
net mpg-scale => axis.y.jog-scale
net mpg-scale => axis.z.jog-scale
# The MPG inputs
net encoder-counts <= [HMOT](CARD0).encoder.02.count
# The Axis select inputs
net mpg-x axis.x.jog-enable <= [HMOT](CARD0).inm.00.input-02
net mpg-y axis.y.jog-enable <= [HMOT](CARD0).inm.00.input-01
net mpg-z axis.z.jog-enable <= [HMOT](CARD0).inm.00.input-00
# The encoder output counts to the axis. Only the selected axis will move.
net encoder-counts => axis.x.jog-counts
net encoder-counts => axis.y.jog-counts
net encoder-counts => axis.z.jog-counts
The mux4 component uses a binary code on the
select pins so 2 pins can select 4 different inputs:
SEL1 SEL0 INPUT
0, 0 in0
0, 1 in1
1, 0 in2
1, 1 in3
Last edit: 01 Jun 2024 19:38 by PCW.
The following user(s) said Thank You: JohnnyBeluga
Please Log in or Create an account to join the conversation.
- JohnnyBeluga
- Offline
- New Member
Less
More
- Posts: 13
- Thank you received: 2
01 Jun 2024 21:51 #302112
by JohnnyBeluga
Replied by JohnnyBeluga on topic 7i96s + 7i89 analog spindle and mpg troubles
It makes sense now. [HMOT](CARD0).encoder.02.count was not really connected to axis.N.jog-counts. I think I finally understand the working principle of mux4 and how to adapt it to my setup and wiring. I rechecked the wiring and the output of the MPG on my oscilloscope. The switches also go high (+24V) when selected and the enable button is pressed.
Should I link the final motion function axis.N.jog-counts somewhere in the main HAL file ?
Should I link the final motion function axis.N.jog-counts somewhere in the main HAL file ?
Please Log in or Create an account to join the conversation.
Moderators: cmorley
- Configuring LinuxCNC
- Configuration Tools
- PnCConf Wizard
- 7i96s + 7i89 analog spindle and mpg troubles
Time to create page: 0.116 seconds