GitHub release npm GitHub issues GitHub stars GitHub license GitHub last commit Github All Releases npm Travis (.com)

dmxnet is an ArtNet-DMX-sender and receiver for nodejs, currently under heavy development!


  • Send DMX-Data as ArtNet
  • Use multiple senders with different Net, Subnet and Universe-Settings
  • Receive ArtNet-Data
  • Use multiple receivers with different Net, Subnet and Universe
  • Receive ArtPoll and send ArtPollReply (dmxnet is found by other software, e.g. DMX-Workshop)




v0.8.0 Dependency Updates, constructor improvement (@soimon)

v0.7.0 Improve logging (thanks to @Patrick-Remy)

v0.6.0 Add typescript definitions (thanks to @she11sh0cked)

v0.5.0 Dependency Updates, add hosts option (thanks to @gaelhuot)

v0.4.0 Added support for receiving ArtDMX packets.

v0.3.0 Added support for base_refresh_interval, add sender.reset()


Added support for receiving ArtPoll and sending ArtPollReply.

v0.1.3 Improved logging trough use of simple-node-logger

v0.1.2 Added subuni option to sender

v0.1.1 Added prepare channel

v0.1.0 Initital Release, sending ArtDMX working


How to install latest release:

npm install dmxnet

How to install current development version:

npm install git+https://[email protected]/margau/dmxnet.git


See example_rx.js and example_tx.js

Include dmxnet lib:

var dmxlib=require('dmxnet');

Create new dmxnet object:

var dmxnet = new dmxlib.dmxnet(options);


  log: { level: 'info' }, // Winston logger options
  oem: 0, //OEM Code from artisticlicense, default to dmxnet OEM.
  sName: "Text", // 17 char long node description, default to "dmxnet"
  lName: "Long description", // 63 char long node description, default to "dmxnet - OpenSource ArtNet Transceiver"
  hosts: [""] // Interfaces to listen to, all by default


dmxnet works with objects: You can create a new Sender or Receiver-instance at any time, each transmitting or receiving data for a single ArtNet-Universe.

Each combination of net, subnet and universe is possible.


dmxnet can propagate max. 255 Sender/Receiver-Objects to other nodes. This is a limitation based on the internal structure of ArtPollReply-Packages. You can of course use more Sender/Receiver-Objects, but they won't propagate trough ArtPoll.

Transmitting Art-Net

Create new sender object:

var sender=dmxnet.newSender(options);


  ip: "", //IP to send to, default
  subnet: 0, //Destination subnet, default 0
  universe: 0, //Destination universe, default 0
  net: 0, //Destination net, default 0
  port: 6454, //Destination UDP Port, default 6454
  base_refresh_interval: 1000 // Default interval for sending unchanged ArtDmx

Set Channel:


Sets channel (0-511) to value (0-255) and transmits the changed values .

Fill Channels


Sets all channels between min and max (including these) to value and transmits the values.

Prepare Channel:


Prepares channel (0-511) to value (0-255) without transmitting.

Change is transmitted with next


call, or the next periodically transmit. Useful for changing lots of channels at once/in parallel from device view.



Transmits a new ArtDMX Frame manually.



Resets all channels of this sender object to zero.

Please Note: dmxnet transmits a dmx-frame every 1000ms even if no channel has changed its value!

Receiving Art-Net

Create a new receiver-instance:

var receiver=dmxnet.newReceiver(options);


  subnet: 0, //Destination subnet, default 0
  universe: 0, //Destination universe, default 0
  net: 0, //Destination net, default 0

Wait for a new frame:

receiver.on('data', function(data) {
  console.log('DMX data:', data);

The receiver is emits an "data"-event each time new values have arrived.

The current values are stored inside the receiver.values-array for polling.


  • Act as Controller (Sending ArtPoll, Receiving ArtPollReply)
  • Maybe support sACN?

Please feel free to contribute!


Art-Netβ„’ Designed by and Copyright Artistic Licence Holdings Ltd


ArtNet-DMX-sender and receiver for nodejs

Dmxnet Info

⭐ Stars 30
πŸ”— Source Code
πŸ•’ Last Update 3 months ago
πŸ•’ Created 4 years ago
🐞 Open Issues 12
βž— Star-Issue Ratio 3
😎 Author margau