Could anyone make EasyVR work with Arduino Leonardo?

Hi!

I have a Leonardo and an EasyVR Shield (manual here). The default RX/TX pins for this shield are 12/13. I made a pretty complex room automation sketch to work with it, but, since I needed to be switching jumpers on the shield to upload voice commands to it, I did all the code on a Seeeduino R3. It all worked fine there. When I switched to the Leonardo and uploaded my code to it, nothing happened. Then I've found that my mistake when trying to watch the serial monitor was to forget to place this line:

while(!Serial);

By doing this I got the "EasyVR not detected!" serial feedback...

Changing the approach to connect Leonardo with the shield I did this:

Trying to upload the code with the shield detached and with the pins 12 and 13 of the shield jump wired to the arduino pins 8 and 9 (using them as RX/TX) and changing both references for them on the sketch. I also jump wired the GND, 5V and Reset to the shield's equivalents. I've got it uploaded, but always with these warnings:

Binary sketch size: 22.118 bytes (of a 28.672 byte maximum)

processing.app.SerialException: Serial port '/dev/tty.usbmodemfd541' already in use. Try quitting any programs that may be using it.
	at processing.app.Serial.touchPort(Serial.java:119)
	at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:201)
	at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:67)
	at processing.app.Sketch.upload(Sketch.java:1671)
	at processing.app.Sketch.exportApplet(Sketch.java:1627)
	at processing.app.Sketch.exportApplet(Sketch.java:1599)
	at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380)
	at java.lang.Thread.run(Thread.java:680)

The sketch works, but buggy and sometimes it crashes. Can it be fixed?

Does anyone knows why it didn't work with pins 12 and 13?

Thank you!

Separation of USB and serial communication.
On the Leonardo, the main Serial class refers to the virtual serial driver on the Leonardo for connection to your computer over USB. It's not connected to the physical pins 0 and 1 as it is on the Uno and earlier boards. To use the hardware serial port (pins 0 and 1, RX and TX), use Serial1. (See the Serial reference pages for more information.)

try to connect it to 0 and 1 and something like

While(Serial.available())
{
Serial1.write(Serial.read());
}

I have same issue (EasyVR+Leonardo), tonight I'll try to test
I'll let here know about results.

Hope it helps :slight_smile: