Please check my blog post about this issue exactly: https://www.2bitornot2bit.com/home/how-to-use-multiple-spi-devices-with-arduino the main idea is that the different SPI component to not respect the chip select and interfere with each other on the SPI bus. The way a solved it was to toggle between the different components using an array of switches- transistors in a way that in any given time only one component is connected to my arduino (or any other master) through the SPI. How to use multiple SPI devices with arduino Updated: 7 hours ago While building my SmartHomeDIY project I encounter a problem trying to use multiple SPI devices connected to the same Arduino. Although SPI bus should support multiple devices on the same time (toggling the Chip-Select line), this does not always work (mostly due the part using the bus not respecting the chip select or other configuration issues). So After reading for some time and experimenting I came up with the following solution. The above station is an IR recorder and Transmitter station. It can be set into recording state which then saved the recorded IR-in data into and SDCard connected over SPI. But when not in recording mode it will listen over the RF24 (also connected via SPI) for commands. Once a command is given it will try to send the IR code request (for example turn TV on) To do that it will again have to move to SDCard mode and read the previously recorded data and retransmit it over the IR out led. So to solve this I have connected the SPI lines to couple of transistors/switches, The just CUT the lines of the part not being used at the moment and there for prevent the SPI lines collision. Attached is the code and hardware layout to do just that Note that it does not matter which type of project you have. You can always do the same transistor-switch trick to cut of the problematic SPI lines while using the others. A special note for the transistor configurations, I will not work if you pass as usually suggest, which means to set a logic level by design at the output of the transistor so that the base will toggle the out voltage (same as an amplifier). Instead I set the signal to go trough the transistor, which needed so testing to select the transistor which does not effect the actual signal (it will depend on the transistor type, spec and configuration...) So it took my some time to figure out the right transistor values and configuration. To trail and error I used this logic analyzer 8 logic lines or better yet one of these pro logic analyzers or one from ebay and there is also a very cool one which has 8 digital channels and one analog - perfect for beginners I inspected the incoming signal and the outgoing signal to make sure the transistor do not temper with the incoming signal - so everything will continue to work as expected (the transistor are transparent to the actual data) You could also trail and error using this Hantek 6022BE PC USB Digital Oscilloscope which is working perfectly on my window 10 environment. You could also get one on ebay You could also use these logic multiplexer [8 Channel Logic Level Converter Convert TTL Bi-directional] to do the same job which I have not tested yet. But I think my way is more fun! :)