ArtNode - An Art-Net
Node implementation in FreePascal
By Rowan
Maclachlan (aka hippy) 2006.
[download
source, and pre-compiled binaries for win32 and linux]
@ SourceForge.net
This program is
dedicated to Professor Nikolas Wirth, Inventer of
the pascal programming language, and an all around clever guy (like my dad :)
This program makes
use of the multi-platform synapse serial and network sockets,
be sure to read the source code and the copyright information within.
So WTF is an ArtNode?
ArtNodes are components of your ethernet-dmx network, they
translate DMX-512 to and from Art-Net.
Typically they convert incomming Art-Net DMX data from a
ethernet lighting console into DMX-512 ready to send to the
dimmers, lights, etc..
Most ArtNodes can also recieve DMX-512, for example from a normal dmx
non-ethernet lighting console and send it as Art-Net DMX to other
consoles or ArtNodes.
How can i use
it?
* Send
multiple DMX universes over one long cable (or wifi link!),
* Add extra output universes to your Art-Net enabled Lighting Consoles
* Use a DMX-512 Console to control your Art-Net Console/Software
* Use for outputs/inputs to Art-Net console software
* Patch
in a backup console which will override the output when it's touched.
How do you
send/recieve DMX-512?
ArtNode supports upto 4 Enttec DMX USB PRO
devices (DEVICE 0 to 3)
in send or recieve mode, Firmware 1.42 is implemented, update only
support is included to obtain maximum DMX-512 recieve speed, and
another option makes a filter to remove dmx frames which are not
framed correctly.
DMX-512
input (from a DMX lighting console for example) is sent by us
over Art-Net DMX protocol to recieving devices (other ArtNodes, consoles, etc).
Each input can be patched to any of upto 16 Art-Net Universes.
Art-Net DMX Packets will only be sent if the DMX-512 input changes.
(Also it will be sent automatically every 3 seconds, to update any
fixtures which have only just powered on.)
Art-Net DMX universes are recieved by us, and transmitted as DMX512
to lights, dimmers, etc. from the Enttec DMX
USB PRO devices. Any Art-Net
universes from 1-16 can be patch to any of the 4 devices.
Enttec DMX USB PRO Devices which have been
configured but not connected
can be hot-plugged (inserted or removed while art-node is running), and they
should be detected and started within 5 seconds. (it not recommended to
unplug, this is just for those emergencys!)
How many Art-Net
universes can it handle?
should work upto 16 ArtNet universes (PATCH 0 to 15)
DMX can be received
from a normal dmx console, by a DMX USB PRO, it's then
filtered for bad data, and routed to any or all of the Art-Net universes..
Similarly, any or all of the 16 Universes of Art-Net can be routed to any of
the four DMX USB PRO's..
Many different configurations are possible using user editable config files.
Where are the
windows, GUI?
ArtNode is 'old school', aims for raw speed, no GUI exists.
Config
files?
Yes, these are used to store different configurations. They are Required,
without a config file, artnode can not and will not function.
This file controls the devices, patching, network and other options.
(hint: to generate a config file, execute 'artnode -c' and follow the
prompts)
To edit the config,
open the config file in a text editor..
Warning!
Statements in the config file must start on the first character of the line..
and must no have any trailing characters or spaces..
eg "DEVICE
0"
is ok,
but "_DEVICE 0_" is not going to work!! this applys every line!
Devices
The device section controls how the DMX USB PRO devices will behave in this
session, it determines if the device will send or recieve DMX-512, and which
artnet universes are patched to this device..
find the [device section].. (example)
..
[device section]
DEVICE 0
COM5
INPUT
DEVICE 1
COM6
OUTPUT
DEVICE 2
COM7
INPUT_UPDATE
[end setcion]
..
This tries to
find device 0 (a DMX USB PRO) on COM5 and set's it
direction to input, tries to find device 1 on COM6 and set's it to output,
and tries to find device 2 on COM7 and set the dmx device to only recieve
if the actual dmx input changes.
In Linux, try
these ports...
/dev/ttyUSB0 (for kernel 2.4)
/dev/tts/USB0 (for using udev- kernel 2.6)
Patching
find the [patch section]
find the device you wish to patch.. eg..
..
[patch section]
DEVICE 0
PATCH 0
[end section]
..
that patches dmx device 0 to Art-Net universe 0.
you could change it..
..
DEVICE 0
PATCH 2
..
that patches dmx device 0 to Art-Net universe 2.
..
DEVICE 0
PATCH 0
PATCH 2
PATCH 4
PATCH 6
..
that patches dmx device 0 to Art-Net universes 0,2,4 & 6.
Network
The bind address should be that of your network card or interface you wish to
transport Art-Net over, addresses in the 2.x.x.x and 10.x.x.x should be used
as 99% of art-net devices require this.
The broadcast
address should be either 2.255.255.255 or 10.255.255.255
depending on your IP. (you can create a private link by setting this to
the IP of the one node you wish to talk to)
Control Section
FILTER_DMX filters dmx packets which recieved badly, or have a non-zero
startcode.
NO_SLEEP does not attempt to share time with the operating system, warning uses
100% CPU time so heat may be an issue.
DISABLE_HOTPLUG disables searching for devices which are in the config file,
but which are not yet connected. By default ArtNode will
check all un-opened ports every 2 seconds for a devices.
Where does
it work?
It has been compiled and working on win32 and linux platforms,
built using FreePascal 2.0.2, possibly supports other compilers, platforms and
architectures also.
Wow, How Much??
Free for personal not-for-profit use only,
you must contact me if you are using it in (or part of) a commercial product
I will not
accept responsibility for any adverse effects of this software,
or it's use.
Contact E mail: rowanmac _ optusnet com au (use DMX in the subject)
Links
http://www.enttec.com/ - Home of the DMX
USB PRO.
http://www.artisticlicense.com/
- Home of Art-Net.