still stuck on getting HelloIOIO going

117 views
Skip to first unread message

Ilan Tal

unread,
Feb 22, 2016, 9:37:54 AM2/22/16
to ioio-users
Rather than changing things in the source code, I added Android 4.4.2 which is at API Level of 19.
Still I can't get it to go.
The IOIOBridge seems to be working

ilan@ilan-Desktop:~/Documents/ioio/ioioBridge$ ./ioiobridge -IOIO0
adb server is out of date.  killing...
* daemon started successfully *
IOIO Emulator Bridge, V1.00
Press Ctrl-C at any point to exit

Connecting to IOIO...

When I start HelloIOIO I see it flash something like Hello IOIO but then it says the program is no longer connected.
In ioio.examples.hello in the Android monitor it is listed as dead.

The last few log messages are

02-22 14:23:59.250 2136-2136/ioio.examples.hello D/IOIOConnectionRegistry: Successfully added bootstrap class: ioio.lib.android.device.DeviceConnectionBootstrap
02-22 14:23:59.250 2136-2136/ioio.examples.hello V/DeviceConnectionBootstrap: onCreate()
02-22 14:23:59.770 2136-2136/ioio.examples.hello V/DeviceConnectionBootstrap: open()
02-22 14:23:59.770 2136-2136/ioio.examples.hello V/DeviceConnectionBootstrap: state <= WAIT_DEVICE_ATTACHED
02-22 14:23:59.770 2136-2136/ioio.examples.hello D/AndroidRuntime: Shutting down VM
02-22 14:23:59.770 2136-2136/ioio.examples.hello E/AndroidRuntime: FATAL EXCEPTION: main
                                                                   Process: ioio.examples.hello, PID: 2136
                                                                   java.lang.RuntimeException: Unable to start activity ComponentInfo{ioio.examples.hello/ioio.examples.hello.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void android.hardware.usb.IUsbManager.getDeviceList(android.os.Bundle)' on a null object reference
                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)

What is this IUsbManager,getDeviceList? Could that be missing from the SDK or from somewhere else? Can anyone give me a hint of how to make some progress? I am really dead in the water.

Thanks,
Ilan

Ytai Ben-Tsvi

unread,
Feb 22, 2016, 7:09:44 PM2/22/16
to ioio-...@googlegroups.com
Great. They keep changing stuff... Try disabling the dependency on IOIOLibAndroidAccessory in your gradle file (just for development time).

--
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 ioio-users+...@googlegroups.com.
To post to this group, send email to ioio-...@googlegroups.com.
Visit this group at https://groups.google.com/group/ioio-users.
For more options, visit https://groups.google.com/d/optout.

Ilan Tal

unread,
Feb 23, 2016, 2:46:29 AM2/23/16
to ioio-users
Thanks Ytai. Maybe you will see something which I fail to see.
I didn't know exactly how to disable the dependency so I found this

http://www.codegur.net/32772252/using-jcenter-with-gradle-in-android-studio

The solution here is to put in a specific call to www.sparetimelabs.com, which I tried. Unfortunately it didn't help.
Then I saw what you probably mean in disabling dependences.

apply plugin: 'com.android.application'

buildscript {
repositories {
mavenCentral()
}

dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
}

android {
buildToolsVersion "22.0.1"
compileSdkVersion 19
}

dependencies {
compile 'com.github.ytai.ioio:IOIOLibAndroid:5.05'
compile 'com.github.ytai.ioio:IOIOLibAndroidBluetooth:5.05'
compile 'com.github.ytai.ioio:IOIOLibAndroidAccessory:5.05'
compile 'com.github.ytai.ioio:IOIOLibAndroidDevice:5.05'
}

repositories {
mavenCentral()
jcenter()
maven {
url 'http://www.sparetimelabs.com/maven2'
}
}

I commented out those compile dependences. That gave me an error in the AndroidManifest

<meta-data
android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="@xml/accessory_filter" />
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />

