Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Communication between raspberry board --> DMX interface through GPIO --> led unit #1

Open
salsadux1a opened this issue Jun 2, 2018 · 0 comments

Comments

@salsadux1a
Copy link
Owner

salsadux1a commented Jun 2, 2018

  1. My Issue:
    I need to use the DMX interface for Raspberry Pi 3 model B+ without USB (FT245RL) and directly from GPIO, but checking on the web, I didn't find a low level driver (or a library) for dmx control directly from GPIO. I Tried compiling a simple

  2. My Hardware:

  • DMX interface for Raspberry pi with usb (FT245RL)
  • Raspeberry Pi 3 model B +
  1. I also contacted DMX interface producer, he suggested me:

<< To do DMX from the raspberry pi, you have to do a few things.

  • Send a break for about 100 microseconds.
  • Wait a small while (12microseconds IIRC)
  • send the DMX data. at 250000 bps and Repeat this say every 40ms...

You can program that yourself, or use standard software.
The OLA software has a driver for my hardware. Inside OLA this driver is called "uartdmx".
If you want to write your own driver, this is a nice example.

When you clone the git directory, in plugins/uartdmx/UartWidget.cpp
you find:

For example,
bool UartWidget::SetBreak(bool on) {
there you find the code to turn the BREAK on or off.
The routine below that is the example for writing the data.
and two routines down you find the example code to initialize the
port. When you are using OLA as the example code, note that it has a
mainloop (which I didn't see in the "Widget" file, it is probably in
the "Thread" file)

This mainloop does what I just said:
break
wait
write data
sleep

But it has a bug: The sleep starts when the write call returns and not
when the write finishes. So the sleep counts from the start-of-data, and
not from "end-of-data". The name of the config file entry and the name
of the variables hint that it starts at end-of-data (But that was a mistake
from that author) >>.

  1. Unfortunately I'm not an engineer, this is my first time, suggestions are welcome!

Thanks
Regards
Salva

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant