* MP3 Shield * - Rogue Robotics rMP3

Try this sketch, and tell me what you see in the Serial Monitor:

// Autobaud detect for rMP3/uMP3/uMMC
// Copyright 2011 Brett Hagman
// Rogue Robotics
// http://www.roguerobotics.com/

#include <SoftwareSerial.h>

SoftwareSerial rmp3_serial(6, 7);


int16_t read_timeout(uint32_t timeout)
{
  uint32_t start = millis();

  while ((millis() - start) < timeout)
  {
    if (rmp3_serial.available())
      return (uint8_t) rmp3_serial.read();
  }

  return -1;
}


boolean testbps(uint32_t bps)
{
  rmp3_serial.begin(bps);
  rmp3_serial.write(0x1b);  // send ESC
  if (read_timeout(100) == '>')
    return true;
  else
    return false;
}


void setup(void)
{
  uint32_t bps[] = { 2400, 4800, 9600, 19200, 38400, 57600, 115200 };
  uint8_t i;

  Serial.begin(9600);

  Serial.println("Started");

  for (i = 0; i < sizeof(bps)/sizeof(uint32_t); i++)
  {
    Serial.print("Trying: ");
    Serial.print(bps[i], DEC);
    if (testbps(bps[i]))
    {
      Serial.println(" YES!");
      break;
    }
    else
    {
      Serial.println(" No");
    }
  }

  // now set new bps
  
  // rmp3_serial.print("ST D 4\r");
}

void loop(void)
{
}

b