I started to modify the AndroidManifest but got a message that any changes would be wiped out. However there is something interesting here. The error message complained about a usb problem and here are USB_ACCESSORY_ATTACHED and USB_DEVICE_ATTACHED which means it may be connected to the problem.

Something else which I forgot to mention: my SDK is using Java 8. Could that be a problem?
In any case, I am still stuck and need some help to get out of this mess. I'm sure that once it starts to work I will be OK, but getting it up and running is a real problem.

Thanks,
Ilan


Ytai Ben-Tsvi

unread,
Feb 23, 2016, 3:56:38 AM2/23/16
to ioio-...@googlegroups.com
Comment out the line that says compile 'com.github.ytai.ioio:IOIOLibAndroidAccessory:5.05'
Then, comment out the line <meta-data
    android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
    android:resource="@xml/accessory_filter" /> in the original manifest file (the one found under src/main/AndroidManifest.xml).

Sorry for the pain - the Android folks must have changed something in the emulator and the emulator case is not something that I spend a whole lot of time testing, since very few people use it.

Ytai Ben-Tsvi

unread,
Feb 23, 2016, 3:59:13 AM2/23/16
to ioio-...@googlegroups.com
And re Java 8: you need to use Java 7 for compilation. The Android toolchain doesn't know how to work with Java 8 bytecode. The easiest place to change this is:
right-click project > module settings > SDK location > JDK location > select Java <= 1.7

Ilan Tal

unread,
Feb 24, 2016, 2:03:10 AM2/24/16
to ioio-users
Thanks for the reply Ytai.
First I added oracle jdk 7. Apparently something is different in Linux as the method you suggested simply doesn't exist on my machine. Never mind, I did manage to find where it set the jdk and I changed it from 8 to 7.
I erased the entire applications folder under ioio505 and copied it over again. This promises that I will start from a clean slate. I had to import the project into Android studio, but now that jdk 7 was available, it no longer complained about my SDK. That was an improvement. I again verified that it was using jdk 7 and not 8.

I commented out 'com.github.ytai.ioio:IOIOLibAndroidAccessory:5.05'. I wasn't successful in commenting out

android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
    android:resource="@xml/accessory_filter" />
so I just deleted the lines. That solved the compilation problem. Still, absolutely nothing changed when I ran the program.

Yesterday I visited a friend with a Windows machine. He plugged in my ioio and his machine "worked" on my board, i.e. it didn't crash. The program showed the button, but nothing happened when you pressed the button. It was clear what was happening: no ioioBrdige was in place and it wasn't talking to the ioio board.
That gave me an idea what to check here. I would run HelloIOIO without the ioioBridge and see if it wouldn't crash. It crashed in exactly the same way. Both my machine and the Windows machine were using emulators, so the problem doesn't seem to be the emulator. It probably has something to do with Linux, perhaps the driver which I installed. I don't have any Windows machines here. I threw out Windows 10 years ago.

I think it is somehow trying to tell us that the problem is before we actually connect to the board, i.e. I get the same error whether or not I use ioioBridge.
Let's look at the error message again.

