it would be the latter, Being a
programmer i understand the basic fundementals of software for a PC, the only issue i'm seeing is how to get the software to comunicate in 512 as far as what data should be sent to the
dongle or other device.
That's pretty much done for you in the Enttech source material. You can incorporate their libraries into your software, and then concentrate on the meat of the control software--creating, storing, recalling, and playing back the
channel values. Once your software creates a list of 512 instantaneous
channel levels, all you have to do is push it out through the virtual com port the
Enttec (or equivalent) interface provides.
(The heart of the
Enttec interface is the FTDI232, which is a single-chip USB-serial bridge. Its serial side is TTL-level, so it is paired with a MAX485 or similar RS485 transceiver which does nothing but
shift the TTL
voltage levels to and from the RS485 differential voltages required for
DMX. Neither is a terribly 'smart' device, but each is good at what it does. The hard stuff (generating the
DMX stream) is all done in software.)
If you want to reinvent the
DMX generation layer, then you can to look at the
Enttec DMX libraries or the various microcontroller-based, provided you have or acquire sufficient background in the relevant environment to understand the material. Microcontroller
DMX interfaces generally require some rather unfriendly-looking bare-metal access, so they can be daunting to the beginner. Or you can start from scratch from the reference material everyone has provided for you.
While none of it is
arduino based, some of his projects are ATmega based which is the same language that the
arduino environment is built on
Not quite. The
Arduino environment does use AVR-GCC, but it HEAVILY abstracts a lot of the functions of the actual hardware in its own libraries for the sake of usability. For instance, to access the
PWM function in
Arduino, you would simply do:
Code:
analogWrite( pin, value);
but in plain AVR-GCC (as in AVR Studio), unless you import the
Arduino libraries, you'd need to do:
Code:
DDRD |= ( 255 ); //set port D GPIOs as outputs
TCCR0A |= ( (1 << COM0A1 ) | (0 << COM0A0) | (1 << WGM00) | ( 1 << WGM01) );
TCCR0B |= (0 << WGM02 ); // set up OCR0A (Arduino pin 6) in non-inverting Fast PWM mode
TCCR0B |= ( ( 1 << CS00 ) | ( 1 << CS02 ) ); //setup T/C0 prescaler
OCR0A = value; //load compare register with PWM value