Android cannot talk to Arduino using AVRDUDE

2019-02-15 07:13发布

I am using AVRDUDE for Android (http://code.google.com/p/andavr/). I can compile the C code. I can run

$ avr-gcc -Os -DF_CPU=16000000UL -mmcu=atmega328p -c -o led.o led.c
$ avr-gcc -mmcu=atmega328p led.o -o led
$ avr-objcopy -O ihex -R .eeprom led led.hex

all without issues. Then I try to run:

avrdude -F -V -c arduino -p ATMEGA328P -P /dev/bus/usb/002/002  -b 115200 -C /data/data/jackpal.androidterm/local/etc/avrdude.conf -U flash:w:led.hex

The result is:

avrdude: ser_open(): can't open device "/dev/bus/usb/002/002"; Permission denied
loctl("TIOCMGET"): Invalid argument

avrdude done. Thank you.

The situation is similar when I run:

avrdude -F -V -c arduino -p ATMEGA328P -P /dev/bus/usb/002/001  -b 115200 -C /data/data/jackpal.androidterm/local/etc/avrdude.conf -U flash:w:led.hex

I can confirm that /dev/bus/usb/002/002 is the Arduino device connected with the OTG cable. Before connecting, I run

ls -l /dev/bus/usb/002/

and I get:

total 0

After I connect the Arduino via USB to my tablet I run the command:

ls -l /dev/bus/usb/002

and I get

crw-rw----   1 0   1018  180,128 Mar 24 07:53 001
crw-rw----   1 0   1018  180,129 Mar 24 07:53 002

This clearly shows me that the Arduino is connected. I would love to know if anyone can see what I am doing wrong.

PS: I am trying to create an Android application that allows Arduino programming directly from an Android tablet.

2条回答
再贱就再见
2楼-- · 2019-02-15 07:31

I'm not expert. But don't you need a USB shield for communicating with Arduino - Android via cables? Both are slaves (so when Android/Arduino are plugged into the PC, the PC controls it). Try USB Host Shield 2.0 For Arduino.

Again, I could be wrong. I hope this helps.

查看更多
何必那么认真
3楼-- · 2019-02-15 07:37

It says 'permission denied' and you do not seem to be using a root shell. Try 'su' and then the command that failed. If your phone is not rooted, I don't think it could work.

I'm not even sure if it will work right when you are root, so please post the result! My guess is that it won't if your phone does not act as usb host (only some can)

查看更多
登录 后发表回答