02-24 06:31:03.460 8183-8183/ioio.examples.hello I/IOIOBaseApplicationHelper: Using IOIOLib version: IOIO0505
02-24 06:31:03.460 8183-8183/ioio.examples.hello D/IOIOConnectionRegistry: Successfully added bootstrap class: ioio.lib.impl.SocketIOIOConnectionBootstrap
02-24 06:31:03.460 8183-8183/ioio.examples.hello D/IOIOConnectionRegistry: Bootstrap class not found: ioio.lib.android.accessory.AccessoryConnectionBootstrap. Not adding.
02-24 06:31:03.460 8183-8183/ioio.examples.hello E/BluetoothAdapter: Bluetooth binder is null
02-24 06:31:03.460 8183-8183/ioio.examples.hello D/IOIOConnectionRegistry: No runtime support for: ioio.lib.android.bluetooth.BluetoothIOIOConnectionBootstrap. Not adding.
02-24 06:31:03.460 8183-8183/ioio.examples.hello D/IOIOConnectionRegistry: Successfully added bootstrap class: ioio.lib.android.device.DeviceConnectionBootstrap
02-24 06:31:03.460 8183-8183/ioio.examples.hello V/DeviceConnectionBootstrap: onCreate()
02-24 06:31:03.770 8183-8183/ioio.examples.hello V/DeviceConnectionBootstrap: open()
02-24 06:31:03.770 8183-8183/ioio.examples.hello V/DeviceConnectionBootstrap: state <= WAIT_DEVICE_ATTACHED
02-24 06:31:03.770 8183-8183/ioio.examples.hello D/AndroidRuntime: Shutting down VM
02-24 06:31:03.770 8183-8183/ioio.examples.hello E/AndroidRuntime: FATAL EXCEPTION: main
                                                                   Process: ioio.examples.hello, PID: 8183

                                                                   java.lang.RuntimeException: Unable to start activity ComponentInfo{ioio.examples.hello/ioio.examples.hello.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void android.hardware.usb.IUsbManager.getDeviceList(android.os.Bundle)' on a null object reference
                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)

There is something wrong with IUsbManager. Where is this object located? How do I know if it is in the SDK, or wherever else it is supposed to be? Is there any way I can check that it exists?

Thanks for the help,
Ilan

Ytai Ben-Tsvi

unread,
Feb 24, 2016, 3:01:47 AM2/24/16
to ioio-...@googlegroups.com

Try giving the IOIOLibAndroidDevice library the same treatment. Maybe that was the one that had the problem. Commenting out XML file uses the
<!-- this is now ignored -->
syntax.

Ilan Tal

unread,
Feb 25, 2016, 5:46:40 AM2/25/16
to ioio-users
Ytai,
Some progress, at last. Commenting out IOIOLibAndroidDevice let the application come up.

After that I started again with a clean slate and verified that the problem still exists. Then I commented out only the IOIOLibAndroidDevice. For some reason I get messages about that any changes in AndroidManifest.xml will be over written, so I just killed the line again.
The application came up again, showing the problem is ONLY in that library.

Now it was time to hook up ioioBridge to actually start to do something. No such luck. Without the library it doesn't work, i.e. it doesn't crash but it doesn't do anything useful. I get the following:

02-25 10:24:20.410 7966-7966/ioio.examples.hello D/IOIOConnectionRegistry: No runtime support for: ioio.lib.android.bluetooth.BluetoothIOIOConnectionBootstrap. Not adding.
02-25 10:24:20.410 7966-7966/ioio.examples.hello D/IOIOConnectionRegistry: Bootstrap class not found: ioio.lib.android.device.DeviceConnectionBootstrap. Not adding.
02-25 10:24:20.660 7966-7982/ioio.examples.hello D/IOIOImpl: Waiting for IOIO connection
02-25 10:24:20.660 7966-7982/ioio.examples.hello V/IOIOImpl: Waiting for underlying connection
02-25 10:24:20.670 7966-7981/ioio.examples.hello D/IOIOImpl: Waiting for IOIO connection
02-25 10:24:20.670 7966-7981/ioio.examples.hello V/IOIOImpl: Waiting for underlying connection
02-25 10:24:20.670 7966-7981/ioio.examples.hello V/SocketIOIOConnection: Creating server socket
02-25 10:24:20.670 7966-7981/ioio.examples.hello V/SocketIOIOConnection: Waiting for TCP connection
02-25 10:24:20.780 7966-7968/ioio.examples.hello W/art: Suspending all threads took: 20ms
02-25 10:24:20.790 7966-7982/ioio.examples.hello E/IOIOBaseApplicationHelper: Unexpected exception caught
                                                                              java.lang.NullPointerException: Attempt to invoke interface method 'android.hardware.usb.UsbAccessory android.hardware.usb.IUsbManager.getCurrentAccessory()' on a null object reference
                                                                                  at android.hardware.usb.UsbManager.getAccessoryList(UsbManager.java:340)
                                                                                  at ioio.lib.android.accessory.Adapter$NewUsbManager.getAccessoryList(Adapter.java:204)

