P
P E Schoen
I just recently bought an Archos 70 Internet Tablet which has a 7"
multitouch display, Android OS, and WiFi network connection. I was able to
make an HTML web page on my laptop computer, with JavaScript to respond to
button clicks, just as a demo if the interface. The tablet device was able
to connect to the web page on the computer's localhost XAMPP Apache server
via the IP address, as well as a copy on my Dreamhost server:
http://pstech-inc.com/KeypadDemo.htm
What I want to do is make a WiFi enabled device using a Microchip PIC which
has an Http/IP stack and can appear as an internet web page. Of course this
is done through my WiFi router, and is available world-wide. This may have
some usefulness, but really I just want to use the tablet as a smart,
programmable GUI for the instrument. So, I think an ad-hoc network between
the tablet and the device can be set up.
I am not very familiar, yet, with the implementation of the TCP/IP stack for
the PIC controller, but that is where the actual hardware will reside that
needs to be controlled and monitored. The controls are mostly on/off, or
perhaps setting an 8-bit or 12 bit value, and the data may be as simple as
integer or floating point values updated 10 times a second, although in some
cases it may need to stream as 12 bit values at 2500 samples/second. The
resources of the PIC are limited, so it may only be able to handle simple
web pages. And I'm not sure if the hardware may be manipulated directly from
the web page, or if it will require some sort of server side scripting,
which of course implies it has its own server, and can run something like
PHP or even Ajax.
Another way to implement this may be to configure the Archos tablet as a USB
HID (Human Interface Device), instead of the Mass Storage Device as now
configured. It would be acceptable to use a USB cable connection rather than
wireless, and it may prove more reliable in some of the industrial
environments encountered by the instruments as they are used (high voltage,
high current, electrical and audible noise, etc).
I would like to use HTML with JavaScript and perhaps AJAX or JSON for data
and control exchanges, because of the relative ease of programming the GUI,
but another alternative is to create an Android application for the device.
I did some preliminary work in this direction where the development platform
is on my Win7 PC with a Java and JDK environment, through an Eclipse IDE,
and an emulator with an Android virtual device. I was able to get the simple
"Hello" app working but it seems like a daunting task to go in this
direction.
There are also the options of using an iPod or iPad, which uses the Apple
iOS and their browser. And, there are Win7 tablet PCs that could run an
Apache server for the GUI in HTML, and use the USB host to connect to the
instrument, which could then have a simple USB device interface (which I've
already done). But there is still the question of sending commands and
receiving data between the web page and the hardware. Of course, in that
case, the PC could simply run an ordinary Windows GUI (which I'm familiar
with, using Delphi). The Win7 tablets are about $700, compared to $500 for
iPad, and $300 for the Archos. But cost is not a major factor for this
application, since this will be replacing a dedicated proprietary touchpad
that was originally proposed, and its cost was comparable. But the generic
devices have the advantage of being useful for many other applications, and
if the customer already has (or wants) such a device, it is essentially
"free".
This may not be the best place for this discussion, but I had no luck on the
webmaster or networking newsgroups. There are many technologies potentially
involved in this project, and I have expertise only in a few - mostly the
actual hardware and PIC design, and less in HTML, JavaScript, PHP, and
networking, in about that order. I just want to do this right, and it may
have application for a large range of products. And I know that I should
sell my strengths, and purchase my weaknesses, so I plan to enlist the help
of expert consultants as needed. But I need enough understanding to know
whom I should use and to make sure I'm not misled. Thanks for any ideas and
assistance.
Paul
Some links:
http://www.archos.com/products/ta/archos_70it/index.html?country=us&lang=en
http://www.archos.com/products/tw/archos_9/index.html?country=us&lang=en
http://developer.android.com/index.html
http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/indigor
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en553673
(Android)
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2504
(Ethernet)
http://netbooknavigator.com/index.php?option=com_virtuemart&Itemid=165&vmcchk=1&Itemid=9
http://www.apple.com/ipad/
http://www.apple.com/ios/ios5/features.html
multitouch display, Android OS, and WiFi network connection. I was able to
make an HTML web page on my laptop computer, with JavaScript to respond to
button clicks, just as a demo if the interface. The tablet device was able
to connect to the web page on the computer's localhost XAMPP Apache server
via the IP address, as well as a copy on my Dreamhost server:
http://pstech-inc.com/KeypadDemo.htm
What I want to do is make a WiFi enabled device using a Microchip PIC which
has an Http/IP stack and can appear as an internet web page. Of course this
is done through my WiFi router, and is available world-wide. This may have
some usefulness, but really I just want to use the tablet as a smart,
programmable GUI for the instrument. So, I think an ad-hoc network between
the tablet and the device can be set up.
I am not very familiar, yet, with the implementation of the TCP/IP stack for
the PIC controller, but that is where the actual hardware will reside that
needs to be controlled and monitored. The controls are mostly on/off, or
perhaps setting an 8-bit or 12 bit value, and the data may be as simple as
integer or floating point values updated 10 times a second, although in some
cases it may need to stream as 12 bit values at 2500 samples/second. The
resources of the PIC are limited, so it may only be able to handle simple
web pages. And I'm not sure if the hardware may be manipulated directly from
the web page, or if it will require some sort of server side scripting,
which of course implies it has its own server, and can run something like
PHP or even Ajax.
Another way to implement this may be to configure the Archos tablet as a USB
HID (Human Interface Device), instead of the Mass Storage Device as now
configured. It would be acceptable to use a USB cable connection rather than
wireless, and it may prove more reliable in some of the industrial
environments encountered by the instruments as they are used (high voltage,
high current, electrical and audible noise, etc).
I would like to use HTML with JavaScript and perhaps AJAX or JSON for data
and control exchanges, because of the relative ease of programming the GUI,
but another alternative is to create an Android application for the device.
I did some preliminary work in this direction where the development platform
is on my Win7 PC with a Java and JDK environment, through an Eclipse IDE,
and an emulator with an Android virtual device. I was able to get the simple
"Hello" app working but it seems like a daunting task to go in this
direction.
There are also the options of using an iPod or iPad, which uses the Apple
iOS and their browser. And, there are Win7 tablet PCs that could run an
Apache server for the GUI in HTML, and use the USB host to connect to the
instrument, which could then have a simple USB device interface (which I've
already done). But there is still the question of sending commands and
receiving data between the web page and the hardware. Of course, in that
case, the PC could simply run an ordinary Windows GUI (which I'm familiar
with, using Delphi). The Win7 tablets are about $700, compared to $500 for
iPad, and $300 for the Archos. But cost is not a major factor for this
application, since this will be replacing a dedicated proprietary touchpad
that was originally proposed, and its cost was comparable. But the generic
devices have the advantage of being useful for many other applications, and
if the customer already has (or wants) such a device, it is essentially
"free".
This may not be the best place for this discussion, but I had no luck on the
webmaster or networking newsgroups. There are many technologies potentially
involved in this project, and I have expertise only in a few - mostly the
actual hardware and PIC design, and less in HTML, JavaScript, PHP, and
networking, in about that order. I just want to do this right, and it may
have application for a large range of products. And I know that I should
sell my strengths, and purchase my weaknesses, so I plan to enlist the help
of expert consultants as needed. But I need enough understanding to know
whom I should use and to make sure I'm not misled. Thanks for any ideas and
assistance.
Paul
Some links:
http://www.archos.com/products/ta/archos_70it/index.html?country=us&lang=en
http://www.archos.com/products/tw/archos_9/index.html?country=us&lang=en
http://developer.android.com/index.html
http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/indigor
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en553673
(Android)
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2504
(Ethernet)
http://netbooknavigator.com/index.php?option=com_virtuemart&Itemid=165&vmcchk=1&Itemid=9
http://www.apple.com/ipad/
http://www.apple.com/ios/ios5/features.html