Condroid Remote Management - System Architecture & Requirement. Download the document in http://csd.xen.ssvl.kth.se/csdlive/content/remote-management-system-analysis-design
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Condroid Remote Management - System Architecture & Requirement
1. !
!"#$%"&#'(')"#"(%&&
*+*%"#&'!,-.%",%/!"&&
0&!"1/.!"#"(%&&
2"!*.$(&345&
2011
!"#$%&'()%*+(,%+-%"( !"#$%&'(&#*&.(
& (
&
Lan Sun (lansun@kth.se), 15 ECTS (((((/#*&.(*01(2"#$%&'(#30%"(
Hervé Ntareme
Qing An (qinga@kth.se), 15 ECTS
/#4&#*&.(
Michel Hognerud
Jun Gao (jungao@kth.se), 15 ECTS
/.*+25#0(
Laili Aidi (aidi@kth.se), 18 ECTS
Björn Pehrson!
Yasir Ali (yasireal@kth.se), 15 ECTS
SUMMER CSD
2. Remote Management
System Architecture & Requirement V1.3
!
Revision History
Version Date Responsible Change
V1.0 2011-07-08 Jun Gao and Laili Aidi Initial version of the document
Combining the System Architecture
V1.1 2011-07-15 Laili Aidi document and System Requirement
document
V1.2 2011-07-16 Laili Aidi Adding the detail in section 2
V1.3 2011-10-07 Laili Aidi Cover, Abbreviation, Introduction
2
3. Remote Management
System Architecture & Requirement V1.3
!
Contents
Contents .............................................................................................................................................3!
Summary.............................................................................................................................................4!
Abbreviation.......................................................................................................................................5!
1. System Architecture ........................................................................................................................6!
2. System Requirement........................................................................................................................7!
2.1 Approaches................................................................................................................................7!
2.2 General Requirement .................................................................................................................7!
2.3 Open-Access Approach Specific Requirement ...........................................................................8!
2.4 ADB Approach Specific Requirement .....................................................................................10!
2.5 Open-Accessories and ADB comparison .................................................................................11!
3. References.....................................................................................................................................12!
3
4. Remote Management
System Architecture & Requirement V1.3
!
Summary
This document describes the System Architecture and System Requirement of the ConDroid in order to
develop and implement a Remote Management interface for WiFi Repeater and Optical Amplifier.
4
5. Remote Management
System Architecture & Requirement V1.3
!
Abbreviation
Abbreviations used in this document:
Abbreviation Description
ADK Access Development Kit
ADB Android Debug Bridge
HiperTerminal Terminal emulation software for Windows OS
Minicom Text-based modem control and terminal emulation program for Unix- like OS
UART Universal asynchronous receiver/transmitter
TTL Transistor–transistor logic
RS232 Recommended Standard 232
WiFi Local Area Network products based on IEEE 802.11
IOIO A USB I/O breakout board for Android
Seeduino Arduino compatible board
Freeduino Arduino compatible board
SMS Short Message Service
5
6. Remote Management
System Architecture & Requirement V1.3
!
1. System Architecture
One of the Condroid CSD project aim is develop a Remote Management interface in order to support and
troubleshoot the network equipments (WiFi Repeater and Optical amplifier in this project), which make it
enable to connect to the network equipments that situated far away in the isolated area.
Below is the design of system architecture in order to meet the requirement mentioned above:
Figure 1. ConDroid System Architecture design
Figure 1 shows that the administrator is far away from the network equipments (which will be WiFi repeater or
optical amplifier in this project). The ConDroid system provides both local control approach (Minicom or
HiperTerminal-like console) and remote approach for administrator to manage the network equipments using
cell phones through dialing, short message or the Internet connection.
6
7. Remote Management
System Architecture & Requirement V1.3
!
2. System Requirement
In this section, we give a detail description of the components of this system. But the important thing needs to
be clarified here is there are 2 possible ways that we consider to be used to achieve the USB-to-Serial
connection for Android device without the need to develop the driver and change the OS kernel. The first
approach is by using Open-Access API and the other is by using the Android Debug Bridge. This approach
has similar architecture but create different requirement. This section describes the approaches and then the
general requirements of the hardware. After that, there is also description of specific requirement of the
hardware based on different approaches and finally we give brief comparison between the approaches.
2.1 Approaches
There are 2 Approaches that are considered to be used in order to solve this requirement:
a. Using Open-Access API
This approach works via Android Open Accessory support, which allows external USB hardware (an Android
USB accessory) to interact with an Android-powered device in "accessory" mode [1]. Android USB accessories
mode specifically designed to attach to Android-powered devices / USB host capable microcontroller (ADK)
and adhere to Android accessory protocol / Open Access API that allows them to detect Android-powered
devices.
b. Using ADB
This approach uses the USB protocol for debugging applications [4]. It provides useful functionality and allows
the Android application to listen on a certain port and accept connections from the outside world without a
need to modify the OS. This functionality including file-system access/pushing files to the device, Linux shell
access, TCP socket, etc.
2.2 General Requirement
The hardware requirements of the ConDroid system are described below:
a. Android Smart-Phone
Because this project is aim to develop the software that run above the Android platform, thus the first
component that is needed is an android smart-phone, which will run the ConDroid software. As mentioned
earlier in the approaches description, there are some specific requirements for the OS version of this smart-
phone, which is depended on the approach and described in the section 2.2 and 2.1.
7
8. Remote Management
System Architecture & Requirement V1.3
!
b. USB-to-Serial converter board
Normally, the smart-phone will provide WIFI, Bluetooth and mini or micro USB. To connect to the network
equipment, which provides a serial management interface, we need a converter. Actually, to solve this problem,
Bluetooth to serial converter can be used and there are products providing this function. But, Bluetooth is too
power consuming and the smart-phone cannot be charged through the link, which will lead to the power-
recharging problem. Since the charging requirement will be easier to deal using the USB connection, thus, we
chose this interface.
As we chose USB to connect to the equipment, the first thing need to be solved is to convert the USB into
serial interface. If the general USB-to-serial converter is chosen, then we need to provide specific the driver to
the converter in the android OS system, which will then require to recompile the kernel. The IOIO and
Seeduino board provide firmware that specifically built for and can be accessed using Java API available in the
android system, so the smart-phone can connected to the board via USB link.
c. Serial Converter Cable
The third component in this system is a serial convert cable and it will only be used when the converter boards
provide different serial interface from the equipments. Normally, the board will provide a TTL (Transistor-
Transistor Logic) serial interface. However, the network equipment we aim to connect via Android normally
only provide the RS232 as the management interface, thus the TTL-to-RS232 cable is needed in order to
connect the serial-converter board. Luckily, the difference between TTL serial and RS232 serial is only the
electronic signal level, so there is no need for a driver for the converting.
2.3 Open-Access Approach Specific Requirement
Below are the specific specifications of the hardware in order to be able to use this approach:
! Phone: Android phone version 2.3.4 Gingerbread or 3.1 Honeycomb
! USB-to-Serial Converter Board: Open Accessories development Kit (ADK) or Android Open
Accessory compatible development board. After doing the research, the board that we consider to be used
in this research are:
8
9. Remote Management
System Architecture & Requirement V1.3
!
a. Seeduino ADK Main Board [2, 3]:
Features:
• Android ADK compatible, thus it supports Android v2.3.4 and above devices
• Backward compatible: It works with Android Debug Bridge (ADB) protocol using MircroBridge
firmware, thus it supports Android v1.5 and above devices
• It is Arduino Mega 2560 compatible, thus it simply works like an Arduino Mega with an integrated USB
Shield
• 4 Hardware serial ports (UART) = TTL Serial Port
• On board USB host (MAX3421) and On board USB slave (FT232RL)
• The board running at 5v/3.3v IO Level selectable
• Manual select power source, build-in 5V-1A switched power regulator (input range 6V - 18V) or 3.3V-
500mA LDO power regulators.
Limitation:
• It only provides TTL serial ports thus we need TTL-to-RS232 converter to connect to RS232 Level Serial
interface in the network equipments (WiFi repeater and Optical amplifier).
• It uses an SMT version of the main AVR chip, so the chip cannot be replaced or moved to another board.
• The next purchasing period is August 2011.
Prize:
79.90$ and we can customize the board and tell them the specific requirement and quantity we need.
b. Freeduino USB Host Board
Feature:
• It provides an Arduino-compatible board that supports ADK firmware thus it can connect with any
Android phone with the “Accessory mode”
• USB hosting via MAX3421 chip
• 1.5 A linear regulator
• 6-9 volts external power, with 6 volts being ideal
• Based on Arduino Uno Boot loader
• It provides TxD and RxD (data Input/output for USART)
Limitation:
• No specification of serial port availibility
• Lack of support and documentation
9
10. Remote Management
System Architecture & Requirement V1.3
!
Prize:
$79.00
2.4 ADB Approach Specific Requirement
Below are the specific specifications of the hardware in order to be able to use this approach:
1. Phone: Android phone version 1.5 Cupcake and above
2. USB-To-Serial Converter Board: ADB supported board.
After doing the research, the board that we consider to be used in this research is the IOIO Board DEV-
10748 [5, 6], an ADB implementation with a solid Java library. It gives the phone direct control over the
various pins of its PIC24 chip, removing the need for to write our own firmware.
Features:
• Fully controllable from Android application, using ADB library that provided in SDK API, thus it
supports Android v1.5 and above devices
• It gives the phone direct control over the various pins of its PIC24 chip, removing the need for to write
our own firmware. The firmware code is open-source with a FreeBSD license at [7] and includes secure
boot-loader, which enables firmware upgrades to be performed through the Android device
• The firmware works with beta version with ADK, thus it supports Android v2.3.4 and above devices, and
it is open-source with a FreeBSD license too at [8]. Thus it provides extensive and robust connectivity to
an Android device via a USB connection using both ADB and ADK.
• The board running at 5V-15V switch-mode regulators through the VIN pin and allows for simultaneous
charging of the Android device and powering two standard servos.
Limitations:
• It only provides TTL serial ports thus we need TTL-to-RS232 converter to connect to RS232 Level Serial
interface in the network equipments (WiFi repeater and Optical amplifier).
• The devices proven to work are: G1, Nexus One, Nexus S, Motorola Droid X. With other devices there is
no guarantee to work. And the ADK support is beta version.
Prize:
$44.96
10
11. Remote Management
System Architecture & Requirement V1.3
!
2.5 Open-Accessories and ADB comparison
Open-Accessory's main advantages over ADB are:
• Better throughput and latency.
• Does not require the user to enable USB debugging.
• More secure (IOIO takes its own measures to guarantee that the power of ADB cannot be exploited by a
malicious firmware).
• Allows applications to be notified upon connection of the accessory. The user can choose which
application to launch when the accessory connects. This might be doable with ADB too, but IOIO
doesn't do that.
ADB's main advantages over Open-Accessory are:
• Available on broad Android devices version.
• Provides useful features, such as file-system access (IOIO uses this for firmware upgrades).
• More mature, does not suffer from some problems currently existing in OpenAccessory.
• Simpler to work with on the Android application side - just listen on a TCP socket.
11
12. Remote Management
System Architecture & Requirement V1.3
!
3. References
[1] Android Open Accessory Development Kit http://developer.android.com/guide/topics/usb/adk.html
[2] Seeduino ADK Main Board http://www.seeedstudio.com/depot/seeeduino-adk-main-board-p-
846.html
[3] Seeduino ADK Main Board - Wiki
http://garden.seeedstudio.com/index.php?title=Seeeduino_ADK_Main_Board
[4] Android Debug Bridge http://developer.android.com/guide/developing/tools/adb.html
[5] IOIO for Android http://www.sparkfun.com/products/10748
[6] IOIO over Open-Accessory (ADK) Available http://ytai-mer.blogspot.com/2011/06/ioio-over-
openaccessory-adk-available.html
[7] Hardware, Software and Firmware of the IOIO project
http://codaset.com/ytai/ioio/source/master/tree/firmware
[8] IOIO Over Open-Accessory Beta http://codaset.com/ytai/ioio/wiki/IOIO-Over-OpenAccessory-Beta
12