Conflict DMX and Ethernet library

Hi all,

for a project, I need the arduino uno rev3, ethernet shield 2, and DMX shield (CTC-DRA-10-R2).

Included these libraries:

#include <Conceptinetics.h>
#include <Ethernet.h>
#include <SD.h>

DMX_Slave dmx_slave (512);

const int ledPin = 13;

void setup() 
{             
  dmx_slave.enable();  
  dmx_slave.setStartAddress(1);
  pinMode (ledPin, OUTPUT );
}

void loop() 
{
  if (dmx_slave.getChannelValue (1) > 127
    digitalWrite ( ledPin, HIGH );
  else
    digitalWrite ( ledPin, LOW );   
}

when I remove SD.h, the code gets compiled, but with SD.h included, this error pops up:

Arduino: 1.8.5 (Windows 7), Board: "Arduino/Genuino Uno"

HardwareSerial0.cpp.o (symbol from plugin): In function `Serial':

(.text+0x0): multiple definition of `__vector_18'

libraries\Conceptinetics\Conceptinetics.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compiling for board Arduino/Genuino Uno.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

any Idea how I can use both DMX and Ethernet shields ?

On the Uno, the SPI pins, which are how the Arduino and the ethernet shield exchange data, are 11, 12, and 13. You will NOT be able to use the LED on pin 13. Pin 10 is the ethernet shield select pin, and pin 4 is the SD select pin, so you can't use them either.

The messages do not indicate that there is any kind of conflict between the DMX shield and the SD shield. The messages indicate that HardwareSerial and Conceptinetics are trying to use the same interrupt vector.

Post links to the hardware you are using, and to the non-standard libraries.

PaulS:
Post links to the hardware you are using, and to the non-standard libraries.

hardware:

arduino: Arduino Uno Rev3 — Arduino Official Store
ethernet shield: Arduino Ethernet Shield 2 — Arduino Official Store
dmx shield: DMX Shield for Arduino | eBay?

for both ethernet and SD, I used the standard libraries,
for the DMX shield CTC-DRA-10-R2 , I downloaded my library from here:

file I downloaded, was the most recent in the list:
https://sourceforge.net/projects/dmxlibraryforar/files/Conceptinetics_RDM_alpha3_2.zip/download

PaulS:
The messages do not indicate that there is any kind of conflict between the DMX shield and the SD shield. The messages indicate that HardwareSerial and Conceptinetics are trying to use the same interrupt vector.

I indeed experienced some errors with the Conceptinetics (DMX) libary and Serial.println

I've been checking which libraries can be compiled together:

Conceptinetics.h + Ethernet.h => OK
Ethernet.h + SD.h => OK

Conceptinetics.h + SD.h => ERROR
Conceptinetics.h + Ethernet.h + SD.h => ERROR

thank you already for your input, I'm curious if I can fix this in some way

So I mailed to arduino regarding this situation, their response:

Apparently both Arduino UNO and Ethernet shield are working properly. Therefore, we kindly recommend you to contact the developers of the Conceptinetics library and the manufacturers of the DMX shield so they can give you the information you need.

when sending this issue to the developer of Conceptinetics, I received this answer:

Appearantly something is writing output to the serial port using the Hardware serial library while the DMX library uses that same serial port for sending out DMX....

that topic is already put to "wont-fix"

perhaps this is a goodbye to arduino, in search for other hardware to program
if someone can use an arduino board, ethernet shield 2 and a dmx board, it's for sale

I'm sorry that neither group seemed to read your mail, which you didn't share, so we can't be sure what they were supposed to read.

Your problem has nothing to do with properly/improperly functioning hardware, so the Arduino team's blowing you off is inexcusable.

Your problem has nothing to do with run-time behavior, so Conceptinetics's blowing you off is inexcusable.

I FINALLY FOUND A SOLUTION!!!
I have a webserver with ethernet shield, SD shield, DMX shield and an LCD monitor and i had like 10 different vector conflicts.

I bent for each shield the tx and rx pin, and with some jumper i connected them to rx1 tx1/rx2 tx2/rx3 tx3

U just need to uncommenting some lines on the different librabry, now everything works amazingly!!

p.s. yes i'm using an arduino mega but ifound that using an UNO with ethernet is quite complex, i was writing just two strings and the uno was like 99% full.