I am currently working on an Arduino project, which must be able to listen to the data going through CAN bus and display it on the Touchscreen LCD Newhaven Display 4.3CTP-SHIELD-N.

Problem is that Sparkfun CAN shield and the LCD shield share the same chip select (CS/SS) pin 10. I've tried changing the chip select of the CAN shield by changing values in library headers, but it did not work and now I think that I should pull pin 10 low, when executing CAN code, then pull it up for the CAN shield. Afterwards, do the same for the LCD shield, but I do not know how to write the code for that. Is this the right way to think about the problem or am I missing something?

At this point, I am very confused because some people say that, if two shields have same chip select pin, it's impossible to stack them. Others claim that they succeeded in stacking two shields like that.

What other methods are there for stacking two shields with the same chip select pin?

I am using this CAN library: https://github.com/sandeepmistry/arduino-CAN/blob/master/API.md

This LCD library: https://github.com/NewhavenDisplay/FTDI_FT801

1 Answer 1


You will have to use a different chip select pin for one of the shields. You should do it to the display shield since that goes on top.

  • Change the code to use a different chip select pin for the display shield
  • Break or cut off pin 10 from the display shield, and solder a wire from where pin 10 was to your newly chosen chip select pin.
  • Would it still work, if I didn't cut/break the pin 10 of the display, but connected it to another pin via a male-to-female jumper cable?
    – Henrikas
    Aug 9, 2018 at 8:02
  • Sure, but it could be awkward. Just keep it away from the other shield's pin 10.
    – Majenko
    Aug 9, 2018 at 8:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.