I am in the process of assembling my zumo robot and have the shield with motors, arduino uno etc. working. For remote control, I have added a nRF24 2.4GHz wireless module, which is using SPI interface, e.g. lines MOSI, MISO and SCK plus 2 additional lines for chip enable and select. For the latter two, I am free to choose any digital port (I am using the maniacbug RF24 library), however, if I understand the matter correctly, the former fixedly requires ports 11, 12 and 13 on the Arduino Uno. This setup is working quite well, motor control, remote control, everything is working fine.
Now, only when adding the zumo reflectance sensor array (Pololu #1419), I noticed that it is using port 11 as well, hardwired.
I am now wondering if anyone else has come across a similiar port conflict and how it could be resolved. I have used the search function but found nothing.
Function-wise, I would not strictly require the wireless module and sensor array to be operating at the same time. My zumo firmware supports different modes for remote control or autonomous zumo, respectively. However, I would like to be able to switch between the modes via the remote control, which puts electrically changing the connections for the different modes somewhat outside the functional scope.
well, after thouroughly reading the Zumo shield user guide, particularly the end of section 2c, I have just found out that it is indeed possible to disable individual sensors of the array (by cutting prepared traces) and even to remap the sensors to other ports (by soldering a wire to a free port)…
I have now remapped sensor 3 from D11 to D2 (not using the LEDON feature anyway), which was quite easy by first cutting the trace, then soldering a wire from the left hole of the cut trace to the outermost male header for LEDON (which is connected to D2). (easier than soldering a wire to a pad on the 24 port matrix on the component side).
I am actually quite impressed that the designer of the reflectance array has thought of this and provided the cutable traces and the remap option. thank you very much indeed!
I am glad you were able to figure it out. Thank you for the kind words about the reflectance board.
I would like to do this exact thing, but I am not comfortable with breaking traces. My soldering skills are just ok. Is there any other way of using the Zumo shield, sensor array, and SPI pins together?
There is a table on the Arduino SPI page that shows the pins used for SPI by different Arduino models. You might check that against our pinout table for the Zumo shield and the schematic for the reflectance sensor array (if you plan on using that) to see if you can make something work.
If there is a pin conflict with a peripheral you want to use, the options really are to cut traces or leave out the appropriate header pins when you’re soldering the headers onto the board and find another way to route the wiring. The “Disabling or remapping sensors” section of the user’s guide shows where the traces on the reflectance sensor array can be cut.