I tested both 5.04 and 5.05 in accessory mode yesterday and everything works OK on my setup. Is this possibly a power supply problem, either having a poor supply or having the trim-pot on the IOIO not fully clockwise? I can imagine how transients on the power line might cause protocol corruption.
And no, I don't currently have a debug build available. It's a good idea! On Sun, Aug 30, 2015 at 5:38 AM, Iovine Francesco <[email protected] > wrote: > I downloaded library 5.4, tested it in my android code but the problems > continued. > I installed the precompiled HalloIOIO.apk app version 5.4 but nothing > changed. > > I tried one more thing: removed all the accessory aware apps and tried to > power off/power on the IOIO: the protocol works perfectly and *always* I > get the popup from Android showing the " > https://github.com/ytai/ioio/wiki/ADK" url so at least the accessory > handshake works correctly, although the problems I documented are later on > the protocol sequence. > > Quick question: is there a firmware version in DEBUG_MODE available? It > would be useful, otherwise I have to set all the PIC compilation > environment up. Following the sequence of debugging messages on a serial > line would be very useful. > > Thanks in advance. > > > Il giorno sabato 29 agosto 2015 18:56:36 UTC+2, Iovine Francesco ha > scritto: >> >> 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]> >>> 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]. >>>> 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. >>>> >>> -- > 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. > -- 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.
