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