Apparent HW incompatibility between DMX Shield and Ethernet shield...

Problem: apparent HW incompatibility between DMX Shield and Ethernet shield.

Hardware: Arduino Mega 2560, Arduino Ethernet 2 shield, CTC-DRA-10-R2 DMX shield.

Well, I want to use the SD card reader on the Ethernet shield. Although I can change the chip select (CS) pin in the software (Sd2Card.h), from experimentation I have discovered that only pin 4 actually works. Any other pin fails to initialize the SD card reader HW.

Now the DMX shield seems to also use pin 4 for it's own purposes (always a bad sign when that's written right on the PCB ;-) So when the shields are stacked together on the Mega, there is contention for pin 4.

I need to get one of these shields to use something else than pin 4. As I already mentioned, experimenting with other CS pins for the SD card reader doesn't seem to work. I can change the logical pin in the software, but unless it pin 4 the HW won't initialize.

The Conceptinetics library I'm using for the DMX shield allows you to select any one of the four UARTS on the Mega board, but they all seem to use pin 4 for TX-io. Here is a dump:

UART USE_DMX_SERIAL_3 DMX_UDR = 0 DMX_UBRRH = 0 DMX_UBRRL = 3 DMX_UCSRA = 32 DMX_UCSRB = 72 DMX_TXEN = 3 DMX_TXCIE = 6 DMX_RXEN = 4 DMX_RXCIE = 7 DMX_FE = 4 RX_PIN = 14 TX_PIN = 15

UART USE_DMX_SERIAL_2 DMX_UDR = 0 DMX_UBRRH = 0 DMX_UBRRL = 3 DMX_UCSRA = 32 DMX_UCSRB = 72 DMX_TXEN = 3 DMX_TXCIE = 6 DMX_RXEN = 4 DMX_RXCIE = 7 DMX_FE = 4 RX_PIN = 17 TX_PIN = 16

UART USE_DMX_SERIAL_1 DMX_UDR = 0 DMX_UBRRH = 0 DMX_UBRRL = 3 DMX_UCSRA = 32 DMX_UCSRB = 72 DMX_TXEN = 3 DMX_TXCIE = 6 DMX_RXEN = 4 DMX_RXCIE = 7 DMX_FE = 4 RX_PIN = 19 TX_PIN = 18

Question: does anyone know how to successfully move either one of these shields off pin 4? Thanks in advance for your help.

You might consider not connecting pin 4 to the shields but routing them through some external logic where another pin can select either shield, the software will need some changes to first select the appropriate device before processing its data. This response is to help you get started in solving your problem, not solve it for you. Good Luck & Have Fun! Gil