Nexmosphere specializes in interactive sensor technology for digital signage and retail environments. Enhance customer engagement by using Nexmosphere sensors with Dise to create dynamic displays responding to user interactions, such as approaching a display or picking up a product.
The Nexmosphere Sensor Suite is a collection of apps supporting some of the most popular Nexmosphere sensors, and is currently supported on Windows, Linux, and BrightSign.
Nexmosphere sensors are not connected directly to the player, but to a Nexmosphere controller, which then connects via USB to the player, where it will appear as a COM port. You will need to determine which COM port number the USB port is mapped to before proceeding with the setup described here. You will also need to know the sensor address of each connected sensor. The sensor address refers to the socket number on the controller to which the sensor is connected.
Please refer to Nexmosphere documentation for more information.
Installing and using the app
Each of the apps below can be used out of the box without customization by following the following steps:
Create your trigger(s) in the CMS, add it to the scenario(s) you want to trigger
Download the desired app from the list below
If you want to use more than one Nexmosphere sensor on the same player, read below on how to customize and combine several sensors in one app. Otherwise, you can use the app out of the box without any customizations.
Upload the zip (including any customizations) as a template in the CMS.
Create an invisible / background layer with a channel and playlist.
Create a message and fill out the fields as described for each app below. Fields marked with (*) are mandatory.
Then publish the message to the playlist.
Push buttons XT-B4N6
The Nexmosphere XT-B4N6 is a 4-channel push button interface with LED control. Push buttons are a proven and robust way for users to provide input and navigate through your digital content. Connect up to 4 buttons and programmable options for LED output are: on, off, slow-, and fast-blink.
Please refer to the Nexmosphere Product Manual for more information.
Download the app here:
Fields
COM port (*) | Which COM port to use, for example COM3 |
Sensor address (*) | The address of the sensor, 1-8 |
Button 1 trigger name | The name of the Dise trigger to activate when button 1 is pressed |
Button 2 trigger name | The name of the Dise trigger to activate when button 2 is pressed |
Button 3 trigger name | The name of the Dise trigger to activate when button 3 is pressed |
Button 4 trigger name | The name of the Dise trigger to activate when button 4 is pressed |
The LEDs can only be controlled from code from within your own apps, by calling setAttribute() to set the attribute nexmosphere.xtB4N6_BtnLEDs with the desired settings as JSON. Please refer to the Nexmosphere Sample Template project for more information, specifically the files Attributes.json and BtnLED.ts
Presence sensor XY-240 & 241
The X-Eye Presence & Airbutton sensors can detect if a person is in front of the sensor and - if so - indicate the distance of that person in relation to the sensor. Next to this, the sensor will provide an Airbutton trigger when a person places their hand close to the sensor.
The sensor uses 10 zones (25cm each) to indicate the distance:
.png?sv=2022-11-02&spr=https&st=2025-12-06T04%3A27%3A59Z&se=2025-12-06T04%3A50%3A59Z&sr=c&sp=r&sig=jXUxo%2B3pSCFOnCGSv8WSBTLnuTHH6lNawKx9Gfzc7DM%3D)
Please refer to the Nexmosphere Product Manual for more information.
Download the app here:
Fields
COM port (*) | Which COM port to use, for example COM3 |
Sensor address (*) | The address of the sensor, 1-8 |
Presence zone (1-10) | In which zone (or closer) is a person or object considered to be “present”? For example 4 |
Presence trigger name | The name of the Dise trigger to activate when a person or object is in the presence zones |
Airbutton trigger name | The name of the Dise trigger to activate when the Airbutton is activated, that is when the person almost touches the sensor (within 10cm) |
Magnetic pick-up sensor XSB-X36
The Nexmosphere X-Snapper range offers magnetic pickup sensors that can also be used as active security devices. The XS-Snapper detects either release from, or connection with, its passive counter block and sends triggers to the connected controller accordingly, both registering pick-ups and place-downs. Use the XS-Snapper for presenting smaller, handheld devices such as shavers, toothbrushes or phones.
Please refer to the Nexmosphere Product Manual for more information.
The app activates a trigger when the sensor detects a pick-up, and deactivates the trigger when it detects a place-down.
The app also supports an additional “alarm“ trigger which detects if the sensor or the attached product has been removed or tampered with.
If more than one sensor is used, the app must be customized before uploading to the CMS, the fields Sensor address, Pickup trigger name, and Alarm trigger name must be duplicated for each additional sensor. Read the section Customizing the app below for details.
Download the app here:
Fields
COM port (*) | Which COM port to use, for example COM3 |
Sensor address (*) | The address of the sensor, 1-8 |
Pickup trigger name (*) | The name of the Dise trigger to activate when a pick-up is detected |
Alarm trigger name | The name of the Dise trigger to activate when an alarm condition is detected |
Wireless pick-up sensor XF-P3x
The Nexmosphere XF-P3 is a battery-powered wireless pick-up sensor designed to detect when an object is lifted or placed back. Utilizing a 3-axis accelerometer, it accurately senses motion and orientation changes. The sensor communicates wirelessly and pairs with an EM-F base station, which can support 1, 4, or 8 wireless X-talk channels.
Nexmosphere documentation including how to determine the sensor address.
Fields
COM port (*) | Which COM port to use, for example COM3 |
Sensor address (*) | The address of the sensor as per Nexmosphere documentation above. |
Detection mode | Set relative mode (1) or absolute mode (2). Relative ensures small movements don’t cause ghost pick-ups. Absolute ensures the smallest movement is detected. |
Sensitivity | Two comma-separated values 1-10. 10 being the most sensitive. |
Trigger name (*) | The name of the Dise trigger to activate when a pick-up is detected. |
Trigger timeout | Timeout in seconds until the trigger gets deactivated. |
Light sensor XZ-L20
The XZ-Light sensor can detect the amount of light that falls on the sensor. This information can be used to determine whether merchandise is placed on top of the sensor or not, to create Lift & Learn or Place & Learn applications whenever RFID or battery-powered sensors cannot be applied.
The sensor has two modes, either “auto“ or a configurable constant threshold value (0-255) for detection.
Please refer to the Nexmosphere Product Manual for more information.
The app activates the trigger when light falls on the sensor, signalling a pick-up, and deactivates the trigger when the light is no longer detected.
If more than one sensor is used, the app must be customized before uploading to the CMS, the fields Sensor address, Pickup trigger name, and Pickup Threshould must be duplicated for each additional sensor. Read the section Customizing the app below for details.
Download the app here:
Fields
COM port (*) | Which COM port to use, for example COM3 |
Sensor address (*) | The address of the sensor, 1-8 |
Pickup trigger name (*) | The name of the Dise trigger to activate when a pick-up is detected |
Pickup Threshold (0-255) | Optional light threshold value. If not specified, “auto” mode is used |
Airbutton sensor XT-EF30
The Nexmosphere XT-EF Series offers sensors in various sizes that can detect touchless input from users. The sensors can be installed behind any non-metal material, offering an entirely invisible and touchless button solution.
The AirButton feature detects whenever a person’s hand enters and leaves the sensor’s detection field.
The AirSwipe feature detects a swipe gesture within the sensor’s detection field
See also the Nexmosphere Product Manual
Download the app here:
Fields
COM port (*) | Which COM port to use, for example COM3 |
Sensor address (*) | The address of the sensor, 1-8 |
Airbutton trigger name (*) | The name of the Dise trigger to activate when the Airbutton is activated |
Airswipe | The name of the Dise trigger to activate when an Airswipe is detected |
The direction of the Airswipe is set as the data value of the trigger attribute, to be consumed by code in your own applications. Possible values are are: UP, DOWN, LEFT, and RIGHT.
RFID driver XR-DR1
The XR-DR1 antenna driver detects and processes “tag pick-ups” and “tag placement” coming from the connected antenna and tag. It is the ideal solution for easy-to-implement Lift & Learn or Place & Learn applications, containing up to 250 products. It can be used in combination with any of the XR antennas.
The app allows detection of up to four RFID tags to be placed on the surface. This is exposed as a player attribute with the payload (data) of a JSON-serialized array with IDs of the detected tags.
XR-DR2 is supported in DR1 emulation mode.
See also the Nexmosphere Product Manual
Download the app here:
Fields
COM port (*) | Which COM port to use, for example COM3 |
Sensor address (*) | The address of the sensor, 1-8 |
RFID tags trigger name (*) | The name of the Dise trigger to activate when RFID tags are picked up or placed back. The IDs of the detected tags are sent as payload data |
Customizing the app
All the apps in the Nexmosphere Sensor Suite are actually the same, they are just packaged separately with different names and fields for ease of use. If you want to use two or more sensors connected to the same player, you need to create a “new app” by including the fields for all desired sensors in one app.
To customize the app, unpack the zip file, edit the template.json file as described below, then create a new zip with all files.
If you want to use two or more different sensors connected to the same player, you need to merge the fields of all sensors into one template.json. We suggest you give this combined app a descriptive name, and also change the field captions to make it clear which fields apply to which sensor. Note that the COM port field is shared by all sensors but can be overridden on a per-sensor basis. The following example shows how to merge the Push Button and the Airbutton apps into one:
{ "name": "Nexmosphere Push & Air Buttons", "contentBasePath": "", "application": "template.html", "type": "Trigger", "icon": "icon.svg", "thumbnail": "icon.svg", "options": { "apiVersion": 2, "templateVersion": 3, "defaultDuration": 86400, "targetWidth": 1920, "targetHeight": 1080, "scalePreview": true, "scalePlayer": false, "allowReuse": false, "enableAltMedia": false }, "fields": [ { "type": "text", "key": "port", "caption": "COM port", "default": "", "required": true }, { "type": "number", "key": "xtB4N6_sensorAddress", "caption": "Pushbuttons Sensor address", "required": true }, { "type": "text", "key": "xtB4N6_btn1TriggerName", "caption": "Button 1 trigger name", "default": "", "required": false }, { "type": "text", "key": "xtB4N6_btn2TriggerName", "caption": "Button 2 trigger name", "default": "", "required": false }, { "type": "text", "key": "xtB4N6_btn3TriggerName", "caption": "Button 3 trigger name", "default": "", "required": false }, { "type": "text", "key": "xtB4N6_btn4TriggerName", "caption": "Button 4 trigger name", "default": "", "required": false }, { "type": "number", "key": "txEF30_sensorAddress", "caption": "Airbutton Sensor address", "required": true }, { "type": "text", "key": "txEF30_touchTriggerName", "caption": "Airbutton trigger name", "default": "", "required": true }, { "type": "text", "key": "txEF30_swipeTriggerName", "caption": "Airswipe trigger name", "default": "", "required": false } ] }Note the we have changed the name of the app to “Nexmosphere Push & Air Buttons” and changed the captions of the Sensor Address fields to make it clear which address belongs to which sensor
If you want to use two or more of the same sensor type connected to the same player, you need to duplicate the fields and name them with “_2” for the second sensor, “_3” for the third, and so forth. The following example shows how to configure an app for 3 Magnetic Pickup Sensors:
{ "name": "Nexmosphere 3 Magnetic pickup sensors XSB-X36", "contentBasePath": "", "application": "template.html", "type": "Trigger", "icon": "icon.svg", "thumbnail": "icon.svg", "options": { "apiVersion": 2, "templateVersion": 3, "defaultDuration": 86400, "targetWidth": 1920, "targetHeight": 1080, "scalePreview": true, "scalePlayer": false, "allowReuse": false, "enableAltMedia": false }, "fields": [ { "type": "text", "key": "port", "caption": "COM port", "default": "", "required": true }, { "type": "number", "key": "xSnapper_sensorAddress", "caption": "1 Sensor address", "required": true }, { "type": "text", "key": "xSnapper_pickupTriggerName", "caption": "1 Pickup trigger name", "default": "", "required": false }, { "type": "text", "key": "xSnapper_alarmTriggerName", "caption": "1 Alarm trigger name", "default": "", "required": false }, { "type": "number", "key": "xSnapper_2_sensorAddress", "caption": "2 Sensor address", "required": true }, { "type": "text", "key": "xSnapper_2_pickupTriggerName", "caption": "2 Pickup trigger name", "default": "", "required": false }, { "type": "text", "key": "xSnapper_2_alarmTriggerName", "caption": "2 Alarm trigger name", "default": "", "required": false }, { "type": "number", "key": "xSnapper_3_sensorAddress", "caption": "3 Sensor address", "required": true }, { "type": "text", "key": "xSnapper_3_pickupTriggerName", "caption": "3 Pickup trigger name", "default": "", "required": false }, { "type": "text", "key": "xSnapper_3_alarmTriggerName", "caption": "3 Alarm trigger name", "default": "", "required": false } ] }Note the numbering of the field names, both the keys and the captions.