Professional Documents
Culture Documents
April 9, 2014
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
This document, which serves as the narrative and core of the Module Developers Kit (MDK),
discusses how to develop modules compatible with the Ara platform. Note that while this
document extensively describes the endoskeleton, or “endo,” it does so exclusively for the
beneft of module developers to ensure compatibility between modules and the endo. The Ara
platform does not presently support third-party endo developers.
Chapter 1 provides a brief description of the licensing landscape that governs the Ara
ecosystem. Chapter 2 talks about the industrial design of the Ara platform including the
physical layout of the frame, the endoskeleton or “endo”, and how modules ft within it.
Chapter 3 talks about the mechanical and electrical assemblies and interfaces of Ara modules.
Chapter 3 also provides reference design templates for each type of module. Chapters 4 and 5
talk about power and networking between the endo and modules. Chapter 6 discusses the Ara
software platform and how it interacts with various types of hardware devices. Chapter 7 talks
about system-level functions, which require interactions between modules and the endo.
Chapter 8 discusses environmental specifcations for modules including thermal loads and
electromagnetic compatibility. Chapter 9 describe the Ara module marketplace and the
process for submitting and selling modules through the marketplace. Finally, Chapter 10
provides some guidelines for regulatory compliance and carrier certifcation.
This document provides specifcation requirements needed to ensure compatibility with the Ara
platform. Heading titles throughout the document mark sections that contain specifcation
language.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
All MDK releases prior to release 1.0 are considered prototype releases. These are validated
using prototype hardware and software implementations that frequently fall short of the
objective specifcation. Consequently, some elements of the prototype specifcations and
reference implementations will difer from the objective system. Blue boxes like this one
denote distinctions between the current prototype platform and the objective one throughout
the document.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
NK Labs Seth Newburg, Ara Knaian, Marisa Bober, Dave McCoy, Charles “Mycroft”
Hannum, Boyan Kurtovich, Shahriar Kushrushahi, Nan-Wei Gong, Chris
Wardman, Nate MacFadden
New Deal Design Dan Clifton, Gadi Amit, Inbal Etgar, Susan McKinney
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Developers are also encouraged to join the Ara Module Developers Google Group at
http://groups.google.com/forum/#!forum/ara-module-developers, which serves as a forum and
mailing list. If your question is not addressed in the latest documentation or FAQ, it may well
have been answered in the Google Group. If not, ask away!
Limited quantities of prototype hardware, including dev boards and EPMs are available from
AQS. Additionally, AQS can provide layout services for Ara form factor modules based on
existing templates. You can contact AQS at ara-support@aqs-inc.com.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
AP Application Processor
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
1.2.1. MIPI
The MIPI Alliance is an open membership industry consortium that developers interface
specifcations for mobile devices. Ara modules implement several MIPI specifcations. At
minimum, modules communicate with the endo and with other modules using the MIPI M-PHY
and UniPro specifcations. Depending on the application, some modules may implement
additional MIPI specifcations such as CSI and DSI. In order to get a hold of the detailed MIPI
specifcation, you need to join the MIPI Alliance. This gives you a royalty-free license to
implement your own version of the MIPI interfaces. Alternatively, developers may procure from
third-party vendors IP blocks (for use in FPGAs or in creating ASICs) or complete bridge chips
implementing the MIPI standard interfaces.
1.2.2. Android
The software stack for the Ara platform is built on the open source Android OS. The majority of
Android software including Android software modifed/developed for Ara is provided under the
Apache 2.0 license. Except for the preservation of the copyright notice and disclaimer, this
license allows the user of the software the freedom to use the software for any purpose, to
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
1.2.3. Linux
The Android OS is built on the Linux kernel. The Linux kernel and its derived works, including
kernel drivers, are distributed under the terms of the GNU General Public License, version 2.
1.2.4. Other IP
To the extent that you utilize intellectual property from other sources, you are responsible for
obtaining approved licenses to implement and market their modules.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Module Modules are the building blocks of an Ara phone. They are the hardware
analogue to software apps. These are physical components that
implement various phone functions. There are currently two major classes
of modules: Front modules, which make up the front of the phone and
generally provide user interaction or interface afordance such as the
display, speaker, microphone, etc., and rear modules, which provide the
bulk of the phone’s back-end (non-user facing) functionality. Front
modules reach across the entire width of a particular endoskeleton frame,
while rear modules come in three standard sizes (1x1, 1x2, and 2x2) and
can ft into multiple frame sizes. (See Figure 2.3)
Endoskeleton (Endo) The Ara endoskeleton (or “endo”) is the frame and backplane of the
device, determining the size and layout of the phone. Ara modules slide in
and attach to the endo’s slots, which has a backplane to electrically and
logically connect modules together. There are currently three endo size
variants: Mini, Medium, and Large, with varying rib confgurations for
each. Note that the Large endo variant and respective modules will be
defned in a future MDK release. Note also that the MDK only details the
specifcation of the endo to the extent that it is necessary for module
developers to develop modules. In the interest of maintaining the integrity
of the Ara platform specifcation, third-party endo development is not
permitted.
Spine (Endo Spine) A singular vertical feature that bisects the rear of the endo and forms part
of the module slots. (See Figures 2.1 and 2.2)
Rib (Endo Rib) Horizontal features located either in the front or the rear of the endo and
forms part of the module slots. Note that the rib confguration shown in
Figures 2.1 and 2.2 is an instance of a rib arrangement and not the only
possible arrangement. (See Figure 2.4)
Top The orientation of the primary display module determines the “top” of the
phone. The top of the phone is defned as the direction in which the
volume buttons afxed to the display module are biased. (See Figure 2.2)
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Interface Block The interface block is the area on the endo and the modules where the
electrical power pins and capacitive data pads are located.
Electro-Permanent Rear modules attach and secure themselves to the endo with electro-
Magnets (EPM) permanent magnets (EPM) directly, whereas front modules utilize EPM-
actuated latches or pins for attachment to the endo.
Module Shell The module shell is a user-replaceable cover for Ara modules that can be
aesthetically customized and is 3D printed as part of the Ara fulfllment
process. With a few exceptions as noted in the MDK, Ara modules should
nominally support user serviceable module shells.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
As shown in Figure 2.3, a Medium endo variant is composed of a 3x6 parceled grid while the
Mini and Large variants are 2x5 and 4x7 (TBD) respectively. Furthermore, the following design
rules govern the placement of the spine and ribs on the rear of the endo:
The application of these design rules results in a discrete set of possible endo confgurations
for each size variant. Figure 2.4 shows the valid set of rear endo confgurations for the Medium
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
The Ara parceling scheme and endo design rules enable the three rear modules to be used
across multiple endo sizes. A 1x2 module can be used on all three endo size variants, while a
2x2 module can be used on the Large and Medium endo variants, and a 1x1 module can be
used on the Medium and Mini endo variants. Note also that a 1x2 module can be inserted into
an endo either in the vertical or horizontal orientation.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Replaceable module shells are a unique feature of the Ara architecture. They allow users to
leverage consumer-grade, full-color 3D printing to aesthetically customize their Ara phone
before purchase, and if desired, to replace each module shell any time thereafter.
Figure 2.5 also shows the locations of the interface blocks for each module. Note that 2x2
modules may support an optional second interfaces block for increased power and data
utilization.
In the current prototype platform, due to the use of FPGAs for hosting the network stack, it is
presently infeasible to confgure a 1x1 module. Furthermore, due to limitation on the number
of network switch ports, modules can only support a single interface block per module, i.e.,
2x2 modules do NOT support the second optional interface block.
● Vertical spines are not allowed - all modules must fll the complete horizontal width
● A maximum of 2 ribs are allowed
● Only a single rib is allowed in each of the upper or lower halves
The parceling scheme for the front endo results in modules that are proportionally sized for
each endo size variant. Figure 2.6 shows the valid set of front endo confgurations for each size
variant, labeled A through L. Front modules for the Large endo variant will be formalized in a
future MDK release.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
1. A softer form without sharp lines and edges is simple, iconic, and visually easy to
understand
2. The shape enables modules to easily slide into a module slot
3. The form of the module is one that is friendly to hold and enjoyable to handle
The design language can be articulated as a set of geometric and color, material, fnish (CMF)
guidelines. Table 2.2 summarizes the geometric guidelines. CMF guidelines will be provided in
a future release.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
The module base must be a single piece of machined 6061 aluminum. Except for cutouts
needed for external interfaces (e.g., USB connector), the external dimensions of the module
base must conform to the shape defned by the CAD model and drawings provided in the
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
The PCB contains the circuitry for the module, including the endo interface functionality, as well
as the custom functionality of the module. Any non-electronic components that are part of the
module (e.g., batteries, sensors) must either mount to or in place of the PCB. Table 3.1
provides maximum dimensions available for rear module PCBs. PCBs smaller than these
dimensions are allowed. Note that interface block(s) and EPM(s) (and driver circuits) will take
up some of the available PCB areas. The PCB must mount to the module base.
1x1 18 mm x 18 mm (TBD)
Table 3.3 provides the approximate areas available in the prototype module PCBs for custom
module circuitry. The PCB contains prototype EPM driver circuits and an FPGA to handle
inter-module communications. Figure 3.2 shows a rendering of the 1x2 module template
PCB, which includes the set of circuits and components needed by the prototype. Due to the
PCB area taken up by these prototype circuits, there is insufcient space to support custom
module circuitry in the 1x1 module. More PCB area is expected in the objective system as
functions in the FPGA and EPM driver circuits are migrated to custom ASICs with smaller
footprints.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
A safety shield is necessary to prevent users from making unintentional contact with sensitive
components on the PCB while changing module shells. The safety shield also acts as a
Faraday cage to protect modules from potential interference and ensure a uniform RF
environment for modules which are intentional RF emitters. The safety shield must be made of
nickel-plated steel or a functionally and aesthetically similar metal and securely mount to the
module base.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Safety Shield 0.26 mm Includes clearance above safety shield; safety shield is
0.18 mm thick
The module template EDA and output fles include the prototype EPM driver circuit and
FPGA that handles module communications and other system-level functions. The FPGA
provides tunneling of several interface protocols that module developers can use to
communicate with the TI OMAP 4460 Application Processor (AP) in the AP module or on the
AP development board. The Network Stack section of this document details these protocols.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
B (Mini) 45 mm x 20 mm TBD
C (Mini) 45 mm x 91 mm TBD
D (Mini) 45 mm x 68 mm TBD
E (Mini) 45 mm x 68 mm TBD
F (Mini) 45 mm x 46 mm TBD
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Figure 3.3 illustrates the rules for positioning text and icons in the module label in relation to
the interface block. If a module has multiple interface blocks, the module label must be
positioned in relation to the top most interface block. Positioning of the module identifcation
must fall 2 mm under the interface block, center aligned with the interface block. Module
identifcation text must use 4 pt Helvetica Condensed font. Positioning of the regulatory
markings must be be 1 mm above the interface block. Regulatory identifcation text must be
3.5 pt Helvetica Condensed font.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Whenever modules exceed the standard envelope, the exceedance should conform to the Ara
design language specifcation (in Section 2).
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Figure 3.7 demonstrates a compliant custom module shell for the prototype Thermal Imager
Module. The shell has a raised opening for the lens. Table 3.11 provides relative paths to
design artifacts for the custom shell.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
3.2. Connectors
The following subsections defne the two connectors that are required in all Ara modules:
Interface blocks (for data and power to exchange between modules and the endo) and EPMs
(to keep the modules mechanically attached in the X direction). A standard antenna connector
will be specifed for modules that require antennas in a future MDK release.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
1 +BATT Power
10 GND Ground
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Data pads must be made from ½ ounce copper on 0.5 mm FR4 2-layer PCB. Each data pad is
approximately 2.8 mm square (module template EDA fles detail the exact shape and
dimensions). Vias on the data pads must be flled and tented; black solder mask must be
applied to cover the whole interface block.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
The prototype interface block uses 10 MillMax 0965-0-15-20-80-14-11-0 spring pins and a
laser-etched plastic cover mounted on top of the spring pins and PCB to provide a seamless
cover over the interface block cutouts on the module base.
The prototype interface block supports a single LVDS data lane with bi-directional data and
clock diferential pairs. Figure 3.9 and Table 3.13 details the pinouts of the prototype
interface block.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
1 +BATT Power
10 GND Ground
EPMs in the attach state provide sufcient magnetic force to secure modules into their slots on
the endo throughout all nominal usage scenarios. EPMs in the release state provide a residual
magnetic force to prevent modules from falling out unless the user deliberately removes the
module from the endo. Users should be able to remove modules with minimal efort when the
EPM is in the release state.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
To generate a switching pulse, the EPM driver circuit discharges a 10 �F capacitor charged
to 28 V across the coil for 22 �s, resulting in a very short but high-current (10 A) pulse. More
than one pulse across each coil is needed to reach full strength. Figure 3.11 below shows the
pulse sequence to switch from the release state to the attach state. In the prototype
reference implementation, L = 22 �s, S=10 ms, and N=4. A sequence with reversed polarity
switches from attach to release states.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Table 3.14 provides relative paths to design artifacts to create prototype rear module EPMs
for 1x2 and 2x2 modules.
There are no known commercial sources for miniature EPMs, such as those needed for Ara
modules. Developers are encouraged to fabricate their own EPMs in accordance with the
specifcation above. The Project Ara team is also working to establish a supply base for
EPMs. In the near term, limited quantities will be available from AQS and NK Labs. Contact
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Table 3.15 provides relative paths to design artifacts to create a prototype ball-spring plunger
assembly.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Ara modules fall into three categories in relation to the power architecture: power consumers,
charging modules, and power storage modules (batteries, fuel cells, etc.). Modules can change
categories throughout their usage life. For instance, a battery module may have a built-in
charging port. Such a module would serve as a power consumer when being charged from the
bus (e.g., if another module’s charging port is active), a charging module when powered
through it’s charging port, and a power storage device when functioning as a regular battery.
Figure 4.1 also illustrates a simplifed view of these three module types. The following
subsections describe each of the types.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Battery modules supply power to the power bus by default. Ideal diode circuits prevent current
fow into a battery, and, therefore the power bus voltage is equal to the highest voltage
presented by any of the batteries connected to the power bus. When a charger module is
connected to the system and ready to deliver charging current to the batteries, it signals the
supervisory controller in the endo (central power management system) via UniPro messaging.
The supervisory controller then signals battery modules to cut of power delivery to the power
bus and activate their charging circuits to draw power from the bus. The supervisory controller
periodically polls battery modules to report self diagnostics such as state of charge and uses
this information in its power management routines.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Figure 5.1 shows 3 types of modules: An AP module with native M-PHY and UniPro support, a
Display Module with a DSI-2 interface, which is a UniPro-compatible MIPI standard (other
UniPro-compatible MIPI standards include CSI-3 for cameras and UFS for mass storage
devices), and generic peripheral modules (a Wi-Fi Module is shown in Figure 5.1). Peripheral
modules without native M-PHY and UniPro support may utilize a General Purpose Bridge ASIC
that converts between UniPro and several standard chip-to-chip protocols including SDIO,
USB HSIC, UART, I2C, I2S, and GPIO (see M-PHY reference implementation section for details
on the General Purpose Bridge ASIC). Up to 4 M-PHY lanes per module are available
depending on the number of interface blocks (2 M-PHY lanes per interface block).
The modules in Figure 5.1 connects to a 14-port UniPro switch in the endo over a contactless
capacitive interface to be described in the subsequent section. A supervisory controller in the
endo also connects to the UniPro switch on UniPro CPort 0.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Figure 5.2 describes an intermediate solution between the current prototype system and the
objective vision. This architecture adds a UniPro AP/Display/Camera Bridge ASIC (AP Bridge
for short) to convert between high-speed and high-bandwidth device interfaces in AP, display,
and camera devices to UniPro, enabling a less efcient but more near-term solution. The M-
PHY reference implementation section provides more details on the AP Bridge ASIC.
The module templates in the Mechanical section of the MDK describe the FPGA and
associated circuitry to instantiate a module that can communicate over one of the provided
tunneled protocols.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Layers 5-7 UniPro class driver or Bridge ASIC and custom userspace driver
The prototype network stack difers from the objective system is several aspects. Layer 1 is a
standard LVDS implementation and in Layers 2-4, UniPro is implemented but is hidden from
the module point of view. In place of native UniPro, the prototype tunnels several common
chip-to-chip interfaces including DSI, I2C, I2S, GPIO, and SDIO through a custom FPGA
provided in the prototype module template. The Software section describes Android features
that expose these interfaces to higher layers of the stack.
Layers 5-7 Android platform with support for prototype FPGAs interfaces
Layers 2-4 DSI, I2C, I2S, SDIO, DSI, and GPIO tunneled over UniPro
Layer 1 LVDS
5.2.1. Layer 1
Layer 1 includes the capacitive media converter and M-PHY.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Figure 5.4 presents a high-level view of the capacitive media converter. A microstrip structure
on the bottom layers of the module PCB couples the data signal to a corresponding structure
in the endoskeleton. Coupling occurs both by capacitance, at high frequencies, and by mutual
inductance, at lower frequencies. The channel is high-pass. To allow low-speed data
transmission, the DC level of the signal is restored in the receiver by a hysteresis amplifer.
The capacitive media converter will operate over the 0.1 mm (+/- 0.05 mm) air-gap between the
module and endo. It will support all M-PHY transmission rates and modes implemented by the
Ara network (see M-PHY specifcations section). A detailed specifcation containing electrical
requirements for the transmitter and receiver, and the geometric tolerances for the microstrip
coupling network, will be released in a future version of the MDK.
Programmable attributes of the M-PHY standard have not been fully specifed for the Ara
platform. The current plan is to support all three High Speed GEARs up to HS-GEAR 3 (at
3A/3B Bandwidth and 4.99/5.82 Gbps per lane). Pulse Width Modulation (PWM) will be
supported only up to PWM-GEAR4 (at 1/2/3/4 Bandwidth and 9/18/36/72 Mbps per lane).
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
5.2.2. Layers 2, 3, 4
5.2.2.1. Layers 2, 3, 4 MIPI UniPro - Specifcation
The Ara network stack uses MIPI UniPro (V1.6 6-August-2013) at the data link, transport, and
network layers. UniPro is designed specifcally for mobile applications and enables a
lightweight, low-latency packet-switched network between modules on an Ara phone. A
UniPro switch in the endo routes packets between modules and provides quality of service
guarantees to system-level functions and modules.
The UniPro data link layer (Layer 2) defnes 2 trafc classes: TC0 and TC1. TC1 data frames are
sent before TC0. Data packets from all modules use TC0 while system-level interrupts use
TC1. A credit based fow control mechanism enables receivers to tell the transmitter how much
bufer space is available and pause the transmission to avoid a receive bufer overfow. An
incorrect frame checksum at Layer 2 triggers an automatic retransmission.
The UniPro network layer (Layer 3) addressing scheme is tied to the interface blocks on the
endo. A unique identifcation number is assigned to each interface block on the endo frame.
The interface block ID is assigned by ISO convention, starting from the rear of the endo, from
the left and top, moving in the counterclockwise direction, and ending at the front of the endo.
Since the interface block locations are the same regardless of rib placement, they can be
statically assigned. The result is shown in Figure 5.5.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
The UniPro transport layer (Layer 4) handles connections between modules using logical data
streams. UniPro uses CPort identifers, which are equivalent to port numbers used in TCP or
UDP. A pair of CPorts, one on each of two modules, can form a bi-directional connection. Each
module may have multiple CPorts, which enables a module to simultaneously connect and
communicate with multiple modules on an Ara device.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
5.2.3. Layers 5+
5.2.3.1. Layers 5+ - Specifcation
Figure 5.6 shows the protocols at Layer 5 and above for two classes of devices. The frst class
of devices has native UniPro support. These devices will use class drivers built on the UniPro
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Devices without native UniPro support will utilize a General Purpose (GP) Bridge ASIC to
communicate over the UniPro network. A remote host controller (RHC) in the GP Bridge ASIC
will drive communications with devices over their native interface such as I2C or HSIC. Layer 5
commands and arguments will be sent over the network as UniPro packets encapsulating
remote procedure calls. The Adroid services and Hardware Abstraction Libraries (HALs)
communicate with userspace drivers with the protocols’ native commands such as i2c_rdwr for
I2C and USB Request Blocks (URB) for HSIC. On the AP side, these commands and data will
be encapsulated as UniPro packets in the AP Bridge ASIC and transferred over the UniPro
network to the endpoint. In the GP Bridge ASIC, these UniPro packets are unpacked and
delivered as remote procedure calls to the remote host controller, which drives the native
interface.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
AP Bridge 2-bi-directional MIPI M-PHY 2 MIPI CSI-2 links (4 D-PHY lanes Power: TBD
v3.0 Type-1 M-MPORTs with @ 1Gbps/lane) Size: TBD
maximum speed at HS-G3b 2 MIPI DSI links (4 D-PHY @ Pin-count: TBD
mode (5.8 Gbps/lane, 11.6 1Gbps/lane)
Gbps/M-PORT) and capacitive USB HSIC v1.0 host
media converter I2C Master with normal, fast, and
fast mode plus
I2S audio with max 48 kHz stereo
10+ GPIO lines
EPM control lines
GP Bridge 2-bi-directional MIPI M-PHY USB HSIC v1.0 host Power: TBD
v3.0 Type-1 M-MPORTs with SDIO v2 host controller Size: TBD
maximum speed at HS-G3b SPI Master Pin-count: TBD
mode (5.8 Gbps/lane, 11.6 I2C Master with normal, fast, and
Gbps/M-PORT) and capacitive fast mode plus
media converter I2S audio with max 48 kHz stereo
2 UARTs
10+ GPIO lines
EPM Control lines
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
A future release of the MDK will be accompanied by a set of device class defnitions, UniPro-
based communication protocols, and associated kernel drivers. Devices without in-kernel
device class drivers are unlikely to have native UniPro interfaces, and will require UniPro bridge
chips as shown in Figure 5.2 in the Network section to convert between their native interfaces
and UniPro. These devices will communicate with Android through a UniPro Bridge chip driver
in the kernel and a developer-supplied userspace driver. Figure 6.1 shows the software
interfaces and interactions for modules with and without existing in-kernel device class drivers.
The UniPro Bridge ASIC drivers will allow a module device without native UniPro interface or
in-kernel device driver to communicate with Android through the Linux driver core and a
developer-supplied userspace driver. The design of this interface is infuenced by the
Filesystem in Userspace (FUSE) project.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Example confguration fles are available for various existing devices supported in publicly
available Android Open Source Project releases.
● Audio: device/samsung/tuna/audio_effects.conf,
device/samsung/tuna/audio/audio_policy.conf
● System properties: device/samsung/toro/system.prop
● System initialization: device/samsung/tuna/init.tuna.rc
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
These applications are also available as zipped and tarball fles relative to MDK fle at:
ReferenceMaterials\1x2\PrototypeThermalImagerModule\Software and
ReferenceMaterials\1x2\PrototypePulseOximeterModule\Software.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Modules communicating over I2C that require additional kernel drivers (e.g. touchscreens)
are not covered by this case. For such cases, module developers should either use an
existing driver in the kernel source tree or provide their own.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
The detect signals are used to communicate to a module and the endo when a module is
inserted or removed. Power consuming modules naturally lose power when removed from the
endo, so they automatically shut of. Modules with batteries must place themselves in a
powered-down standby state when they lose the detect signal from the endo.
An Ara phone can power itself on and of by pressing buttons on a module. The wake signals
are used to bring the phone out of a low-power standby state. The WAKE_TX signal is sent
from a module to the supervisory controller when the power button is pressed. This brings the
supervisory controller out of standby state, and the supervisory controller, in turn, sends
WAKE_RX signals to each of the installed modules to turn them on.
The detect and wake signals are out-of-band signals superimposed onto the data lines of the
UniPro network.
The prototype FPGA implements module detect and wake signals needed to communicate
with the supervisory controller. These signals are transmitted as DC ofsets onto the
diferential signals used for UniPro data communications, and are recovered with high input
impedance bufers before the signals are AC coupled to their diferential receivers.
The EDA fles and schematics in the module templates details pinouts and signals from the
FPGA for detect and wake signaling.
7.2. Enumeration
Enumeration allows the phone to identify and determine the capability of a module when it is
plugged into the endo. For example, a Display Module will provide its vendor/manufacturer
name, device class indicating the type of device driver it needs, screen resolution, and other
performance identifer needed to operate the module. The enumeration process uses UniPro
messaging.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Once triggered by the user, the supervisory controller issues EPM control messages to the
UniPro Bridge ASIC to activate the EPM driver circuits.
Users control the EPMs on the prototype with an EPM application located at
packages/apps/araepm relative to the Android source checkout’s root directory
The prototype FPGA includes an EPM core and driver circuits to generate microsecond-
precise pulses to control the EPM(s).
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Charger 0.5 W
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
8.5. Vibration
8.5.1. Vibration - Specifcation
Modules must be able to survive typical vibration loads. A typical qualifcation for mobile
devices involves 5 minutes of shaking in each orthogonal axis, in each direction at 30 Hz and a
displacement of 0.06 in.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
10.1. US Regulations
The following subsections provides some general guidance on radio frequency (RF), medical
device, and carrier certifcation requirements in the US.
10.1.1. US RF Certifcation
The Federal Communication Commission (FCC) regulates RF-emitting devices in the US.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.
Copyright © 2014 Google Inc. All rights reserved. Your use of this Ara Module Developers Kit (MDK) is expressly
subject to the terms of the MDK License Agreement found at htp://projectara.com/mdk-license.txt.