Interactivity via USB
From SpinetiX Support Wiki
Introduction
In the digital signage context, interactivity via USB refers to the DSOS player's quality of reacting in a user-defined manner (i.e., reactive action), following the input received from external devices connected to the player's USB port.
Available on all DSOS players, except for DiVA model, this feature is commonly used to create interactive kiosks to provide visitors with interactive information, building directory and way-finding, room reservation etc. Museums, historical sites, national parks and other tourist/visitor attractions often engage kiosks as a method for conveying information about a particular exhibit or site, allowing guests to read about or view video of particular artifacts or areas at their own pace and in an interactive manner, learning more about those areas that interest them most. Many shopping malls, hospitals, airports and other large public buildings use interactive kiosks to allow visitors to navigate in buildings.
Nearly all interactive USB devices that conform to the Human Interface device (HID) standard, thus not requiring a proprietary driver, are supported. Plus a few non-HID touchscreen devices, considered safe enough for their proprietary driver to be included into the player firmware. Here are some examples of interactive USB devices that can be used with the player:
- Touchscreens / touch overlays
- Mouse, and keyboard devices
- Remote pointers/presenters, USB push buttons
- Barcode readers, RFID readers, magnetic stripe readers
- HID boards (like U-HID board and U-HID Nano) simulating keystrokes or mouse events based on the input from other external devices such as: push-buttons / dry contacts, trackballs, pedals etc.
Configuration
To enable the USB interactivity, follow these steps:
- Open Control Center → "Advanced Applications" → Interactivity page.
- Click to activate the option labeled "Accept touchscreen and keyboard events".
- If needed, reduce the rendering latency and/or toggle the interactivity boost option.
- By default, the player is configured to use the maximum rendering latency (1s) with interactivity boost enabled (that means that the latency is lowered to 60ms when events are received). See also when not to reduce the rendering latency.
- Press the "Apply" button.
- Restart the player.
- If a touchscreen device is used, you might need to calibrate the touchscreen.
- Some USB devices, like the U-HID boards, may require one-off setup on a Windows machine first.
- For legacy players, go to "Display Settings" page → "Interactivity" tab.
How to create interactive content
Built-in interactive widgets
The easiest way to create interactive content is to use Elementi built-in interactive widgets ("Click *" and "Key *") which instruct the player to change the content, execute some JavaScript code, or update a Shared Variable upon the user click/touch or key-press events.
To get started, follow these tutorials: Create an interactive travel project and USB button tutorial.
- The interactive project must have an indefinite duration for the interactive events to be correctly processed.
- When using a mouse connected to the player, you might want to add a mouse cursor to your interactive project.
Advanced
For developers, some good resources for creating complex interactive content can be found on these pages:
Troubleshooting
Common problems
No interactivity
- In case the interactive events are not processed at all, there are few things to verify:
- Make sure that the USB device is recognized by the player and that you have correctly configured the player for interactivity.
- If a touchscreen device is used, you might need to calibrate the touchscreen first.
- For HMP200, HMP130, and HMP100, you should toggle the "Support large number of USB devices" option from the I/O Automation page and see if that solves the issue.
- Check that the interactive project has an indefinite duration.
- Check that the layer, which includes the SVG file processing the events, has a "focusable" attribute set to "true" (that is
"focusable": "true"
). In Elementi, this attribute can also be set from the "Advanced" tab of "Layer Properties" dialog.
Audio is distorted / presents noises
- The "Reduce latency to 60ms when events are received" option (i.e., interactivity boost) should be disabled and the "Maximum rendering latency" option should be set at least to 500ms.
Some interactive events appear to be "lost"
- The "Reduce latency to 60ms when events are received" option should be disabled. See more details here.
- Similarly, combining interactivity with synchronized content can cause problems if the "Reduce latency to 60ms when events are received" option is not disabled on the player that updates the Shared Variable (i.e., the player used for control).
Extended logging of input events
SpinetiX Support might require you to enable extended logging of input events, when the touchscreen calibration fails. For that, follow these steps:
- Download this configuration file.
- Apply the configuration file from the Control Center home page.
- Wait for the player to restart.
- Redo the touchscreen calibration.
- Generate a standard player report.
- Once done, apply this configuration file to revert to the default configuration.
To enable the extended logging of input events on HMP200, HMP130, and HMP100, follow these steps:
- Open the HMP Control Center.
- Open the "Status" page, find the HMP picture and click where the SpinetiX logo (in case of an HMP200) or the blue button (in case of an HMP130 / HMP100) is displayed – a confirmation dialog appears; click on "Yes" to enable the "Advanced settings" menu on the left side.
- From the "Advanced" menu, open the "Logs Settings" page.
- Enable "Custom configuration" radio button under the "Config" section. Click the "Apply" button right below it.
- Go to "Appender" section and find "debugfile" entry.
- Enable "Subscribe to all loggers" option and set the "Max Size" to 50000KB .
- Go to "Logger" section and set the "Priority" option (drop-down list) to "Info".
- Scroll down and find the "--- input" row (under "display"); select "Trace" on the drop-down list on the right-most column and make sure that no checkbox are enabled for that row.
- Make sure that no other checkboxes are enabled on the debugfile column.
- Click the "Update" button at the bottom.
- Restart the HMP.
- Redo the calibration procedure.
- Generate a new report.
- Once done, revert to the default configuration - enable the "Default configuration" option and click the "Update" button.