There was a similar thread but because it is over a year old, I decided to start a new one.
http://forum.arduino.cc/index.php/topic,176708.0.html
For my project I want to record data via SoftwareSerial (4800 baud, only receiving, no TX) and store the data on a Flash Card.
However, on the Arduino Uno the SD Card /SPI library needs pins 10, 11, 12, and 13.
Regarding SoftwareSerial many sites say that only these pins can be used because of some change interrupt implementation while a few sites say any digital pin can be used for SoftwareSerial.
Basically I would only need one pin for RX, so that could be pin 10 if it were not necessary for the SPI library - even if a different pin is used as ChipSelect pin. Is this information correct?
So what is true? Can I use some other pin for receiving data via SoftwareSerial or is there a workaround?
You can't use 10 for receiving - that needs to be an output for the '328P to be SPI master; if it is an input and goes low the device goes into SPI slave mode.
You can use other pins. If I recall the limit was that the pin needed PCINT, and all Uno pins support PCINT.
Not all pins on a ATmega2560 support PCINT, so there are limitations with the Mega and perhaps 32U4 based cards.
So even if I use a different pin for ChipSelect (eg 4 like in many examples regarding the SD slot on the ethernet shield), pin 10 must still be selected as Output for SPI to work. And because of that is not available for SoftwareSerial.
After reading a bit further it seems to me that before a "NewSoftwareSerial" library replaced the previous "SoftwareSerial" only pins 10-13 were available for SoftwareSerial. After the replacement all pins could be used.
First part yes. Not available as an Rx pin. Could still be used for Tx.
Second part, perhaps. I have not used software serial in either case.