I will ASAP. Thanks a lot.
Il giorno sabato 29 agosto 2015 18:36:06 UTC+2, Ytai ha scritto: > > Can you check if this is happening to you when using v5.04 software? v5.05 > has not yet been rigorously tested. You can use the precompiled binaries > initially. > On Aug 28, 2015 12:40 AM, "Iovine Francesco" <[email protected] > <javascript:>> wrote: > >> Hi Ytai, >> wonderful environment that of IOIO. Congrats! >> >> For my purposes I bought two boards from sparkfun and this is the >> configuration I use. >> >> IOIOLib: IOIO0505 >> Application firmware: IOIO0500 >> Bootloader firmware: IOIO0401 >> Hardware: SPRK0020 >> >> I have already written an app interfacing to a board developed by me >> using an USB->serial converter (FDDI chip) that needs OTG. >> As I need to power my tablet from USB, I decided to use IOIO like a >> USB->UART interface to my board that additionally powers the tablet in HOST >> mode. >> >> As an introductory exercise, I developed a simple app called TerminalIOIO >> ( https://github.com/fjovine/TerminalIOIO ) that works fine, at least >> during the normal >> compile, install cycle. I was using the Blutooth and, as I wanted to >> study your code, I compiled the IOIO classes directly in my AndroidStudio >> project. >> >> Then I started integrating your code in my App and it worked fine in the >> normal AndroidStudio compile, install cycle and direct USB connection. >> >> But when I try to use it directly on the tablet (no compilation before) I >> have the following problem. I switch the power on: this powers both my >> board and IOIO. >> The tablet notifies the presence of an accessory USB and launches my app >> that sometimes is able to configure the IOIO and successfully performs the >> handshake with my board but very frequently it hangs. >> I used a different type of tablet having the same problems. >> Then I used my smart phone (alcatel onetouch) and again sometimes the >> handshake works, sometimes not. >> >> I thought that I had some compilation problems, so I downloaded the >> pre-compiled HelloIOIO-debug-unaligned.apk from App-IOIO0505.zip and I >> launched it in all the possible configurations (two tablets and phone), >> experimenting always the same random behavior: >> I always get the notification (AccessoryUSB) but very frequently no >> connection happens. >> >> I decided to instrument a bit your code with some logging comments, the >> most significant of which is inside the *run* method in the >> *IOIOProtocol* class. >> Here is the code: *LocalLogger.i* is a static method that doubles >> messages both on Android Logger and queue them up to be shown through http >> (I have a small http server running for remote manipulations) >> The message in Italian means "character received". >> >> ... >> @Override >> public void run() { >> super.run(); >> setPriority(MAX_PRIORITY); >> int arg1; >> int arg2; >> int numPins; >> int size; >> byte[] data = new byte[256]; >> try { >> while (true) { >> arg1 = readByte(); >> LocalLogger.i(TAG, "Ricevuto carattere "+Integer. >> toHexString(arg1)); //<----------------------------- >> switch (arg1) { >> case ESTABLISH_CONNECTION: >> if (readByte() != 'I' || readByte() != 'O' || readByte() != 'I' >> || readByte() != 'O') { >> throw new IOException("Bad establish connection magic"); >> } >> byte[] hardwareId = new byte[8]; >> byte[] bootloaderId = new byte[8]; >> byte[] firmwareId = new byte[8]; >> readBytes(8, hardwareId); >> readBytes(8, bootloaderId); >> readBytes(8, firmwareId); >> ... >> >> Attached you will find two logs (in OpenOffice spreasheet format) that >> show what happens. >> Focusing the bytes received from IOIO, this is the sequence I have when >> the connection works >> >> >> 1. 0x0 - ESTABLISH_CONNECTION >> 2. 0x2 - CHECK_INTERFACE >> 3. 0xD - UART_CONFIG >> 4. 0xF - PIN_UART >> >> >> And this makes perfectly sense with what I need. >> >> This is the sequence when the connection is not established >> >> >> 1. 0x0 - ESTABLISH_CONNECTION >> 2. 0x1 - SOFT_RESET >> 3. 0x0 - ESTABLISH_CONNECTION >> 4. 0x1 - SOFT_RESET >> >> >> Sometimes something different happens >> >> - 0x1 - SOFT_RESET >> - 0x0 - HARD_RESET >> - 0x1 - SOFT_RESET >> - 0x1 - SOFT_RESET >> - 0x1 - SOFT_RESET >> >> >> Whenever ESTABLISH_CONNECTION is received, the firmware versions from >> IOIO are correctly decoded. >> But the reception of the SOFT_RESET keeps the connection hanged. >> >> If the first received command is SOFT_RESET, I see the exception >> >> Protocol error: >> [ioio.lib.impl.IOIOProtocol$ProtocolError: java.lang.NullPointerException >> at ioio.lib.impl.IOIOProtocol$IncomingThread.run(IOIOProtocol.java:944) >> Caused by: java.lang.NullPointerException >> at ioio.lib.impl.IncomingState.handleSoftReset(IncomingState.java:243) >> at ioio.lib.impl.IOIOProtocol$IncomingThread.run(IOIOProtocol.java:733) ] >> >> that I have found in other messages on this forum: this depends on the >> fact that when 0x1 (soft_reset) is received the protocol tries to access >> some objects that have still not been instantiated. >> >> I made at least a whole week of experimentation with different >> conditions, using both the IOIO boards I own, but the result is more or >> less this one: when I cannot connect the SOFT_RESET is there. >> >> As additional info, I have *never* had this problem after switching off >> the ADB USB interface, as needed while developing (Android Studio connected) >> >> So I am blocked. Can you please help me? >> Thanks in advance. >> >> >> Additional info >> >> Tablet 1: Low cost tablet running Android 4.2.2 >> Tablet 2: Low cost tablet running Android 4.4.2 >> Phone: Alcatel One touch running Android 4.1.1 >> >> -- >> You received this message because you are subscribed to the Google Groups >> "ioio-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at http://groups.google.com/group/ioio-users. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "ioio-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/ioio-users. For more options, visit https://groups.google.com/d/optout.
