1 tablet to 2 IOIO boards over USB

46 views
Skip to first unread message

Stephen Rogers

unread,
May 30, 2016, 11:09:14 PM5/30/16
to ioio-users
Hi,

Apologies if this has been asked before, I've looked through a lot of threads but can't see anything that answers exactly what I'm doing.

I'm trying to connect 2 IOIO boards to a single android tablet via USB only - here's what I think I know, is this right?

- If I connect the IOIOs to a PC I can connect to them using the CreateIOIOLooper overload with the extra parameter corresponding to the serial port on the PC
- I can also probably connect using 2 different bluetooth dongles, but I can't do this in this instance and am trying to use USB
- If I connect a IOIO to a tablet over OpenAccessory the IOIO becomes the USB host and there's no way I can have 2 of them, so I leave USB debugging on so it works over ADB
- My android tablet needs to be able to be a USB host (I'm pretty sure it is I've tried some of the USB host apps to check)
- I need to use a USB B cable in the IOIO (rather than the red OTG cable that it came with) and a micro B to female A OTG cable (I have this https://www.amazon.co.uk/gp/product/B00B4GGW5Q/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1) in the tablet to make the tablet the host

Suffice to say I've not managed to get this to work yet, and here's what I can't work out

- Will the libraries work with this set-up?
- Do I need to change anything to have the tablet communicate with both IOIOs, say in IOIOLibAndroidDevice?
- Is this something that's going to work?

Stephen

Ytai Ben-Tsvi

unread,
May 31, 2016, 3:29:22 AM5/31/16
to ioio-...@googlegroups.com
There's nothing physical that I can think of that should prevent this from working. However, the current library assumes at most a single IOIO device.
To change that, you'd need to rewrite https://github.com/ytai/ioio/blob/master/software/IOIOLibAndroidDevice/src/main/java/ioio/lib/android/device/DeviceConnectionBootstrap.java so that its getFactories() method returns multiple factories, each one corresponding to a single possible IOIO connection. Then you'd probably want to refactor the other methods to get the device as argument rather than assume a single device. One shortcoming of the current design is that the total number of possible IOIOs needs to be known when the app starts, as a thread is created up-front for each one, which sits and waits for its IOIO to connect. But you can get away with just choosing an arbitrary number (e.g. 2) and return the respective number of factories.

--
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.

Richard Wright

unread,
Jun 8, 2016, 12:09:10 AM6/8/16
to ioio-users
Does the single IOIO device assumption apply equally to PC-based solutions (Windows or Linux)? I was under the impression that I could have 2-4 boards plugged into one PC for when I need to scale up a bit higher. Is that only possible with some non-standard version of the IOIO libraries?

Ytai Ben-Tsvi

unread,
Jun 8, 2016, 7:05:51 PM6/8/16
to ioio-...@googlegroups.com
The PC implementation is independent and DOES support multiple concurrent IOIOs in its current form.
Reply all
Reply to author
Forward
0 new messages