It is always complaining about the usb, which isn't surprising since I'm trying to send command via the usb. Long ago I tried the 507 in place of the 505 and the 507 didn't work either.
In short what needs to be done in order that the board will actually do something?

Thanks,
Ilan

Ytai Ben-Tsvi

unread,
Feb 25, 2016, 2:09:54 PM2/25/16
to ioio-...@googlegroups.com
Are both libraries commented out now (they both should be!)? Re commenting out the XML files, you're getting the warning because you're commenting out the wrong copy of the file. See my previous email about it.

Ytai Ben-Tsvi

unread,
Feb 25, 2016, 2:10:35 PM2/25/16
to ioio-...@googlegroups.com
BTW, I did verify that doing that works for me, so there doesn't seem to be a systematic problem here.

Ilan Tal

unread,
Feb 26, 2016, 7:09:41 AM2/26/16
to ioio-users
Ytai,
I did do the comment on the src/main/AndroidMainifest.xml. Last time it told me that the changes wouldn't be saved. Today it doesn't complain. In any case it makes no difference. Killing the line by commenting it out achieves the same effect as deleting it.
There were always 2 emulators running, one which was disconnected and another one. That always confused me. Finally I found an answer.


ilan@ilan-Desktop:~/Documents/ioio/ioioBridge$ ./ioiobridge -IOIO0
adb server is out of date.  killing...
* daemon started successfully *
IOIO Emulator Bridge, V1.00
Press Ctrl-C at any point to exit

Connecting to IOIO...

The line immediately following the ioiobridge command says adb server is out of date. killing...
That is leaving behind a dead thread.
I confirmed this is the case because I would wait for the emulator to come up and then turn on the ioiobridge. The second I got the command of the adb server being out of date I would have 2 choices of emulators to connect: 1 disconnected and 1 apparently alive. I would always connect to the alive one but I couldn't figure out where the dead one came from.

Since it still doesn't work, i.e. do anything useful, I tried to put in 2 break points

@Override
protected void setup() throws ConnectionLostException {
showVersions(ioio_, "IOIO connected!");
led_ = ioio_.openDigitalOutput(0, true);
enableUi(true);
}

/**
* Called repetitively while the IOIO is connected.
*
* @throws ConnectionLostException
* When IOIO connection is lost.
* @throws InterruptedException
* When the IOIO thread has been interrupted.
*
* @see ioio.lib.util.IOIOLooper#loop()
*/
@Override
public void loop() throws ConnectionLostException, InterruptedException {
led_.write(!button_.isChecked());
Thread.sleep(100);
}


One in the setup() and the second in the loop(). It never hit either one, or at least I never got an indication that it hit a breakpoint.

If you verified that commenting out those 2 compile lines, then it should work. I assume I've got the emulator with the ioiobridge attached but I have
no independent way to verify it. It has stopped giving me the error but it does no useful work. The log looks like

