Haukcode.ArtNet 3.0.80

dotnet add package Haukcode.ArtNet --version 3.0.80
                    
NuGet\Install-Package Haukcode.ArtNet -Version 3.0.80
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Haukcode.ArtNet" Version="3.0.80" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Haukcode.ArtNet" Version="3.0.80" />
                    
Directory.Packages.props
<PackageReference Include="Haukcode.ArtNet" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Haukcode.ArtNet --version 3.0.80
                    
#r "nuget: Haukcode.ArtNet, 3.0.80"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Haukcode.ArtNet@3.0.80
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Haukcode.ArtNet&version=3.0.80
                    
Install as a Cake Addin
#tool nuget:?package=Haukcode.ArtNet&version=3.0.80
                    
Install as a Cake Tool

Haukcode.ArtNet

A high-performance ArtNet library for .NET (8.0+) enabling DMX512 lighting control over IP networks.

What is ArtNet?

Art-Net is a royalty-free protocol for transmitting DMX512 lighting control data over UDP/IP networks. It's widely used in professional entertainment, architectural, and theatrical lighting.

Features

  • ✅ DMX transmission and reception
  • ✅ Multiple universe support (up to 32,768 universes)
  • ✅ Device discovery (ArtPoll)
  • ✅ Frame synchronization (ArtSync)
  • ✅ RDM support (Remote Device Management) - separate package
  • ✅ ArtTrigger for show control
  • ✅ High-performance UDP communication
  • ✅ Cross-platform (.NET 8.0+)

Quick Start

Installation

dotnet add package Haukcode.ArtNet

For RDM support:

dotnet add package Haukcode.ArtNet.Rdm

Basic Usage

using System.Net;
using Haukcode.ArtNet;

var localIp = IPAddress.Parse("192.168.1.100");
var subnetMask = IPAddress.Parse("255.255.255.0");

// Create client
using var client = new ArtNetClient(localIp, subnetMask);

// Send DMX data
var dmxData = new byte[512];
dmxData[0] = 255;  // Channel 1 at full
await client.SendDmxData(null, universeId: 1, dmxData);

Receiving DMX

using System.Threading.Channels;
using Haukcode.ArtNet.Packets;

var channel = Channel.CreateUnbounded<ReceiveDataPacket>();

using var client = new ArtNetClient(
    localIp, subnetMask,
    channelWriter: async (p) => await channel.Writer.WriteAsync(p));

await foreach (var packet in channel.Reader.ReadAllAsync())
{
    if (packet.Packet is ArtNetDmxPacket dmx)
    {
        Console.WriteLine($"Universe {dmx.Universe + 1}: {dmx.DmxData[0]}");
    }
}

Device Discovery

// Send ArtPoll to discover devices
await client.QueuePacketForSending(null, new ArtPollPacket());

Frame Synchronization

// Send data to multiple universes
await client.SendDmxData(null, 1, dmxData1);
await client.SendDmxData(null, 2, dmxData2);

// Sync all outputs
await client.SendSync(null);

Key Methods

// Send DMX data (null = broadcast to all)
Task SendDmxData(IPAddress? address, ushort universeId, 
                 ReadOnlyMemory<byte> dmxData, bool important = false)

// Send sync packet
Task SendSync(IPAddress? address)

// Send any packet
Task QueuePacketForSending(IPAddress? destination, 
                          ArtNetPacket packet, bool important = false)

Supported Packets

  • ArtPoll / ArtPollReply - Device discovery
  • ArtDmx - DMX data transmission
  • ArtSync - Frame synchronization
  • ArtTrigger - Show control triggers
  • ArtAddress - Node configuration
  • ArtTodRequest / ArtTodData - RDM device discovery
  • ArtRdm - RDM commands (requires RDM package)
  • ArtIpProg - Remote IP configuration

Platform Support

  • .NET 8.0+, 9.0+, 10.0+
  • Windows, Linux, macOS

Documentation & Examples

📖 Full Documentation: https://github.com/HakanL/Haukcode.ArtNet

🔧 Sample Code: Included in the GitHub repository

Resources

License

MIT License - Copyright (c) 2018-2024 Hakan Lindestaf

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.80 50 2/5/2026
3.0.78 47 2/5/2026
3.0.74 361 11/11/2025
3.0.72 203 10/9/2025
3.0.71 187 10/7/2025
3.0.69 375 5/13/2025
3.0.68 299 5/13/2025
3.0.67 291 5/12/2025
3.0.66 241 4/24/2025
2.0.45 210 4/22/2025
2.0.43 197 4/22/2025
2.0.39 196 3/27/2025
2.0.38 211 3/13/2025
2.0.37 192 1/24/2025
2.0.36 153 1/24/2025
2.0.35 118 1/15/2025
2.0.34 153 1/10/2025
2.0.33 144 1/9/2025
2.0.32 159 1/7/2025
2.0.31 149 1/7/2025
2.0.29 157 12/20/2024
2.0.27 199 12/13/2024
2.0.26 154 12/13/2024
2.0.25 163 12/12/2024
2.0.24 173 12/12/2024
1.3.23 201 12/12/2024 1.3.23 is deprecated.
1.3.21 180 12/12/2024 1.3.21 is deprecated.
1.3.20 192 12/3/2024 1.3.20 is deprecated.
1.3.16 2,186 10/28/2024
1.3.15 182 10/28/2024
1.3.14 177 10/28/2024
1.3.13 171 10/28/2024
1.3.12 168 10/28/2024
1.3.11 534 9/19/2024
1.3.9-PR-fix-send-rdm-e201e0ca 131 9/19/2024
1.3.8-PR-fix-send-rdm-e201e0ca 149 9/19/2024
1.3.7 213 9/11/2024
1.3.6-PR-master-c27de239 139 9/11/2024
1.3.5 1,701 6/4/2024
1.3.4 1,240 9/14/2023
1.3.3 1,435 2/8/2023
1.2.1 707 10/7/2022
1.2.0 494 10/7/2022
1.1.0 536 10/4/2022
1.0.18 2,768 8/26/2020
1.0.17 671 7/31/2020
1.0.16 1,507 9/23/2019
1.0.15 732 9/23/2019
1.0.4 733 9/23/2019
1.0.0 933 12/5/2018

3.0.0 - Split RDM into a separate project
     2.0.0 - Rewrite to use HighPerfComm library
     1.2.2 - Bug fixes
     1.1.0 - Implemented ArtSync
     1.0.18 - Fixed bug in RdmPacketFactory
     1.0.17 - Fixed bug in ArtNetReplyPacket
     1.0.0 - Initial release