Last update. I managed to recompile the firmware using MPLAB X and XC16, to 
download it and... everything works perfectly. I guess sparkfun uses some 
weird firmware image.
Anyway my problems seem over: I switch my instrument on, and this powers on 
both my board and the IOIO  together, and the tablet always handshakes 
correctly.

Thanks for your help
Cheers.

Il giorno domenica 30 agosto 2015 18:28:09 UTC+2, Ytai ha scritto:
>
> 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] 
> <javascript:>> 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] <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.

Reply via email to