02-26 12:07:03.560 27767-27767/ioio.examples.hello W/System: ClassLoader referenced unknown path: /data/app/ioio.examples.hello-2/lib/x86_64
02-26 12:07:03.930 27767-27767/ioio.examples.hello I/IOIOBaseApplicationHelper: Using IOIOLib version: IOIO0505
02-26 12:07:04.040 27767-27767/ioio.examples.hello D/IOIOConnectionRegistry: Successfully added bootstrap class: ioio.lib.impl.SocketIOIOConnectionBootstrap
02-26 12:07:04.140 27767-27769/ioio.examples.hello W/art: Suspending all threads took: 50ms
02-26 12:07:04.140 27767-27767/ioio.examples.hello D/IOIOConnectionRegistry: Bootstrap class not found: ioio.lib.android.accessory.AccessoryConnectionBootstrap. Not adding.
02-26 12:07:04.140 27767-27767/ioio.examples.hello E/BluetoothAdapter: Bluetooth binder is null
02-26 12:07:04.210 27767-27767/ioio.examples.hello D/IOIOConnectionRegistry: No runtime support for: ioio.lib.android.bluetooth.BluetoothIOIOConnectionBootstrap. Not adding.
02-26 12:07:04.210 27767-27767/ioio.examples.hello D/IOIOConnectionRegistry: Bootstrap class not found: ioio.lib.android.device.DeviceConnectionBootstrap. Not adding.
02-26 12:07:04.270 27757-27757/? E/memtrack: Couldn't load memtrack module (No such file or directory)
02-26 12:07:04.270 27757-27757/? E/android.os.Debug: failed to load memtrack module: -2
02-26 12:07:04.270 27757-27757/? I/Radio-JNI: register_android_hardware_Radio DONE
02-26 12:07:04.480 27767-27769/ioio.examples.hello W/art: Suspending all threads took: 40ms
02-26 12:07:04.510 27767-27797/ioio.examples.hello D/IOIOImpl: Waiting for IOIO connection
02-26 12:07:04.510 27767-27797/ioio.examples.hello V/IOIOImpl: Waiting for underlying connection
02-26 12:07:04.510 27767-27797/ioio.examples.hello V/SocketIOIOConnection: Creating server socket
02-26 12:07:04.510 27767-27797/ioio.examples.hello V/SocketIOIOConnection: Waiting for TCP connection
02-26 12:07:04.540 27757-27757/? D/AndroidRuntime: Calling main entry com.android.commands.wm.Wm
02-26 12:07:04.560 27757-27757/? D/AndroidRuntime: Shutting down VM
02-26 12:07:04.580 27767-27767/ioio.examples.hello D/gralloc_goldfish: Emulator without host-side GPU emulation detected.
02-26 12:07:04.730 1353-1372/system_process I/ActivityManager: Displayed ioio.examples.hello/.MainActivity: +1s530ms

Do you see any hints here?

Thanks,
Ilan


Ytai Ben-Tsvi

unread,
Feb 26, 2016, 12:28:41 PM2/26/16
to ioio-...@googlegroups.com
The IOIOBridge should be able to connect to the IOIO regardless of whether the emulator is on or not. I suspect that that -IOIO0 on the command line as opposed to /dev/IOIO0 is what's causing the problem.

Ilan Tal

unread,
Feb 28, 2016, 3:37:40 AM2/28/16
to ioio-users
Ytai,
I tried ./ioioBridge -/dev/IOIO0 and there is no difference.

I went again to my friend's home where he has win10. I needed a different viewpoint to try to see what is going on.

It was far from trivial on win10 as well, but we did finally get it going. There is a crucial point which appears in win10 which is missing on linux. Looking at the device monitor (or whatever it is actually called), there were 2 usb devices: on IOIO on COM4 and another Microsoft usb device on COM5. Ioio is certainly not Microsoft so that one I dismissed. However the microsoft usb device went away when we unplugged the ioio and came back when we plugged it back in. Microsoft or no Microsoft COM5 was the port which was responding. COM4 was marked as not working by the Microsoft software.
You can't argue with real data, so we tried the Microsoft COM5. Suddenly it started to work. The COM4 was stuck at the "Connecting to IOIO..." stage but COM5 told us we had a connection. Once we had a connection, surprise, surprise, everything started to work. With my Linux box I am still stuck at the "Connecting to IOIO..." stage. There is no actual connection.

This morning I tried "ls /dev". When the ioio was plugged in I could see /dev/IOIO0 and when it wasn't plugged in it was not in the list. This was similar to the COM5 which turned out to actually work. Still in Linux, no matter what I do I can never get the message that a connection has been made.

The latest log is

