// baud scan keuwl.com/electronics/rduino/bluet/09-baud-rate/
long baud_rates[] = {1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200};
int baud_index = 3;
boolean found_baud = false; //Flag to indicate if baud rate has been detected
//Function to loop through the baud rates until a response is obtained
void find_baud_rate() {
found_baud = false;
baud_index = -1;
while (!found_baud && baud_index < 8) {
baud_index++;
Serial1.begin(baud_rates[baud_index]); //Initialise software serial
Serial1.flush();
Serial.println("Testing " + String(baud_rates[baud_index]) + " Baud ...");
delay(100);
Serial1.print("ATATAT");
delay(1500);
while (Serial1.available()) {
char c = Serial1.read();
if (c == 'O' || c == 'K') {
found_baud = true;
Serial.print("recvd "); Serial.println(c);
}
}
if (!found_baud) {
Serial1.flush();
Serial1.end();
delay(200);
}
}
if (!found_baud) Serial1.begin(9600); //If not found, try at 9600 anyway
}
void setup() {
Serial.begin(9600);
while (!Serial);
find_baud_rate();
}
void loop() {
// put your main code here, to run repeatedly:
}