What do the tags "<AxisFilter>Dominant</AxisFilter>" and "<Deadband>200</Deadband>" do?

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

Post Reply
Framed_Previz90
Posts: 37
Joined: Sat May 23, 2020 8:31 pm

What do the tags "<AxisFilter>Dominant</AxisFilter>" and "<Deadband>200</Deadband>" do?

Post by Framed_Previz90 »

An alternative title for this thread was: How to not trigger other axis, when a axis is already engaged?

On one of my PCs, I have bound keyboard keys to all of the axis of the 3dx device, so when I move in a particular direction, a keyboard key gets triggered.

Its working fine but I am plagued by a issue that I have not been able to solve, I have read the forums for clues but I am still stuck.

The issue I am having is that when I have engaged the puck towards a certain axis, the corresponding keyboard key for that axis direction fires, this is as desired so far, but while this same axis is engaged, keyboard keys that belongs to other axis can also end up triggering.

So for example if I have bound keyboard key x for forward X axis, and y key for forward Y axis, while moving the puck forward in X axis, x will trigger but y will also trigger intermittingly

Reading the forum on similar issues, a common solution was the tag <AxisFilter>Dominant</AxisFilter>, I added the tag to the bottom but it does not prevent the issue at all. Is it supposed to be parented to a particular tag or something?

Also are both tags designed to limit their effects to a single axis? For example, with the following snippet, I am attempting to apply Dominant and Deadband to only the y axis, is this even possible?

Code: Select all

...
	<Axis>
		<Enabled>true</Enabled>
		<Input>
			<ActionID>HIDMultiAxis_Y</ActionID>
			<Min>0</Min>
			<Max>511</Max>
			<Deadband>200</Deadband>
			<AxisFilter>Dominant</AxisFilter>
		</Input>
		<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>21</Key></KeyStroke>
		</Output>
	</Axis>
	<Axis>
		<Enabled>true</Enabled>
		<Input>
			<ActionID>HIDMultiAxis_X</ActionID>
			<Max>0</Max>
			<Min>511</Min>
		</Input>
		<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>22</Key></KeyStroke>
		</Output>
	</Axis>
</AxisBank>
...
My full config is:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<Global Default="false" xmlns="" CfgFormatVersion="1.3" ThisFileVersion="2.0">
<CfgProperties>
	<ID>ID_Global_Cfg</ID>
	<Name>STR_GLOBALCFG</Name>
	<InheritsFromID>ID_Global_Cfg</InheritsFromID>
</CfgProperties>
<Devices>
	<Device>
	<ID>ID_Standard_3D_Mouse</ID>
	<Name>Standard 3D Mouse</Name>
	<CurrentAxisBank>Default</CurrentAxisBank>
	<CurrentButtonBank>Default</CurrentButtonBank>
	<AxisBank Global="true">
		<ID>Global Global</ID>
		<Name>Global</Name>
		<InheritsFromID />
<!--                                    [b2] Y Axis                                      -->
		<Axis>
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_Z</ActionID>
			<Min>0</Min>
			<Max>511</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>4E</Key></KeyStroke>
			</Output>
		</Axis>
		<Axis>
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_Z</ActionID>
			<Min>-512</Min>
			<Max>0</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>4B</Key></KeyStroke>
			</Output>
		</Axis>
		<Axis>
			<!-- rY axis -->
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_RZ</ActionID>
			<Min>0</Min>
			<Max>511</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>24</Key></KeyStroke>
			</Output>
		</Axis>
		<Axis>
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_RZ</ActionID>
			<Min>-512</Min>
			<Max>0</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>25</Key></KeyStroke>
			</Output>
		</Axis>
<!--                                    [b2] Z Axis                                      -->
		<Axis>
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_Y</ActionID>
			<Min>0</Min>
			<Max>511</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>21</Key></KeyStroke>
			</Output>
		</Axis>
		<Axis>
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_Y</ActionID>
			<Min>-512</Min>
			<Max>0</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>20</Key></KeyStroke>
			</Output>
		</Axis>
		<Axis>
			<!-- rZ axis -->
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_rY</ActionID>
			<Min>0</Min>
			<Max>511</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>26</Key></KeyStroke>
			</Output>
		</Axis>
		<Axis>
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_rY</ActionID>
			<Min>-512</Min>
			<Max>0</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>27</Key></KeyStroke>
			</Output>
		</Axis>
<!--                                    [b2] X Axis                                      -->
		<Axis>
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_X</ActionID>
			<Min>0</Min>
			<Max>511</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>1F</Key></KeyStroke>
			</Output>
		</Axis>
		<Axis>
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_X</ActionID>
			<Min>-512</Min>
			<Max>0</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>1E</Key></KeyStroke>
			</Output>
		</Axis>
		<Axis>
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_rX</ActionID>
			<!-- rX axis -->
			<Min>0</Min>
			<Max>511</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>23</Key></KeyStroke>
			</Output>
		</Axis>
		<Axis>
			<Enabled>true</Enabled>
			<Input>
			<ActionID>HIDMultiAxis_rX</ActionID>
			<Min>-512</Min>
			<Max>0</Max>
			<!-- <Deadband>200</Deadband> -->
			</Input>
			<Output>
			<ActionID>KB_Keystroke</ActionID>
			<Scale>3.00</Scale>
			<RepeatStyle>Auto</RepeatStyle>
			<KeyStroke><Key>22</Key></KeyStroke>
			</Output>
		</Axis>
	</AxisBank>
<!--                                    [b2] Left Button                                 -->
	<ButtonBank Global="true">
		<ID>Global Global</ID>
		<Name>Global</Name>
		<InheritsFromID />
		<Button>
			<Input>
			<ActionID>V3DK_MENU_1</ActionID>
			</Input>
			<Output>
			<ActionID>KB_F10</ActionID>
			</Output>
		</Button>
<!--                                    [b2] Right Button                                -->
		<Button>
			<Input>
			<ActionID>V3DK_MENU_2</ActionID>
			</Input>
			<Output>
			<ActionID>KB_F8</ActionID>
			</Output>
		</Button>
	</ButtonBank>
	<AxisFilter>Dominant</AxisFilter>
	</Device>
</Devices>
<Settings>
	<LEDsEnabled>false</LEDsEnabled>
</Settings>
</Global>
Any help would be greatly appreciated!
jwick
Moderator
Moderator
Posts: 3455
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: What do the tags "<AxisFilter>Dominant</AxisFilter>" and "<Deadband>200</Deadband>" do?

Post by jwick »

The AxisFilter goes at the Device level:

Code: Select all

    <Device>
      <ID>ID_Standard_3D_Mouse</ID>
      <Name>Standard 3D Mouse</Name>
      <AxisFilter>Dominant</AxisFilter>
      ...
It tells the driver to determine which axis has the largest magnitude and only send that axis (filter out the other 5).

It is next to impossible to isolate one axis with your hand.
Adding a large Deadband (200), on an axis will make that easier. But it is primarily useful for eliminating accidental activation. Try Dominant first.
Framed_Previz90
Posts: 37
Joined: Sat May 23, 2020 8:31 pm

Re: What do the tags "<AxisFilter>Dominant</AxisFilter>" and "<Deadband>200</Deadband>" do?

Post by Framed_Previz90 »

Okay got it!
Thank you for the expalanation, I understand much better now, I will experiment some more later today.
Post Reply