02-28 07:41:09.110 2232-2232/ioio.examples.hello D/IOIOConnectionRegistry: Successfully added bootstrap class: ioio.lib.impl.SocketIOIOConnectionBootstrap
02-28 07:41:09.110 2232-2232/ioio.examples.hello D/IOIOConnectionRegistry: Bootstrap class not found: ioio.lib.android.accessory.AccessoryConnectionBootstrap. Not adding.
02-28 07:41:09.110 2232-2232/ioio.examples.hello E/BluetoothAdapter: Bluetooth binder is null
02-28 07:41:09.110 2232-2232/ioio.examples.hello D/IOIOConnectionRegistry: No runtime support for: ioio.lib.android.bluetooth.BluetoothIOIOConnectionBootstrap. Not adding.
02-28 07:41:09.110 2232-2232/ioio.examples.hello D/IOIOConnectionRegistry: Bootstrap class not found: ioio.lib.android.device.DeviceConnectionBootstrap. Not adding.
02-28 07:41:09.400 2232-2234/ioio.examples.hello W/art: Suspending all threads took: 10ms
02-28 07:41:09.450 2232-2257/ioio.examples.hello D/IOIOImpl: Waiting for IOIO connection
02-28 07:41:09.450 2232-2257/ioio.examples.hello V/IOIOImpl: Waiting for underlying connection
02-28 07:41:09.450 2232-2257/ioio.examples.hello V/SocketIOIOConnection: Creating server socket
02-28 07:41:09.450 2232-2257/ioio.examples.hello V/SocketIOIOConnection: Waiting for TCP connection
02-28 07:41:09.570 2232-2232/ioio.examples.hello D/gralloc_goldfish: Emulator without host-side GPU emulation detected.

Thanks,
Ilan


Ilan Tal

unread,
Feb 28, 2016, 5:12:26 AM2/28/16
to ioio-users
Ytai,
When we got the win10 going we had commented out nothing. Thus the usb connection was in the code.
Under Linux we have 2 libraries commented out. On the surface it looks like we need these libraries to make the connection.
I will include a screen dump where you can see the libraries are missing.
Could this be the reason the connection is never made?

Thanks,
Ilan

ioio.png

Ytai Ben-Tsvi

unread,
Feb 28, 2016, 4:46:58 PM2/28/16
to ioio-...@googlegroups.com

No. These libraries are not needed for running with the emulator/bridge.
Why do you have the hyphen before the device name in your command line? It shouldn't be there.

Ilan Tal

unread,
Feb 29, 2016, 12:40:00 AM2/29/16
to ioio-users
Ytai,
Somewhere along the line, in some documentation or other, I picked up the use of the hyphen. Fortunately the code is robust enough to ignore it.
I tried it again,

./ioiobridge /dev/IOIO0

adb server is out of date.  killing...
* daemon started successfully *
IOIO Emulator Bridge, V1.00
Press Ctrl-C at any point to exit

Connecting to IOIO...

and there is no difference. It is still waiting at the connecting stage and never makes an actual connection. On win10 we were so happy to see the code work that we didn't try to eliminate those 2 libraries and check that it still works.
Obviously, I don't know what those libraries are actually doing, but I do remember them giving errors about the usb. I sort of guessed that there was something important going on with them.

What is this business about adb server being out of date? We didn't get such notices on win10. I can choose between 2 emulators, one disconnected and one running. I usually choose the running one but the disconnected one fails as well. (I see the 2 in the Android Monitor.)

Thanks,
Ilan

Ytai Ben-Tsvi

unread,
Feb 29, 2016, 1:16:47 AM2/29/16
to ioio-...@googlegroups.com
I just noticed that you seem to be using an old version of the bridge. Can you please try 1.02 or 1.03? The latter is still in release candidate stage, so if it doesn't work, roll back to the former.

Ilan Tal

unread,
Mar 1, 2016, 10:39:19 AM3/1/16
to ioio-users
Ytai,
I grant you that the ioioBridge is old, from Nov 2012. On you site I went to the latest version and this is what I got. There is also "earlier version" and 1.03 is only 2 months old.
I'm not really interested in the source code - that is your baby. All I want is the jar file and the Linux file for operating it. I could use the Linux file I already have is nothing has been changed in it. Still I would like a jar file with everything built for me. It is just another possible set of errors if I try to build it myself.
I use KISS = Keep It Simple, Stupid, so I want a simple jar file.

