uracoli-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [uracoli-devel] New project: wireless DMX board


From: Axel Wachtler
Subject: Re: [uracoli-devel] New project: wireless DMX board
Date: Sun, 27 Jan 2013 23:29:11 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.28) Gecko/20120313 Thunderbird/3.1.20

Hi Charles,

good to hear from you. About DMX I already thought sometimes ago, but I
did not had any DMX equipment to control/play with - but I found it to be an interesting project.

There are some AVR-DMX projects outside, e.g. http://avrdmx.sourceforge.net/ - so the 250kbit/s are managable.

As far as I have understand, DMX is just unidirectional.

A full DMX stream contains a lot of redundancy, since the channels are
most of the time rarely updated. So I came to the conclusion that just the gateway node, that is connected to the DMX master controller, needs to provide DMX compliant timing for the full data stream. That would be possible with an ATmega128RFA1, since it can run at 16 MHz, so the 250kbit/s should be manageable. However with 64 cycles between two bytes to send is a challenging realtime programming exercise.

The gateway controller should analyse the datastream for "changes", and
update the information on the remote nodes only in case something
has changed.

A mini dmx frame with group addressing comes to my mind. E.g. if you build groups of 16 nodes, lets say one group use the addresses 0x0010 ... 0x001f. The nodes will write there own address with the lower 4 bits masked out to the address filter. All 16 nodes will now receive the frames that are send to address 0x0010. Node 0x0010 then picks byte 0 from the payload of the frame, 0x0011 picks byte 1 and so on. But yo can also assign multiple bytes (= DMX channels) to one node, e.g. with 3 DMX channels.

0x0010 uses byte 0, 1, 2,
0x0011 uses byte 3, 4, 5
0x0012 uses byte 5, 7, 8
... and so on

These are my two cents / DMX brain dump for the moment, Cheers, Axel.

PS: This link looks also interesting: http://opendmx.net/index.php/DMX512-A



On 27.01.2013 20:56, Charles Goyard wrote:
Hi list,

it's been long since I didn't use uracoli, but here's a new project !

What I want/need to do is implement a small board that can receive DMX
data from a light controller (something like this:
http://www.ledstagelightingfixtures.com/photo/pl576845-40_channels_2048_dmx_lighting_controller_control_240_computer_lights.jpg),
and send it to remote nodes, that are custom made light fixtures (for
led dimming).

DMX compatibility is at premium. This was missing from my first project
(the juggling balls).

However DMX is precisely timed : 250kbps, with a pause of somehting like
92uS between frames. (see https://en.wikipedia.org/wiki/DMX512#Protocol).

I was wondering if a single AVR will be able to both receive the data
from the serial port and build the 802.15.4 packet. Notice I won't be
sending the full 512 bytes DMX frame, only 10 bytes (I only have 10
remote nodes).

Maybe I'll need to have two avrs on the sender side ? One for receiving
and parsing the DMX traffic, and the other one just to send the frames
in the air ?

Let me know if you have some insight with this.

Thanks,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]