Rogue Robotics uMP3 not talking to Arduino

Hi all,

This message is for anyone who has experience interfacing with the Rogue Robotics uMP3 (rMP3 probably applies as well)...

So, I've got an Arduino Duemilanove, and I've been trying to two days to get it to talk to one of these devices, and no matter what I try, it just fails entirely to communicate.

Without going through all of what I've tried to do, I'll stick with the bare basics: trying to get it to work with the "passthrough" sketch on Rogue's site (see below).

I've got this sketch pretty much unchanged, I have the latest version of the IDE and NewSoftSerial library, etc (for mac osx). I have my Macbook Pro connected to the board, and the uMP3 is connected to the correct pins on the Arduino board, plus power and etc.

When I upload the software and open the serial monitor to type commends, I get absolutely nothing. No prompt, no nothing.

I've tried all kinds of other sketches, pins, libraries, etc - and nothing seems to help. I know that the uMP3 is on - as it's busy indicator lights up briefly when powered up. If I insert a card, the busy indicator stays on for a LONG time when I boot it up and eventually goes off.

Other than that, silence - deadly silence.

Anybody have a clue here? I would especially appreciate any Rogue Robotics folks who might be lurking, as I can't find any real information on their support site to help me troubleshoot this...

/**************************************************

  • Simple pass-through serial application for
  • Arduino and Arduino-clones.
  • You can use this for testing and
  • updating the Rogue Robotics
  • uMMC Serial Data Module or
  • uMP3 Playback Module.
  • You will need the "NewSoftSerial" library
  • available at the Arduino website.
  • http://arduino.cc/
  • http://arduino.cc/en/Reference/Libraries
    ***************************************************/

#include <NewSoftSerial.h>

// You can set this to whatever pins you have the uMMC or uMP3 connected.
// e.g. 4 is connected to uMMC "T", 5 is connected to uMMC "R"
NewSoftSerial out(4, 5);

// If you are using this to update the firmware on the uMMC or uMP3,
// you will have to make sure that both the Serial connection and the
// out connection are set to 9600 bps.
void setup()
{
out.begin(9600);
Serial.begin(9600);
pinMode(13, OUTPUT);
digitalWrite(13, 0);
}

void loop()
{
digitalWrite(13, 0);
if(out.available())
{
digitalWrite(13, 1);
Serial.print((uint8_t)out.read());
}
if(Serial.available())
{
digitalWrite(13, 1);
out.print((uint8_t)Serial.read());
}
}

I will nudge brett this way if I see him on the IRC or otherwise.

Mowcius

zzzz... Wha? oh thanks Mowcius! [smiley=tongue.gif]

Scott - Can you try a few things for me?


First a question to all who may be listening.

I don't have a Mac, so maybe someone can help me out here: what does everyone else use as a serial port terminal? The current (0018) Arduino IDE Serial Monitor window doesn't allow you to send carriage returns nor line feeds.

In any case, I dug around and here are some freeware serial terminal apps for Mac to try:

CoolTerm
goSerial
ZTerm

I don't have any experience with those apps, so if someone can shed some light on them, I'd really appreciate it.


So, Scott - the problem is thus: the Serial Monitor window (in the Arduino software) doesn't send carriage returns (like when you press enter/return). You'll need to use one of the above mentioned apps to be able to do that.

Can you try one/all of them and see what works for you? goSerial looks like a good bet.

Press enter/return a few times in the serial terminal to get the prompt, then you can start sending commands (followed by enter/return). If you get a lot of "E04" errors, then you need to make sure that the serial terminal app only sends carriage returns (i.e. /0x0d/13 hex) when you press enter/return.

b

Brett -

Hey - I hope I have your ear for a bit here. This is great - I had no idea that the arduino ide didn't send CR/LF - that solves alot of other problems for me, actually.

So, I have CoolTerm, and that works great. I now can send commands and receive data, so I'm satisfied that the connection side of things is working well.

However, the next problem is that I can't get the device to deal with any of my SD cards with data on them. I have one that has a bunch of WAV files, and another that has just ONE mp3 on it. When I insert either of these cards, the uMP3's busy light comes on for a LONG time (usually until I give up and eject the card), and won't respond to any commands. I'm assuming it's scanning the card or something, but it shouldn't take more than a few seconds, at least, according to the documentation.

Sometimes, eventually it generates an error code E09 (no card inserted), but still won't respond to commands until I remove the card.