While I am updating, why not use ioio507 in place of ioio505? I chose 505 because I thought it was safer. Since I can't get it to work, I might just as well use the latest software there as well?

Thanks,
Ilan

Ytai Ben-Tsvi

unread,
Mar 1, 2016, 2:29:56 PM3/1/16
to ioio-...@googlegroups.com
I'm not sure I understand your comment about source code.
All the IOIO applicatation, tools and libraries are available in both source code and compiled form. The libraries are additionally available as Maven targets.
And here's one to 1.02 if the former doesn't work: https://github.com/ytai/ioio/raw/master/release/apps/IOIOBridge-0102.zip

There shouldn't be a substantial different between 5.05 and 5.07 in your case. For the time being, until you get IOIOBridge to establish a connection to the IOIO it doesn't matter at all what's happening in your app (in fact, you can probably leave the emulator off at this stage until you can talk to the IOIO).
Apologies for the inconvenience. The IOIO supports 4 different platforms (Android, Linux, Windows, OSX) and it seems that the developers of all of them have the strange hobby of changing the behavior of the USB stack on every release. It is hard to keep up... 

Ilan Tal

unread,
Mar 2, 2016, 12:33:35 AM3/2/16
to ioio-users
Ytai,
Wonderful news. We have lift off.

ilan@ilan-Desktop:~/Documents/ioio/ioioBridge103$ ./ioiobridge /dev/IOIO0adb server is out of date.  killing...

* daemon started successfully *
IOIO Emulator Bridge, V1.03

Press Ctrl-C at any point to exit

Connecting to IOIO... Connected!
Connecting to Android application... Connected!
Bridge is running...

The yellow LED is now under the control of the program. Clearly I want to dump the old 1.00 version as it doesn't work.

Now I have to try putting back in those 2 libraries you had me comment out. If they don't work I will leave them out of any application which I write.

BTW, I really do appreciate your support. Without it I wouldn't have had the slighted chance of getting the board to work. I knew it was the right choice to work with Android, but I absolutely dreaded the idea of having to use Windows to make it fly. Now Linux works as well.

Thanks again for your generous help.
Ilan

Ytai Ben-Tsvi

unread,
Mar 2, 2016, 12:37:06 AM3/2/16
to ioio-...@googlegroups.com
Glad we're good.
You will need those libraries when you start working with a real device. There's something about the emulator that they don't like for some reason. I'll file a bug for looking into why.

Ilan Tal

unread,
Mar 2, 2016, 4:09:22 AM3/2/16
to ioio-users
Ytai,
I went over to 5.07 just because I might just as well use the latest software. I guess it is no big surprise that the 2 libraries still don't work.

The purpose of the ioio board is to work on a project with my brother in London. He bought a ioio and I bought one as well. He will be using a real device so I guess I need the libraries for his setup.
I don't mind working a little harder while you look for the bug. My question is: can I generate a apk file for him?
I guess what I should do is remove the comments and then press Build -> Rebuild Project and then I go pick up the "correct" apk for his use?
I sent him the HelloIOIO apk which I generated with the libraries commented out. If I understand correctly, this apk will not work on his real device?

Thanks,
Ilan

Ytai Ben-Tsvi

unread,
Mar 2, 2016, 1:09:19 PM3/2/16
to ioio-...@googlegroups.com
Yes, you should be able to send someone an APK and it should work.
The IOIO has 4 different modes it can work in with Android (which are normally transparent to the user): ADB, Bluetooth, USB Accessory, USB device. When you comment out the libraries, you're disabling the last two. The emulator + bridge setup uses ADB, so it doesn't care. Some older Android devices (<4.2.2) can use ADB too (user has to enable USB debugging on the phone). Newer ones will require the USB libraries. However, if you just enable them as a last step before exporting the APK the functionality of your application should remain in tact, so it isn't more than a little inconvenience.

Reply all
Reply to author
Forward
0 new messages