1 of 1 people found this helpful
Let me investigate on your question, I’ll let you know when I’ve found some useful information. In the meantime, take a look at this link https://communities.intel.com/message/265851#265851 . It discusses DMX, maybe you can find some useful information.
Unfortunately I didn't get very far with the suggestion.
Some of the problems are that the pin muxing from Galileo Gen1 and Edison are quite different.
Oliver's solution is also relying on Arduino code, system calls (from within the Arduino code)
and modifying the arduino IDE core to support a higher baud rate.
I was hoping for directions to a cleaner solution using libmraa/UPM in the hope of this being
simple to use for other people as well. I'm guessing I'm not the only one interested
in using DMX on the Edison.
At the moment I'm not very experienced. I started playing with electronics using Arduino
and I'm still getting the grips with it, so any hints/tips on how to find the equivalent constants/ports/pins
from atmega328 to Intel Quark would be very useful.
Thanks again for your help so far and for checking back,
Libraries that include AVR are not easy to port since AVR libraries are specific to the Atmel processor found on the Arduino boards. Edison has an Atom x86, my suggestion would be to find a python/C code that will meets your project requirements.
Take a look at this link: https://github.com/c0z3n/pySimpleDMX . It is a python program specific for a usb dmx.
Unfortunately I don’t have a DMX controller to test this and it is not on the list of supported shields but you can try these suggestions and post your results in the community.
If the AVR code can be ported to Edison's Quark MCU, that's great,
if not, writing python/C code for the Atom is also an option.
The goal is to do send DMX data from an Edison board alone,
so essentially giving the Edison the functionality similar to the Enttec USB Pro
DMX controller you've linked through the pySimpleDMX library.
The main reason would be keeping the form factor small, wearable and running
on an Intel only platform. One workaround could be using Arduino Block for Edison
from Sparkfun, but this is what I'm trying to avoid at the moment.
What do you recommend in this case ?
If you are worried about the size why don’t you try using a breakout board? It is a smaller option than the Arduino expansion board and it may be a better suit for your project. Look at the hardware guide here http://www.intel.com/support/edison/sb/CS-035252.htm .
@Intel_Alvarado In theory I could use a Sparkfun Arduino Block and simply compile existing code on the Atmel chip, but I am aiming to run the code on Intel's chip instead.
Can Intel Quark's timing support the strict timing required by the DMX protocol ?
Regarding the breakout board list supplied I haven't spotted a DMX or RS485 board listed (ideally a small form factor to be used with the small Edison breakout)
1 of 1 people found this helpful
According to Arduino Playground - Protokoll , a DMX bit is 4us long. It is not possible to toggle the pins every 4 μs with the MCU. We toggled all digital pins (0-13) individually and the fastest we got was 5.7 μs with DIG3 and 5.83 μs with DIG5. Keep in mind that these results come from just toggling on/off each pin individually without any other instructions.
Intel_Alvarado Thank you very much Sergio.
Some insights on the internals is what I needed.
As far as I understand, toggling a single pin would give you the same result (~5.8μs), correct ?
Sounds like the Sparkfun Arduino Edison block is the most viable option in this case