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.

Reply via email to