saikoLED / TeensyLED

SaikoLED Projects Developed on the Teensy 3.1
18 stars 4 forks source link

Question ADM2582 #1

Closed kasperkamperman closed 7 years ago

kasperkamperman commented 7 years ago

Hi, Nice design. Maybe I'd like to make a similar kind of board for the Particle Photon. I was wondering why you have selected the ADM2582 and not the ADM2587. From what I can see in the datasheet the 2582 has a dataspeed of 16Mbps and the 2587 a dataspeed of 500kbps.

For DMX 500kbps will be sufficient I think because of the speed of 250000baud (250kbps).

Or do I miss something?

Thanks in advance for your feedback.

neltnerb commented 7 years ago

Hi Kasper,

Yes! Please, the Photon looks great to me. I've built wifi lights before since 2010:

http://www.instructables.com/id/Ultra-bright-LED-Color-Changing-Spotlight-using-Op/

but the photon looks like a way easier way to do it than what I've tried before. I actually have a photon sitting on my desk that I just haven't gotten around to modifying the TeensyLED board to handle. It shouldn't be too challenging though, I think you should find it to not be a big problem. I hope you share your design so that others can use it as well!

You may find helpful thinking about one thing ahead of time, which is wifi latency. In my instructable project above, it is using a wifi chip running on a local network, and even with only local communication with more than about eight lights the latency became a problem. Lots of wifi devices on one network has a lot of issues where one light will just sort of stop getting updates for a bit and then start up again.

The biggest reason I have not yet tried the Photon for it is that because the network is non-local (you, I believe, connect via their cloud service) I can't make it work in remote locations like Burning Man and the latency is much higher as the command to change colors has to traverse the internet to make it to your lamp even if it's in the same room as you. I think you can make the Photon communicate locally, but it didn't look as straightforward as I had hoped.

There are two decent ways to work around this -- the first is to have a single photon or only a few photons acting as DMX to WiFi Transceivers which then send actual DMX commands out to a local network over physical wires. This avoids wireless contention at least, and keeps at least the lights on a single DMX universe synchronized. The second is to make the lights very smart, and send them only very abstract commands like "do a color wheel at this speed, saturation, and intensity" so that the amount of data being sent to them is very small. Basically highly compressed data rather than just an RGB color. Either approach works well, but you should keep in mind both wireless contention and latency (particularly if it is dealing with a non-local sever).

But I think you can do it! Please keep me updated, I would love to hear how it goes!

With regards to the selection of the ADM2582E over the ADM2587E, I think you are correct that the ADM2587E will work fine for DMX. I can't recall for sure after the intervening years, but most likely the ADM2587E was out of stock at the time so I just used the ADM2582E. I do not think there is any reason it would not work just fine with the ADM2587E. There may even be more appropriate chips now that it's three years later!

On Wed, May 10, 2017 at 3:24 AM, kasperkamperman notifications@github.com wrote:

Hi, Nice design. Maybe I'd like to make a similar kind of board for the Particle Photon. I was wondering why you have selected the ADM2582 and not the ADM2587. From what I can see in the datasheet the 2582 has a dataspeed of 16Mbps and the 2587 a dataspeed of 500kbps.

For DMX 500kbps will be sufficient I think because of the speed of 250000baud (250kbps).

Or do I miss something?

Thanks in advance for your feedback.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/saikoLED/TeensyLED/issues/1, or mute the thread https://github.com/notifications/unsubscribe-auth/AAaL0U-8LAGfgIhW4sgwTGUU9qf1mk_Iks5r4ZBygaJpZM4NWdzb .

-- Brian Neltner, Ph.D. President, SaikoLED neltnerb@saikoled.com

kasperkamperman commented 7 years ago

Hi Brian,

Thanks for the extensive response. I'm aware of the limitations of the Photon. Their main purpose is IoT, but you can use them in a local network as well (UDP/TCP). Latency with these kind of devices is always a problem. Although there is someone that build a ArtNet node with 8 universes with the STM32 processor (although it's a M4 variation and not the M3 as on the Photon) http://www.ulrichradig.de/home/index.php/dmx/8-kanal-art-net

My goal is however to generate DMX and effects on the Photon board itself (probably by using FastLED . I need to make a stable DMX output, but I found already some good implementations that I can use.

Of course I'll share the design and the library. If you'd like to follow along: https://community.particle.io/t/transmit-dmx-data-with-dma-on-serial1/32581

Another question. I see that you power the chip with 3.3V. I assumed that 5V was necessary. I was trying to find what the signal voltage of DMX is, since they follow the RS485 standard for the physical layer I think a difference of 200mV on the signal lines still gives a reliable data transmission (if I interpret the datasheet fine). I was wondering if 3.3V might do for long cable lengths because of cable resistance.

neltnerb commented 7 years ago

Hi Kasper!

Sounds fabulous, I'm not sure I'd be able to help much with the DMX code, but there are some good reference libraries.

I'm not myself a particularly skilled programmer, but you might check out the actual reference implementations for DMX which exist for several ARM processors.

http://www.nxp.com/documents/application_note/AN10717.pdf

for instance. NXP has several chips that they have application notes and example code for DMX including RDM. I don't think I'd be capable of porting it, but perhaps you can!

The signal voltage for DMX is the same as the signal voltage for RS485, balanced +/- 200mV. The reason I picked the ADM2582E is because it has a built in isolated voltage transformer to power the isolated half without needing additional transformers, so it produces the 200mV signal level internally. No need to think much about it.

The 3.3V sets the interface voltage, so I matched the interface voltage expected by the Teensy board. So just match whatever the Photon expects (probably 3.3V). It will generate it's own transceiver voltages.

The interface being isolated from the board grounds is pretty critical. If you don't do it you end up with horrific ground loops if you have multiple lights connected to different voltage grounds. A lot of cheap commercial LED fixtures don't do this properly and it causes I'd say the majority of communications failures in installations.

But check out my eagle files for how to make sure the ground planes are separated, if you connect the grounds between the RS485 and the rest of the board it will defeat the purpose of using the ADM2582E because it will just re-connect the grounds and re-create the ground loops.

I'll also warn you that Color Kinetics fixtures use a non-standard DMX wiring layout. It's mentioned in the wikipedia page I believe but you'll need a way to switch between the two pinouts if you want to use both them and devices implementing the official standard.

kasperkamperman commented 7 years ago

Thanks!