Connecting couple of Arduinos Nano together - via SPI or I2C?

Hi All,

The plan is to make Digital Readout (DRO) based on Yuriy TouchDRO app. But the "build yourseft" version available is for iGage calipers/scales. I need to make DRO for linear glass scales - they output quadrature encoder signals - channel A and B.
The problem is that Arduino Uno.Nano is not capable to handle reliably more than one encoder because to read encoders channels reliably you need to use two external interrupts. As Uno/Nano has only two external interrupts (i do not want to use pin change interrupts) i decided to use one Nano per one encoder (hey, it's only 2 dollars...). If i want to connect 4 encoders then 4 Nanos will be reading those encoders.
Each one will be handling small part of the job: reading encoder, translating it to position and report it to "Main Nano".
Now: Main Nano is going to ask each Encoder Nano its position in the loop at set frequency. Just like the original Yuryi's soft is asking the iGages for their positions.
At this approach the next Nano can handle Tacho with direction - which basically is another encoder... , making averaging, etc and report RPM to the Main Nano.
Even if i want to combine the reading from two encoders on the same axis (think about one Z axis encoder on milling machine's knee and the second one on the machine's quill) i can easily add another Nano that reads the quill and report to Main Nano and Main Nano calculates the relative distance based on the two readings.

Same with rotary table. The system should be quite easily expandable. TouchDRO application is free and can handle 4 channels, tacho and touch probe.
The touch probe will be handled by one of the Main Nano external interrupt pins to report touch probe event to the TouchDRO app as fast as possible.

So the question is:
is it better to use SPI or I2C for communication between Nanos?
I was thinking about SPI as it is very fast, all nanos will share the same lines: MOSI, MISO and CLK and then Main Nano will be asking the particular Nano by selecting it's own SPI CS line.

What you think about that?

I know there is ready to buy kit from the DROstore based on MS430 microcontroller but for me USD 120 plus USD30 for shipping is way to expensive:(

Even i use 7 nanos (Main Nano, X Nano, Y Nano, two Z Nanos for combined readings (knee and quill), Tacho Nano and Rotary Table Nano) and BT module it is still VERY cheap (USD 23??) and it's capability will be greater than the mentioned ready-to-buy kit from theDROstore.

Additionally each part of the puzzle will be quite simple in terms of program as it will handle small part of the story.

is it better to use SPI or I2C for communication between Nanos?

Maybe neither of them.

I was thinking about SPI as it is very fast, all nanos will share the same lines: MOSI, MISO and CLK and then Main Nano will be asking the particular Nano by selecting it's own SPI CS line.

What you think about that?

What whould be the total bus length (all signal wires added together, only for one signal, let's say SCLK)? If you get more than 0.5m you should change to another communication method.

Generally: provide as much information as you have. I'm missing the link to the used hardware, a wiring diagram or at least a drawing of the complete system as you currently think about it. A link to the original project you're basing on would also help.