U-HID Nano Human Interface Device
Brand : Ultimarc
- Calculated at Checkout
The U-HID Nano board gives you all the versatility of the U-HID board, with 8 inputs.
All inputs can be assigned as Analogue, Key codes, Game pad buttons, Mouse buttons or quadrature (Trackball, spinner).
Some functions (J1 through J7) listed below are only relevant to the FULL U-HID board.
Modular 8-Way Harness
This consists of 9 wires, (8 inputs plus ground) and plugs onto any of the sections of the U-HID connector. It is keyed to avoid incorrect connection.
The harness is 900mm long (39 in) and has connectors at both ends. It can be cut in half to give two open-ended wiring harnesses, then the appropriate connector fitted for the switch or other device.
U-HID Configuration Tools
U-HID User Manual
Game pad/Mouse/Keyboard Buttons
Any pin can be defined as a switch.
You can define a switch as:
* Mouse button (including double-click)
* Game pad button
* Keyboard key.
Each switch input has a primary assignment and a secondary assignment (optional).
Both the primary and secondary assignments can be used in key action settings and the secondary assignment is also activated in place of primary when a "U-HID Shift" key is held down.
You can assign a different action for the event when the switch is closed (i.e. grounded) and for when the switch is opened. The two possible key codes (or buttons) coupled with the way in which you define closed/open events gives a mass of flexibility in the types of control you can connect without using any external circuitry.
The key code which is sent when you activate the switch is defined using the U-Config utility. You can assign any connection to send any key press.
Switches can also be assigned as game controller buttons, which are numbered 0-32 (32 is a Windows limitation).
Mouse button selections available are left, right, middle or left double-click.
Simple keyboard-type button (Normally Open):For this you would set the “down” action to be the required key code and “up” action to be “Clear”.
Simple keyboard-type button (Normally Closed):Set “down” action to be “clear” and Up action to be the required key code.
Toggle switch with integral LED:
This type of switch sends a 5 volt signal when closed, and ground when open. Let’s say you want to turn on a control when you switch “on” the toggle but you don’t want to generate masses of key-presses which the toggle is still down. You can send one key-press only, by configuring:“down” action to be “clear” and “up” action to be “pulse” and the required key code. Setting it up this way means the internal LED in the switch will function properly with no external circuitry to control it.
Usually you would use normally-open switches or push-buttons (although the U-HID does support normally-closed)
One connection of each switch would be connected to the required U-HID input pin. The other to any ground pin. So, if many switches are used on a control panel, all of them have one connection which is "daisy-chained" to each other and routed back to a ground pin. We supply a pre-made "daisy-chain" wiring harness which can be used for this purpose.
Connectors J1, J2 and J3 have ESD static discharge protection. These 24 pins should be used in preference over the others when connecting switches. ESD can be a problem in warm dry environments and can cause false triggering or even damage.
Some switches have special connectivity or an in-built LED which mean you need to connect in a different way to the U-HID. The principle is always that the U-HID pin is assumed to be sitting at a voltage of 5 volts when not activated and zero when activated (but note that you can reverse the behaviour the PC sees using the config utility). If the circuit is "open" (ie a normally-closed switch is not activated) then it will sit at 5 volts.
Switches which have in-built self-powered LEDs will have a connection which sits either at zero or supply voltage. These switches would require a constant 5 volt supply to one terminal, a ground on another terminal, and the switched voltage appears on a third. The switched voltage is connected to the U-HID input pin. These switches actively tie the pin to 5 volts (supply) or ground. This is fine for the U-HID.
Important! Never connect any device to the U-HID which sends more than 5 volts otherwise damage could occur!
Switches defined as keyboard keys can be tested using Notepad or any program which displays text. Game pad buttons can be tested using Control Panel, Game Controllers.
The display is shown below:
Device Type: Analog Input
A pin assigned to Analog senses a voltage on the pin and controls a gamepad X, Y, or other axis on the PC.
Analog resolution is 12 bit.
The voltage can vary between 0 and 5 volts.
Usually this voltage will come from a potentiometer (pot) which is part of a steering wheel, handwheel, throttle pedal, or other type of analog control.
You can assign any pin to one of 8 possible analog axes. (8 is a Windows limitation).
To test, go into “Control Panel”, “Game Controllers”. Then select the board number (if you have more than one board).You will see the X, Y crosshair (axes 1 and 2 on the U-HID board) and also the other 6 axes as red bars.
Offset and Scale
In the U-Config program, on the second page of the GUI, you can select an offset. This is a fixed displacement of the control.
Usually this is set in the center, giving a conventional joystick type of control.
Also, you can set a scale factor, which defines the sensitivity of the control.
Device Type: Optical or Mechanical Encoders
High-resolution Quadrature devices usually consist of a pair of optical sensors and an encoder wheel.
Quadrature devices can be used in two ways. They can be used to control the mouse pointer in an X, Y or Z direction, or they can be used to repeatedly pulse gamepad buttons. In general, mouse mode is used for high-resolution optical encoders and button mode for low-res mechanical but there may be applications where the opposite mode is useful.
Quadrature devices use two input pins per device, and optical devices will require GND and 5V pins. Mechanical encoders require GND only, and this is the centre pin on 3-pin devices.
Windows allows one instance of each axis when defined as Mouse (ie X, Y, Z) but if you are using multiple U-HID boards, Windows can recognise each board as a different mouse, using Direct Input.
Devices should be capable of operating with a 5 volt supply (not required for mechanical encoders).
This can be obtained either by configuring a pin as 5V or using one of the fixed 5V sources on connector J7 (Full U-HID Board Only) They also require ground, which can be connected to a configured pin or one of the ground pins on each modular connector.
Note that only certain pins can be configured for quadrature devices. These can be seen in U-Config by clicking on the "Quadrature" line in the PCB image. Appropriate pins will be highlighted. Two pins are used per device. An X-Y device such as a trackball counts as two devices and therefore uses 4 pins.
Encoders configured in this more simply move the mouse pointer in the X, Y or Z direction. Note the Z axis in Windows performs differently to X and Y. It accepts a fixed displacement per data packet rather than a variable one. This means the Z axis might not be suitable for many applications as it is very sensitive when using a high-res encoder.
Button Pulse Mode.
In this mode, the quadrature device is assigned to a pair of Game Controller buttons. The pairs are buttons 1,2, buttons 3,4 etc... up to 15,16. (Full U-HID Board Only)
When the encoder is turned in one direction, the first button will be repeatedly "pressed". When turned in the other direction, the other button of the pair will be repeatedly "pressed". The press time is configurable. This is a global setting on the "Calibration" page of U-Config. The setting here can be set from 2 to 32. The figure is actually the number of USB data packets sent for each press.
Between each press, there must of course be a "release" period and this is the same time as the press.
It might be necessary to experiment with this setting as there is a trade-off. Too fast a setting will cause presses to be missed by the application, and too slow will cause slow response of the control.
When this mode is used for high-resolution encoders, the buttons will be pulsed at the maximum configured speed which is much higher than the real pulse-rate from the encoder.
U-HID Controlled LED
U-HID Controlled LEDs are LEDs which are turned on or off by switches which are connected to other pins on the board.
Assume you have a push-button which has an internal LED. It is a momentary button so cannot be used to directly switch the LED since it would only light while the button is pressed. You have this button configured as a toggle (push on, push off). You can assign the LED to this button, and it will light when the button is pressed and go dark when it is pushed again, in sync with the buttons action in the application.
Assume you have a toggle switch which grounds one connection when closed. This could not be used on its own to also control a LED.You could link a U-HID controlled LED to this connection and it would light while the switch s closed.
Up to 16 connections can be assigned as U-HID-controlled LEDs. When you assign these LEDs, you link it to any other connection. The other connection must be defined as a switch. This other connection will control the state of the LED.
Its important to realize that the LED state is not actually controlled by the other switch connection pin directly, but by the boards stored internal state of the control connected to that pin. This means the control of the LED is affected by how the switch is defined as well as its actual open/closed state.
The limit of 16 LEDs applies to the board to stay within USB specifications on current draw (500mA). The U-Config utility will allow you to configure more than this but a LED count on the status line will show red as a warning. You can configure more than 16 if you are using the outputs as low-current drivers, eg for TTL signals.
The U-HID will drive standard LEDs only.
Pins on J1, J2 and J3 have integral resistors so you can directly connect standard LEDs to these. Other pins will need a series 220R resistor, or use 5 volt LEDs with an in-built resistor. (Full U-HID Board Only)
LEDs are connected between the U-HID pin and ground.
The pre-made modular harness can be used to connect LEDs.
PC Controlled LED
Up to 16 connections can be defined as PC-Controlled LEDs. You can also use these for other output functions.
These LEDs are controlled by a software application on the PC. There are sample APIs for developing your own applications to add LED control.
You can also assign LEDs to behave as keyboard CAPS, NUM and SCROLL lock LEDs. They will be turned off or on in the same way as your regular keyboard LEDs.
Maximum current draw is 30mA per pin.
The limit of 16 LEDs applies to the board to stay within USB specifications on current draw (500mA). The U-Config utility will allow you to configure more than this but a LED count on the status line will show red as a warning. You can configure more than 16 if you are using the outputs as low-current drivers, eg for TTL signals. (Full U-HID Board Only)
The U-HID will drive standard LEDs only.
Pins on J1, J2 and J3 have integral resistors so you can directly connect standard LEDs to these. Other pins will need a series 220R resistor, or use 5 volt LEDs with an in-built resistor.(Full U-HID Board Only)
LEDs are connected between the U-HID pin and ground.
The pre-made modular harness can be used to connect LEDs.
Power And Ground
You can assign any connection as power output (+5V) or ground.
You need to be aware of the following limitations:
* Power and ground pins can only source/sink 30mA max current per pin.
* Total current draw must not exceed 500mA
If you need more current than 30mA then you can use one of the fixed power pins on connector J7. See the U-Config program board image for details of which pins these are. In fact it is good practice to use these pins whenever possible for a 5 volt source as they are powered directly from the USB supply.
Using assigned pins instead offers advantages of modular connectors and is particularly useful for optical devices which always need a supply for the optical switches and dont have a large current requirement. As each modular plug has one fixed ground connection you would rarely need to assign a ground pin.
U-HID Shift Feature
The internal shift feature allows you to define a connection (or connections) which when activated, cause all other switch connections to send an alternate command.
This is rather like a keyboard shift key which, when held, causes the keyboard keys to send different characters. When the internal shift connection is activated and held, the Secondary function of all other keys is sent instead of the Primary.
In a gaming controller you might wish to assign an admin function such as COIN INSERT and you don’t wish to have a dedicated button on the panel for this. You could make PLAYER1 START an internal shift connection. Then assign a secondary COIN INSERT function to the switch which is normally “PLAYER 1 FIRE”. So to insert a coin, hold PLAYER1 START and press PLAYER1 FIRE.
You have a control panel which is used for two completely different functions and you wish these functions to be selectable using a toggle switch. You could assign a spare connection as an internal shift connection, and then connect a toggle switch to it. Then assign all Primary functions to your first control panel type and all Secondary functions to the second type. Switching the toggle would flip the panel from one mode to the other. (Be aware you can also achieve this by re-programming the board on-the-fly though!).
Defining Internal Shift Connections
Normally you would perform this on only one connection, which will act as the shift key.
Most users would only require to define this function once, so to avoid clutter on the display, it is hidden unless the connection is completely un-assigned. This means with the default configuration, which has all connections assigned, you won’t see this option.
To assign a connection as an internal shift:
Click on the connection and select “not used”. A check box will appear with the option “This is an Internal Shift Switch”.
Enable the check box. This will be highlighted in red and will remain visible while this connection is selected.
Checking this box limits what you can do with the other selections for this switch. You are limited to assigning a “Pulse action on Open” , or no action at all. Any other type of assignment is invalid for an internal shift connection.
You cannot assign this connection as an LED, Analog or Quadrature input.The ability to assign a “pulse on open” action means you can also have this connection perform its own function as well as being a shift key.
If the key is pressed and released, it will send its own function as a pulse, provided no other connection has been activated in the meantime. This is how Example 1 works, above. The Player 1 Start function of this key still works even though it’s a shift key as well. You can assign any number of the connections to be internal shift, but they all will enable the same shift functionality in addition to their own individual assigned code (if any).
This thing is tiny - but powerful. I only needed a key emulator for my pinball build - so 8 keys were perfect. But then I bought a virtual pin which has joy emulation as well - so I switched to it instead. But that’s where the beauty of this little gadget comes in - it’s now been my used to drive my leds. And it’s led blindly compatible. Oh it can do joy keys too. Each of the 8 out pins can be programmed to what you need - 5v, ground, led, button , or key. Brilliant.
While my application was music playout rather than games this module was “just the job”. I needed to simulate keyboard buttons from relay closures and the combination of hardware and software was easy to use.
There are a couple of things that would be handy.
One is some sort of mounting clip for the board as I ended up supporting it in a box by the wiring loom and the second is that it would be handy if the software were able to look like a drum pad and output MIDI.
All in all, excellent.