The cards are 4 gig SDHC high-speed cards. I've tried four different cards - all formatted as FAT32, and all with mp3s or wavs on the root level. Two of the cards are SDHC 4 cards, and one is an SDHC 2 card. I have no problem with these cards in any other devices.

Any ideas?

Oh - one other thing: when I type V, I usually just get this jibberish:

..)I...J.j..jz*...

Although it did send expected data once:

110.12 SN:UMP1-OEM

But only once. Every other time I've typed V I get the jibberish line.

I've tried to install the firmware update, but the java app for MaxOSX will not run on my machine. It just says "The Java app could not be launched".

BTW, sorry if this sounds like stuff for RR tech support questions - I have been unable to figure out how to actually talk to a tech over there which is why I'm posting questions here. I really appreciate the input...

Gosh - sorry for all the updates: no more jibberish once I stopped sending LFs with the CRs. V always works fine now.

Also - this thing works like a charm with an old 512 plain vanilla SD card, but won't deal with the newer 4 gig SDHD cards, so it seems...

Maybe the firmware update will fix this? As I said, though, the java updater won't work on my machine...

Hey Scott,

uMP3 firmware versions prior to 111.00 used to check the integrity of the SD card each and every time the card was initialized. This is what causes the delay. If you update to the latest firmware (111.00+), this check is removed. Also, SDHC is supported in 111.00+.

You'll need to get the Java updater working on your system. Unfortunately, I have no way of testing on a Mac, so it would be great if you could help.

I see you on Skype now, so, if you like, we can continue there.

b

Brett - I see you on skype, but you are not answering - maybe there is a connection issue?

Anyway, I'll post follow up questions here for now:

1.) Yeah, I don't know what to say about the java updater, it just doesn't run. I try to launch it and it says "The Java JAR file RogueUpdater.jar could not be launched". The console gives the following:

Jun 10 10:43:27 iaspis [0x0-0xb00b0].com.apple.JarLauncher[1809]: Exception in thread "main"
Jun 10 10:43:27 iaspis [0x0-0xb00b0].com.apple.JarLauncher[1809]: java.lang.NoClassDefFoundError: javax/swing/filechooser/FileNameExtensionFilter

So, some class definition prob. I'm running 10.5.8, BTW, and my java is up-to-date.

2.) I am also having trouble playing back wav files. It sees them and attempts to play them, but either they end up silent, or they play at some weird sample rate or something. They are all standard .wav 44.1 16 bit files. mp3s work fine.

3.) I also have some questions about the audio output level. I'm wondering if I can get some technical specs on the mini-TRS out vs the header out - are they the same? Is seems a bit low-level and noisy (I've upped the internal volume control via ST V 0).

So many other questions - but I'll hope I can ask them via skype chat or something - it will be easier.

I love this unit, BTW. I have two - and once I get it figured out I'll probably buy some more... But there are definitely some holes in the documentation at the moment...

I just read about the FileNameExtensionFilter problem - the class is only available in 1.6.x.

Apparently on Mac OSX, even if you've updated to the latest version of java, "java -version" reports that you're still running 1.5.0. I think it has to do with ordering of the java runtimes.

Here's a site that talks about bringing 1.6.0 to the top:

http://www.macfanatic.net/blog/2009/03/09/enable-java-se-6-on-64-bit-leopard/

Try it out... let me know and I'll update the docs.

RE: WAV/PCM playback - PCM file playback is seriously bandwidth intensive (44.1kHz/16 bit/stereo = 176 kBytes/s or 1.4 Mbits/s). Although we've done our best to churn data from the SD card, the best we can do on the uMP3 is 22050 Hz 16 bit mono PCM data. If you compress the PCM data in IMA ADPCM (4:1 compression), you can get 44100 Hz, 16 bit stereo. But I'd recommend using MP3 compression anyway.

The connections to TRS 1/8" jack and the header (JP3) are identical.

The audio output is 1 V p/p, 16 Ohms minimum load - standard line level output. How are you amplifying the output?

b

Yeah, this works and the Java app now launches... However, the serial port menu will not populate with any serial port devices. This is handled differently on macs - has anyone actually tested this on a mac?

Anyway, I think once this serial port fix is added the app will work, but at the moment I can't select any serial ports, thus no way to install the update.

RE: WAV - OK I can deal with that.

RE audio out: that's fine - I'm amplifying the signal with a Charlize T-amp, so given enough current it should work out ok.