Login to enhance your online experience.

Login or Create an Account
Main Menu
Online Store Menu
Shopping Cart

There are no items in your shopping cart.

Software support allowing work of USB2ISA and USB2PCMCIA products on Google Android OS

1. Pre-requisites for the Android device

Android devices come in a variety of form factors - phone, tablets, embedded devices, etc.
In addition, they come pre-installed with a variety of Google API releases and Linux kernel versions.

use of USB2ISA with android tablet
The very basic requirements for an Android device to be able to run our Android OS software support are:

- has to allow Root access '#'; many devices do not allow and have this support;
since Google does not design this to be always available in the OS, the device users have to resort to solutions provide by the hacking community, like from -

- have USB drivers to connect to Windows, or Linux, or Mac OS X system; the standard Android device has a usb connector to connect to a USB host on a standard computer system, running one of the above standard and widely popular OS-es; some devices, like for ex. Amazon Kindle did not provide such drivers; it may be possible to use standard drivers (windows), or the os support (linux/mac), by just adding the specific vendor/product ID (VID/PID) of the Android device to an .inf file (windows), or to OS script/config files (linux/mac).

- has to provide USB host or OTG ports;
our USB2ISA and USB2PCMCIA products connect through a cable to USB host ports;
there are variety of Android devices which come in a variety of form factors - phones, tablets, embedded devices, etc.;
if the Android device has one or more USB host ports - great!
however some Android devices have only one USB port, based on the on-the-go (OTG) USB specification; such port combines a USB device and a USB host; the USB device part is normally extensively tested and working, however some Android device manufacturers may have not tested the USB host portion, and it may be not working;

2.Installing of ARSTech software support

- the ARSTech Android software support is packed together with all other OS software support;
you will need to download the installation software, unzip, locate 'Android' folder;

- do install of ArsCmdTst.apk; there are number of ways of doing this: *** through the Google Play app store -
*** from the install software, -
under Windows run - 'win-install-app.bat'
under Linux run - './lnx-install-app.bat'
the file may need to be made executable, for ex. by - 'chmod +x lnx-install-app.bat'
as a result the 'ArsCmdTst.apk' will be installed on the Android device;

- the pre-requisites for the Android device as described in ch.1 have to be met - root access, USB drivers, USB host port;
connect the Android device, and install based on host OS Windows/Linux/MacOSX;
under Windows run - 'win-run-enum.bat'
under Linux run - './lnx-run-enum.bat'
the file may need to be made executable, for ex. by - 'chmod +x lnx-run-enum.bat'
as a result the 'arsenum-andr' enumerator will run on the Android device;

3. Components of the ARSTech software support

There are 2 major components on our software support:
- arsenum-andr - enumerator; an executable binary designed to start and run in a way as a system software;
- ArsCmdTst.apk - a standard Android app; designed to demonstrate calling of our API set and showing of the results

!!! When starting / running for the first time initially, please start the ArsCmdTst.apk, and then the start the enumerator 'arsenum-andr'.

The ARSTech Enumerator 'arsenum-andr' has to be running in order to use USB2ISA+ISA or USB2PCMCIA+PCMCIA.

While 'arsenum-andr' is the engine providing and servicing the API set, one or more Android apps like ArsCmdTst.apk are using this API set.

3.1 The 'arsenum-andr' enumerator has to be loaded on the device and started each time after powering on, or reboot of the device.

There are 2 ways to start it -

Enumerator on ADB shell
- display out mode, when entering shell through ADB (adb shell), and starting just as
# ./arsenum-andr
In this mode the shell console displays on screen insertion events with all detected resources, and removal events. Exit from this mode is through 'ctrl-c', and the enumerator stops working.

- silent mode, run in the background, when started through the xxx-run-enum.bat as
# ./arsenum-andr g
In this mode the enumerator is started and returns right away the control back to the user. The enumerator continues running, and puts the results into the 'arsenum.log' file.
The user can display the results by running -
tail -f arsenum.log
!!! some systems do not provide 'tail' command.

3.2 ArsCmdTst.apk is a demo / test application for USB2ISA and USB2PCMCIA products - allows read/write to I/O and Memory addresses of ISA and PCMCIA peripheral cards.

The app includes a NDK JNI .so library - 'libarscmd1.so'.

ArsCmdTst app look
The app has 3 main areas -
- command text enter area - where the user types the command text
- run command command button - click to run the command
- status area - displays the returned results from running of a command

The status area has an initial text giving the abbreviated combination of commands.
There are 2 special commands -
'.' - to clear screen
'?' - to display help

The help text displayed is a condensed version of this file.

!!! The source code of the 'ArsCmdTst.apk' is provided together with the install software in the '/src' folder.
Developers can unpack and open this app under 'eclipse' environment, then modify to fit their purposes.

!!! The source code of the 'libarscmd1.so' is NOT provided together with the install software, however it is provided in our 'sdkbus' product. Developers can modify and rebuild to fit their purposes this library under 'cygwin' NDK environent.

4. API set - syntax/use/examples

The API set is provided through the 'libarscmd1.so' library.

Command syntax:
each command is a text string with 3 or 4 fields separated by space -
a b cccc dd , where -
a) command - i=input port, o=output port, r=read memory, w=write memory
b) size - 1-one byte/8bit, 2-two bytes/16bit
cccc) address - 16bit hex address for I/O ports, or 24bit memory address
dd) data - required for 'o/w' commands, not needed for 'i/r' commands

Return syntax:
the return is a text string in the form of -
- " - result = xxxx", where xxxx is 8or16bit hex value
- or, " - timeout", if the enumerator is not running, or USB2ISA+ISA / USB2PCMCIA+PCMCIA are not connected

i 1 3f8 - 8bit input from i/o port 0x3F8 (serial port)
o 1 278 cd - 8bit output of 0xCD to i/o port 0x278 (par.port)
r 2 c0000 - 16bit read from memory address 0xC0000(vga bios)
w 2 b0000 abef - 16bit write of 0xABEF to memory address 0xB0000(vga bios)

5. Handling potential and existing issues

*** ADB on 64bit Linux releases
The ADB is an utility provided with the Google SDK. We did test with the binary provided however it did not work. We hope to get a working utility so that we can cover work under the 64bit Linux.
Since it is not currently working, please test / use under 32bit Linux releases.

*** ADB on Mac OS X
We did not yet test installing our software under Mac OS X. We will test and add 'mac-install-app.bat' and 'mac-run-enum.bat' .

*** the app and lib are tied together
The 'ArsCmdTst.apk app was created and defined with this string - 'com.arstech.arscmdtst' .
The lib 'libarscmd1.so' is tied to the app with defining of the functions to include - Java_com_arstech_arscmdtst_CmdTstActivity_....( JNIEnv* ...
This is the way Google defines the way of development of apps and NDK JNI libs.
We provide both of them as samples / demos for developers. A developer have to keep in mind to modify both , if creating their own app/lib.
Quick Store Search

Advanced Search

Account Menu
Popular Pages
Kryptronic Internet Software Solutions