Nexmosphere extension for signageOS Front Applet

Usage no npm install needed!

<script type="module">
  import signageosFrontAppletExtensionNexmosphere from 'https://cdn.skypack.dev/@signageos/front-applet-extension-nexmosphere';


Nexmosphere extension for signageOS Front Applet

This library provides a seamless integration of npm modules @signageos/nexmosphere-sdk and @signageos/front-applet.

@signageos/front-applet library provides a set of interfaces for sensors and actuators and this library wraps around @signageos/nexmosphere-sdk library and exposes it as implementation of those interfaces.

That way, when you write an applet with @signageos/front-applet, you can use the sensors and actuators and if you later decide to change the underlying hardware of those sensors/actuators, you only need to replace the factories of the sensors/actuators objects.

It's also useful if you want to implement multiple diferrent sensors/actuators from different providers but want to use them all the same way in your code.


Every application starts with creating a nexmosphere instance that needs a serial port.

const sos = require('@signageos/front-applet');
const Nexmosphere = require('@signageos/front-applet-extension-nexmosphere');

sos.onReady().then(async () => {
    const serialPort = await sos.hardware.openSerialPort({
        device: '/dev/ttyUSB0',
        baudRate: 115200,
    const nexmosphere = new Nexmosphere(serialPort);

Example usage

This library is just a wrapper for @signageos/nexmosphere-sdk. You can find more detail about the various APIs there.


const buttonAddress = 2;
const buttonIndex = 0;
const button = nexmosphere.createButton(buttonAddress, buttonIndex);

button.on('pressed', () => console.log('buton was pressed'));
button.on('released', () => console.log('buton was released'));

RFID Antenna

const rfidAntennaAddress = 5;
const rfidAntenna = nexmosphere.createRfidAntenna(rfidAntennaAddress);

rfidAntenna.on('picked', (tag) => console.log(`tag ${tag} was picked`));
rfidAntenna.on('placed', (tag) => console.log(`tag ${tag} was placed`));