So at the moment I am trying to finish a project which will (hopefully) act as a middle man between a dmx lighting control desk and a lighting rig. As a middleman it will be able to intercept packets and modify them on the fly, according to what it gets sent down usb from a pc.
So thats the plan, but so far the research I have done shows me various problems with this and I was wondering if anybody could give their opinion.
I plan on using an Arduino Uno; with 2048 bytes of SRAM, the 512 channels of DMX shouldn't be a problem, the 16Mhz should just about cut it, 16Mhz = approx. 16 instructions per microsecond, DMX protocol states 4 microseconds in the smallest delay possible, so 64 instructions per bit sent, which should just about suffice.
So for the problems:
For voltage shifting, I was looking at the MAX485 (a RS485 bus transciever), but AFAIK you have to put it in recieve or transmit mode, which isn't ideal, seeing as I might be miss part of a packet coming in while transmitting the last packet.
To make things easier I noticed a DMX shield made by Tinkerkit, and seeing as my previous attempts at just sending DMX failed, this looked like a good choice, it has two DMX sockets IN and OUT but uses only one bus transciever so this encounters the previous problem and can't add another transciever to it which could solve the previous problem...
Just realized this is probably the wrong subforum for this topic but I'm just getting to the software side of it now.
I've looked around and only found DMXSerial as a library which will send and recieve DMX but this uses the hardware UART to send the DMX signal meaning, to my knowledge, the TX and RX pins cannot be used for standard USB communication. Does anyone know if it is possible to change the pins used in the DMXSerial library?
I've thought about using usb shields to avoid the TX and RX pins but I'm on a tight budget, which is also the reason for contemplating this project in the first place.