App for remote control of IOIO over WiFi

128 views
Skip to first unread message

Jabberwock

unread,
Feb 2, 2016, 3:48:01 AM2/2/16
to ioio-users
Is there a generic app that allows control of IOIO outputs over WiFi (when the board is connected to a phone)? I know there are some examples of WiFi controlled rovers etc., but if possible I would rather avoid coding anything on Android, as this would be an extra functionality and I would rather devote my time to the main project...

Alternately, I could use an app that takes some input (http, Tasker, AutoRemote, etc.) and controls the board over Bluetooth, but this would be unnecessarily complicating things...

Ytai Ben-Tsvi

unread,
Feb 2, 2016, 2:29:39 PM2/2/16
to ioio-...@googlegroups.com
One possible way to approach this is to have the Android app do a "dumb" forwarding of the IOIO connection over TCP, then run the actual IOIO software stack on the remote machine.

On Tue, Feb 2, 2016 at 12:48 AM, Jabberwock <manute...@gmail.com> wrote:
Is there a generic app that allows control of IOIO outputs over WiFi (when the board is connected to a phone)? I know there are some examples of WiFi controlled rovers etc., but if possible I would rather avoid coding anything on Android, as this would be an extra functionality and I would rather devote my time to the main project...

Alternately, I could use an app that takes some input (http, Tasker, AutoRemote, etc.) and controls the board over Bluetooth, but this would be unnecessarily complicating things...

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

Jabberwock

unread,
Feb 2, 2016, 4:26:34 PM2/2/16
to ioio-users
I am not sure I have understood you correctly...

I was asking whether there is an app that would, e.g. run a webserver and directed the calls to the connected IOIO board. For example, if the phone address was 192.168.178.10, accessing 192.168.178.10/DigitalWrite#4#On would set the pin 4 of IOIO connected to the phone to HIGH. So I am not sure what the second Android device would be needed for...

Ytai Ben-Tsvi

unread,
Feb 3, 2016, 2:18:25 PM2/3/16
to ioio-...@googlegroups.com

So it seems like you're talking about HTTP (or even more specifically, REST), not just WiFi. My answer was essentially how to forward the IOIO connection over TCP.
I'm not aware of such an app, but I do remember that others have asked about this in the past, so you may want to dig the forum and see whether any of them has made any others and are willing to share their work.

On Feb 2, 2016 1:26 PM, "Jabberwock" <manute...@gmail.com> wrote:
I am not sure I have understood you correctly...

I was asking whether there is an app that would, e.g. run a webserver and directed the calls to the connected IOIO board. For example, if the phone address was 192.168.178.10, accessing 192.168.178.10/DigitalWrite#4#On would set the pin 4 of IOIO connected to the phone to HIGH. So I am not sure what the second Android device would be needed for...

--

Richard Wright

unread,
Feb 4, 2016, 12:49:40 AM2/4/16
to ioio-users
I have created a generic web service for IOIO-OTG devices. It was created back before the switch to Gradle, so all of the build stuff would need to be re-done. I have never tested it, and thus I assume it won't work, on an Android device, but it works great on Windows and Linux. I have even ran it on Raspberry Pi, and Raspberry Pi 2. Basically, it has an embedded Tomcat server running, and it makes available the 26 pins of the IOIO. It doesn't support all modes, but basic digital in/out as well as analog inputs are supported (I even think I made PWM work). 

It has 2 main parts. First, there is a configuration web-page, which allows you to assign a name to each pin, and configure its mode (Digital Input with Pull-Up, vs. Analog Input, etc). Then, there are simple URL's that you can hit to either set the output data, or else read the state of input pins. 

Thus, overall, it seems like it would do what you want, as long as you are good using the IOIO-OTG together with Linux or Windows instead of Android. 

I have a crazy busy schedule this week and weekend, with some major deadlines on Monday. But if this sounds like it would meet your needs, and you don't urgently need it right now, then I can probably update the code to be compatible with the Gradle build system by February 13th, and share a new open source repository on GitHub. Let me know if that would be helpful for you. 

Ytai Ben-Tsvi

unread,
Feb 4, 2016, 2:37:20 AM2/4/16
to ioio-...@googlegroups.com

Wow! What a great community spirit!
Thank you, Richard!

Jabberwock

unread,
Feb 4, 2016, 4:36:12 PM2/4/16
to ioio-users
Thank you very much for your offer!

Unfortunately, the IOIO-OTG is supposed to be controlling a Meccano vehicle and the Android phone is supposed to transmit video, so the kids can have a Martian rover, with a manipulator etc. :) I do not have a Raspberry Pi (well, of course I do, but I do not have a _free_  RPi), so I canot stuff any Linux/Windows on the rover...

I asked as I wondered whether there is a such solution already, as I have a IOIO-OTG unused and the Android phone will be used anyway. If not, I guess I can get something done with ESP2866+Arduno.

Richard Wright

unread,
Feb 7, 2016, 1:05:40 AM2/7/16
to ioio-users
I did some quick searching online, and it doesn't appear that embedded tomcat servers are capable of running on Android, so my code base would be useless here. Sounds like a fun project. Best of luck to you!
Reply all
Reply to author
Forward
0 new messages