HI,
So there seems to be errors when my micro is reading data in from the serial line. Ive confirmed that the input voltage levels are good, and the slew rate is plenty fast, so perhaps there's a timing issue.
Heres the micro's recording of the aerocomm transceivers version number, as read over the serial line. This was recorded on two seperate occasions. (in hex):
A1A2A9A7A1A7A6A690526ACAD930F45E5C9D5CDD0E8406460606C1AFF56A093969A969886A0C8FF
A0A2A9A7A1A7A6A690526ACAC930F65E5C9E5CDD1E8406460606C1AACFF20B39E9C979886A0C8FF
I highlighted two of the errors, but there are more in there.
Is this to be expected? Checking with the scope, I see very little noise on the line so pretty much 0 probability of type 1 or 2 error. Again, timing issue?
Here is the important code :
uint8_t tx = 2;
uint8_t rx = 3;
uint8_t currentCmd;
int count;
uint8_t temp[200];
char theData[100];
char* names[29] = {"PRODUCT ID", "STOP BIT DELAY", "CHANNEL NUMBER", "BAUD RATE LOW", "BAUD H", "CTRL 0", "TRANSMIT RETRIES", "BX ATTEMPTS", "STALE COUNT RELOAD", "CTRL 1", "INTERFACE TIMEOUT", "RF PACKET SIZE", "CTS ON", "CTS OFF", "MAX PWR", "PARITY", "DEST ID", "SYS ID", "RS-485", "MAC", "ORIG MAX PWR", "PROD ID", "API CTRL", "PROTOCOL STATUS", "SESSION COUNT REFRESH", "RANDOM BACKOFF", "SENSE ADJUST", "PROBE REPORT", "DES KEY"};
uint8_t addresses[29] = {0x00, 0x3F, 0x40, 0x42, 0x43, 0x45, 0x4C, 0x4D, 0x4F, 0x56, 0x58, 0x5B, 0x5C, 0x5D, 0x63, 0x6F, 0x70, 0x76, 0x7F, 0x80, 0x8E, 0x90, 0xC1, 0xC2, 0XC4, 0XC3, 0XC8, 0XC9, 0XD0};
int addressLengths[29] = {40,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,6,1,0x0F,1,1,1,1,1,1,7};
uint8_t readEeprom[4] = {0xCC, 0xC0, 0, 0}; // {XX, XX, address, length
uint8_t writeEeprom[4] = {0xCC, 0xC1, 0, 0}; // {XX, XX, address, length
SoftwareSerial nss (rx,tx);
//----------// Main //----------//
void setup() {
nss.begin(9600);
Serial.begin(9600);
count = 0;
}
void loop() {
for (int n=0; n<29; n++){
Serial.print(names[n]);
Serial.print(" ");
readEeprom[2] = addresses[n];
readEeprom[3] = addressLengths[n];
for (int i=0; i<4; i++) {
nss.print(readEeprom[i]);
}
while(digitalRead(rx));
for (int i=0; i<addressLengths[n]+3; i++){
temp[i] = nss.read();
}
delay(100);
Serial.print(" ");
for (int i=0; i<addressLengths[n]; i++){
Serial.print(temp[i+3], HEX);
}
Serial.println("");
if (n==28) {while(1);};
}
}
If anybody could indicate to me what the source of the problem is and how to approach the solution, it would be greatly appreciated.
Regards, 
Rich