Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 1 of 107
January 8, 2015
Page 2 of 107
throughout the document. Heading titles also mark sections that contain reference
implementation material.
Known vendors are provided for various components which are deemed scarce. These
sections are highlighted in purple. Google in no way endorses these vendors.
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 speci;cation. Consequently, some elements of the prototype speci;cations and
reference implementations will diGer from the objective system. Blue boxes like this one
denote distinctions between the current prototype platform and the objective one throughout
the document.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 3 of 107
Contributors
The following individuals made signi;cant contributions to the development of the MDK.
Google
Elwin Ong (principal author), Paul Eremenko, David Fishman, Jason Chua,
Mark Rich, Greg Kielian, Adam Holman, Roshni Srinivasan, Anil
Rachakonda, Srinivas Nori
NK Labs
Seth Newburg, Ara Knaian, Marisa Bober, Dave McCoy, Charles Mycroft
Hannum, Boyan Kurtovich, Shahriar Khushrushahi, Nan-Wei Gong, Chris
Wardman, Nate MacFadden
LeafLabs
Metamorph Software
X5 Systems
Derek Linden
Toshiba
Mixel
Ashraf Takla
Quanta
Dexter Yeh, Venney Lin, Hans Chang, Barry Tsao, Suya Hou, Rigii Ni,
Sam Kuo, Alens Lin, Sunny Tsai
Opersys
Karim Yaghmour
Linux Solutions
Greg Kroah-Hartman
Linaro
George Grey, Rob Herring, John Stultz, Khasim Mohammed, Vishal Bhoj,
Alex Elder, Glen Valante, Matt Porter, Satish Patel, Viresh Kumar, Bin Chen
BayLibre
NewOldBits
Jean Pihet
Oxford Systems
Olin Sibert
Foxconn Interconnect
Technology (FIT)
IDT Systems
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 4 of 107
Support
The Project Ara team cannot, as a general matter, provide individualized support to module
developers. If you have a comment on the MDK, have found a bug, or would like to provide
feedback, you can reach the Project Ara team at ara-dev@google.com.
Developer documentation will be maintained at http://projectara.com/mdk, including a set of
Frequently Asked Questions (FAQs) which will be updated periodically.
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 are available by submitting a
request at http://www.projectara.com/dev-boards/.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 5 of 107
Revision History
Release 0.10 (alpha) - April 9, 2014 - Initial public release
Release 0.11 (alpha) - May 28, 2014
Fixed typos in document and reference materials.
Updated power speci;cations; added ;gures to illustrate multiple battery con;gurations
and battery charging events.
Fixed prototype ambient temperature and humidity speci;cations.
Added Prototype Endo Medium Frame CAD ;les to reference materials.
Added Prototype 1x2 and 2x2 Module Shell CAD ;les to reference materials.
Added Prototype EPM build instructions to reference materials.
Added contactless media converter prototype reference implementation.
Separated known vendor sections from reference implementations.
Release 0.2 (alpha) - January 8, 2015
Updated all prototype implementations sections to reQect Spiral 2 design.
Consolidated CMF speci;cations and reference implementation to Section 2.
Updated Layer 1 contactless media converter (CMC) from capacitive to inductive and
included draft CMC speci;cation as a separate document in reference materials.
Updated FPGA UniPro implementation with Toshiba HS and GP Bridge ASICs.
Updated Layer 5+ network, introduced Greybus Application Protocol, and included
Greybus speci;cation in a separate document in the reference materials.
Updated objective software architecture and Spiral 2 prototype reference
implementation.
Updated environmental section to include all MDK compliance speci;cations.
Added initial description of Ara Module Marketplace requirements.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 6 of 107
Table of Contents
1. Licensing
1.1.
The Ara MDK License
1.2.
External Licenses
1.2.1.
MIPI
1.2.2.
Android
1.2.3.
Linux
1.2.4.
Other IP
1.2.5.
Prototype Platform External Licenses
1.2.5.1.
I2C
1.2.5.2.
I2S
1.2.5.3.
SDIO
1.2.5.4.
High-Speed Inter-Chip USB
1.2.5.5.
DSI, CSI-2
2. Industrial Design
2.1.
De;nitions
2.2.
Parceling Schemes
2.2.1.
Rear Parceling Scheme
2.2.2.
Front Parceling Scheme
2.3.
Design Language
2.3.1.
Geometric Design Language - Speci;cation
2.3.2.
Geometric Design Language - Reference Implementation
2.3.3.
Color Material Finish - Speci;cation
2.3.4.
Color Material Finish - Prototype Reference Implementation
3. Mechanical and Layout
3.1.
Module Geometry and Assemblies
3.1.1.
Rear Module Sub-Assemblies
3.1.1.1.
Rear Module Sub-Assemblies - Speci;cation
3.1.1.2.
Rear Module Sub-assemblies - Prototype Reference
Implementation
3.1.1.2.1. Rear Module Templates - Prototype Reference Implementation
3.1.1.2.2. 1x2 Camera Module - Prototype Reference Implementation
3.1.1.2.3. 1x2 Speaker Module - Prototype Reference Implementation
3.1.1.2.4. 2x2 Marvell AP Module - Prototype Reference Implementation
3.1.1.2.5. 2x2 NVidia AP Module - Prototype Reference Implementation
3.1.1.3.
Hiperco-50 - Known Vendors
3.1.2.
Front Module Sub-assemblies
3.1.2.1.
Front Module Sub-assemblies - Speci;cation
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 7 of 107
3.1.2.2.
Front Module Sub-assemblies - Prototype Reference
Implementation
3.1.2.2.1. Receiver Module - Prototype Reference Implementation
3.1.2.2.2. Display Module - Prototype Reference Implementation
3.1.3.
Module Label
3.1.3.1.
Module Label - Speci;cation
3.1.3.2.
Module Label - Prototype Reference Implementation
3.1.4.
Envelope Violation Limitations
3.1.4.1.
Envelope Violation - Speci;cation
3.1.4.2.
Envelope Violation - Reference Implementation
3.1.4.3.
Envelope Violation - Prototype Reference Implementation
3.1.4.4.
1x2 Pollution Sensor Module - Prototype Reference
Implementation
3.2.
Connectors
3.2.1.
Interface Block
3.2.1.1.
Interface Block - Speci;cation
3.2.1.2.
Interface Block - Prototype Reference Implementation
3.2.1.3.
Front Module Attachment - Speci;cation
3.2.1.4.
Front Module Attachment - Prototype Reference Implementation
3.3.
Antennas
3.3.1.
Antenna in Module - Speci;cation
3.3.2.
1x2 WiFi/BT Module with Antenna - Prototype Reference Implementation
3.3.3.
Antenna Interface - Speci;cation
3.3.4.
Antenna Interface - Prototype Reference Implementation
3.3.4.1.
1x2 3G Cellular Module - Prototype Reference Implementation
3.3.4.2.
1x1 Antenna Module - Prototype Reference Implementation
4. Power
4.1.
Power Consumer Module - Speci;cation
4.2.
Power Consumer Module - Prototype Reference Implementation
4.3.
Charger Module - Speci;cation
4.4.
USB Charger Module - Prototype Reference Implementation
4.5.
Power Storage Module - Speci;cation
4.6.
Battery Modules - Prototype Reference Implementation
5. Network Stack
5.1.
Module Communication Physical View
5.2.
Network Stack
5.2.1.
Layer 1
5.2.1.1.
Layer 1 Contactless Media Converter - Speci;cation
5.2.1.2.
Layer 1 Contactless Media Converter - Reference Implementation
5.2.1.3.
Layer 1 Contactless Media Converter - Prototype Reference
Implementation
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 8 of 107
5.2.1.4.
Layer 1 MIPI M-PHY - Speci;cation
5.2.1.5.
Layer 1 MIPI M-PHY - Reference Implementation
5.2.1.6.
Layer 1 MIPI M-PHY - Known Vendor(s)
5.2.1.7.
Layer 1 M-PHY - Prototype Reference Implementation
5.2.1.8.
Layer 1 D-PHY - Prototype Speci;cation
5.2.1.9.
Layer 1 D-PHY - Prototype Reference Implementation
5.2.2.
Layers 1.5-4
5.2.2.1.
Layers 1.5-4 MIPI UniPro - Speci;cation
5.2.2.2.
Layers 1.5-4 UniPro - Reference Implementation
5.2.2.3.
Layers 1.5-4 UniPro - Known Vendor(s)
5.2.2.4.
Layers 1.5-4 CSI-2 - Prototype Speci;cation
5.2.2.5.
Layers 1.5-4 CSI-2 - Prototype Reference Implementation
5.2.2.6.
Layers 1.5-4 DSI - Prototype Speci;cation
5.2.2.7.
Layers 1.5-4 DSI - Prototype Reference Implementation
5.2.2.8.
Layers 1.5-4 Bridged Interfaces
5.2.2.8.1. HSIC Bridge - Prototype Speci;cation
5.2.2.8.2. HSIC Bridge - Prototype Reference Implementation
5.2.2.8.3. I2C Bridge - Prototype Speci;cation
5.2.2.8.4. I2C Bridge - Prototype Reference Implementation
5.2.2.8.5. I2S Bridge - Prototype Speci;cation
5.2.2.8.6. I2S Bridge - Prototype Reference Implementation
5.2.2.8.7. SDIO Bridge - Prototype Speci;cation
5.2.2.8.8. SDIO Bridge - Prototype Reference Implementation
5.2.2.8.9. GPIO Bridge - Prototype Speci;cation
5.2.2.8.10. GPIO Bridge - Prototype Reference Implementation
5.2.2.8.11. UART Bridge - Prototype Speci;cation
5.2.2.8.12. UART Bridge - Prototype Reference Implementation
5.2.2.8.13. PWM Bridge - Prototype Speci;cation
5.2.2.8.14. PWM Bridge - Prototype Reference Implementation
5.2.3.
Layers 5+
5.2.3.1.
Layers 5+ - Greybus Speci;cation
5.2.3.2.
Layers 5+ - Greybus Prototype Reference Implementation
5.2.4.
Network Stack Hardware - Known Vendor(s)
5.2.5.
Network Stack Prototype Hardware - Known Vendor(s)
6. Software Stack
6.1.
Kernel
6.1.1.
Kernel - Speci;cation
6.1.2.
Kernel - Reference Implementation
6.1.3.
Kernel - Prototype Reference Implementation
6.2.
Android
6.2.1.
Android HALs - Prototype Reference Implementation
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 9 of 107
6.2.2.
Android Application - Speci;cation
6.2.3.
Android Application - Reference Implementation
6.2.4.
Android Application - Prototype Reference Implementation
6.3.
Prototype Development Use cases
6.3.1.
CSI-2/DSI Devices
6.3.2.
I2C, UART, GPIO, PWM Devices
6.3.3.
USB, SDIO, I2S Devices
7. System-Level Functions
7.1.
Module Wake/Detect
7.1.1.
Module Wake/Detect Electrical - Speci;cation
7.1.2.
Module Wake/Detect Electrical - Prototype Reference Implementation
7.2.
Module Initialization/Hotplug Event
7.2.1.
Module Information - Speci;cation
7.2.2.
Module Information - Prototype Reference Implementation
7.3.
Active Thermal Management
7.4.
Power Management
8. Module Compliance
8.1.
Environmental Compliance
8.1.1.
Thermal Loads
8.1.1.1.
Thermal Loads - Speci;cation
8.1.1.2.
Thermal Loads - Prototype Speci;cation
8.1.1.3.
Thermal Loads - Prototype Reference Implementation
8.1.2.
Ambient Temperature and Humidity
8.1.2.1.
Ambient Temperature and Humidity - Speci;cation
8.1.2.2.
Ambient Temperature and Humidity - Prototype Reference
Implementation
8.1.3.
Electrostatic Discharge (ESD)
8.1.3.1.
ESD - Speci;cation
8.1.3.2.
ESD - Prototype Reference Implementation
8.1.4.
Shock
8.1.4.1.
Shock - Speci;cation
8.1.4.2.
Shock - Prototype Reference Implementation
8.1.5.
Vibration
8.1.5.1.
Vibration - Speci;cation
8.1.5.2.
Vibration - Prototype Reference Implementation
8.2.
Mechanical Compliance
8.2.1.
Mechanical Fit
8.2.1.1.
Mechanical Fit - Speci;cations
8.2.1.2.
Mechanical Fit - Prototype Reference Implementation
8.2.2.
EPM Hold
8.2.2.1.
EPM Hold - Speci;cations
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 10 of 107
8.2.2.2.
EPM Hold - Prototype Speci;cations
8.2.2.3.
EPM Hold - Prototype Reference Implementation
8.3.
Power Compliance
8.3.1.
Voltage Sweep
8.3.1.1.
Voltage Sweep - Speci;cations
8.3.1.2.
Power Sweep - Prototype Reference Implementation
8.3.2.
Power Input/Output Noise
8.3.2.1.
Power Input/Output Noise - Speci;cations
8.3.2.2.
Power Input/Output Noise - Prototype Reference Implementation
8.3.3.
Power Draw and Discharge
8.3.3.1.
Power Draw and Discharge - Speci;cations
8.3.3.2.
Power Draw - Prototype Reference Implementation
8.3.4.
Power Storage Capacity
8.3.4.1.
Power Capacity - Speci;cations
8.3.4.2.
Power Storage Capacity - Prototype Reference Implementation
8.4.
Network Compliance
8.4.1.
M-PHY Compliance
8.4.1.1.
M-PHY Compliance - Speci;cations
8.4.1.2.
M-PHY Compliance - Prototype Reference Implementation
8.4.2.
UniPro Compliance
8.4.2.1.
UniPro Compliance - Speci;cations
8.4.2.2.
UniPro Compliance - Prototype Reference Implementation
8.4.3.
Layer 5+ Greybus Compliance
8.4.3.1.
Layer 5+ Greybus Compliance - Speci;cations
8.4.3.2.
Layer 5+ Greybus Compliance - Prototype Reference
Implementation
8.5.
Software Compliance
8.5.1.
Kernel Compliance
8.5.1.1.
Kernel Compliance - Speci;cations
8.5.1.2.
Kernel Compliance - Prototype Reference Implementation
8.5.2.
Android Compliance
8.5.2.1.
Android Compliance - Speci;cations
8.5.2.2.
Android Compliance - Prototype Reference Implementation
8.6.
System-Level Functions Compliance
8.6.1.
Wake/Detect Compliance
8.6.1.1.
Wake/Detect Compliance - Speci;cations
8.6.1.2.
Wake/Detect Compliance - Prototype Reference Implementation
8.6.2.
Hotplug Compliance
8.6.2.1.
Hotplug Compliance - Speci;cations
8.6.2.2.
Hotplug Compliance - Prototype Reference Implementation
9. Ara Module Marketplace
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 11 of 107
9.1.
Ara Developer Console
9.1.1.
Signup and Module Submission
9.1.2.
Module Merchandising Data
9.1.3.
Sales Metrics and Performance Tracking
9.1.4.
Payments Disbursement
9.2.
Logistics and Distribution
9.3.
Module Identi;ers
10. Regulatory Compliance and Carrier Certi;cation
10.1. US Regulatory Compliance and Carrier Certi;cation
10.1.1.
US RF Regulatory Authorization
10.1.1.1.
FCC Equipment Authorization - Speci;cation
10.1.1.2.
FCC Equipment Authorization - Reference Implementation
10.1.1.2.1. FCC Equipment Authorization - Reference Implementation for
Hobbyist/Maker
10.1.1.2.2. FCC Equipment Authorization - Prototype/Experimental License
10.1.2.
US Medical Device Regulation
10.1.2.1.
FDA Regulation - Speci;cation
10.1.2.2.
Pulse Oximeter Module - FDA Regulation - Reference
Implementation
10.1.2.3.
FDA Regulation - Prototype Reference Implementation
10.1.3.
Carrier Terminal Acceptance
10.2. International Certi;cation
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 12 of 107
List of Figures
Figure 2.1 - Ara Phone Built Based on Medium Endo
Figure 2.2 - Ara Endo (Medium Variant)
Figure 2.3 - Ara Rear Parceling Scheme for Jumbo, Medium, and Mini Con;gurations
Figure 2.4 - Valid Medium Endo Con;gurations (Rear)
Figure 2.5 - Rear Modules
Figure 2.6 - Valid Endo Con;gurations (Front)
Figure 3.1 - Rear Module Sub-assemblies
Figure 3.2 - Prototype Module Base
Figure 3.3 - Prototype 1x2 PCB
Figure 3.4 - Prototype Shield and Clips
Figure 3.5 - Module Label Speci;cations
Figure 3.6 - Pulse Oximeter Module with Y-Dimension Exceedance
Figure 3.7 - Modules with Z-Dimension Exceedances
Figure 3.8 - Custom Module Shell for Prototype Camera Module
Figure 3.9 - Interface Block with Inductive Pads
Figure 3.10 - Prototype Interface Block Pinout
Figure 3.11 - Closeup View of Front-Module Attachment Assembly
Figure 3.12 - Example of Antenna Pattern on Module Shell
Figure 3.13 - RF Bus in Endo Enables Routing Between Modules on Top and Bottom Halves
Figure 4.1 - Power Architecture
Figure 4.2 - Power Bus Voltage With Multiple Battery Modules
Figure 4.3 - Battery Charging
Figure 5.1 - Module to Module Communication (with Native UniPro and Bridge ASICs)
Figure 5.2 - Prototype Module to Module Communication
Figure 5.3 - Inductive Communication Between PCBs
Figure 5.4 - Contactless Media Converter
Figure 5.5 - Interface Block Unique IDs
Figure 5.6 - Network Stack over Software and Hardware
Figure 5.7 - Prototype Network Stack over Software and Hardware
Figure 6.1 - Software Stack
Figure 6.2 - Prototype Software Stack
Figure 6.3 - Kernel Subsystem Interfaces
Figure 6.4 - Prototype Greybus Subsystem Reference Implementation
Figure 6.5 - Ara Android Stack
Figure 7.1 - Prototype Reference Implementation of Wake/Detect Circuit
Figure 7.2 - Module Initialization Process Sequence Diagram
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 13 of 107
List of Tables
Table 2.1 - Ara De;nitions
Table 2.2 - Design Language Geometric Guidelines
Table 2.3 - Design Language CMF Speci;cations
Table 3.1 - Rear Module Maximum PCB Dimensions
Table 3.2 - Prototype Rear Module Z Dimension Stackup
Table 3.3 - Prototype Rear Module Templates
Table 3.4 - 1x2 Prototype Camera Module Reference Implementation
Table 3.5 - 1x2 Prototype Speaker Module Reference Implementation
Table 3.6 - 2x2 Prototype Marvell AP Module Reference Implementation
Table 3.7 - 2x2 Prototype NVidia AP Module Reference Implementation
Table 3.8 - Hiperco-50 Known Vendors
Table 3.9 - Front Module Outer Dimensions and PCB Dimensions
Table 3.10 - Prototype Front Module Z Dimension Stackup
Table 3.11 - Prototype Receiver Module Reference Implementation
Table 3.12 - Prototype Display Module Reference Implementation
Table 3.13 - Envelope Violation Limits
Table 3.14 - Prototype Pollution Sensor Module Reference Implementation
Table 3.15 - Prototype Interface Block Pinout Descriptions
Table 3.16 - 1x2 Prototype WiFi/BT Module Reference Implementation
Table 3.17 - 1x2 Prototype 3G Cellular Module Reference Implementation
Table 3.18 - 1x1 Prototype Antenna Module Reference Implementation
Table 4.1 - 1x2 Prototype USB Charger Module Reference Implementation
Table 4.2 - 2x2 Prototype Battery Module Reference Implementations
Table 5.1 - Ara Network Stack
Table 5.2 - Prototype Ara Network Stack
Table 5.3 - MIPI M-PHY Known Vendors
Table 5.4 - MIPI UniPro Known Vendors
Table 5.5 - Toshiba UniPro Bridge ASIC Speci;cations
Table 9.1 - Tech Data Package Items (TBD)
Table 9.2 - Module Support Package Items (TBD)
Table 9.3 - Module Merchandising Data
Table 9.4 - Module Identi;cation Numbers
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 14 of 107
Acronyms
These are some of the acronyms that frequently occur in this document.
ABI
AP
Application Processor
API
ASIC
BOM
Bill of Materials
CAD
Computer-Aided Design
CMC
CMF
CSI
DSI
EDA
EPM
Electro-Permanent Magnets
FPGA
GP Bridge
GPIO
GPS
HAL
HS Bridge
HSIC
I2C
I2S
IMS
IP
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 15 of 107
LTE
Long-Term Evolution
LVDS
MDK
MIPI
M-PHY
MSP
OS
Operating System
OSI
PCB
PWM
RC
RHC
RTOS
SDIO
SLVS
STEP
TDP
UFS
UniPro
USB
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 16 of 107
1.
Licensing
This section discusses certain intellectual property licensing considerations for Ara module
developers. This section is a summary and not a replacement or substitute for the MDK
License Agreement which governs licensing of the MDK. This summary should not be
construed as legal advice.
1.1.
The MDK is licensed in accordance with the MDK License Agreement (Jan 7, 2015). The
agreement is meant to provide a permissive license to module developers, while ensuring the
vibrancy and integrity of the Ara developer ecosystem in the long run. One of the more notable
features of the MDK license is that it provides developers, in addition to a development license,
an upfront grant of commercialization rights, conditioned only on developers playing nice
with the rest of the Ara ecosystem. Also noteworthy is that the MDK license does not alter any
of the standard open source software licenses associated with Android or any Ara-speci;c
drivers, apps, etc. that are distributed as part of the MDK. The MDK license does not allow-nor does the MDK speci;cation facilitate--the development or commercialization of Ara
Endoskeletons by third-party developers.
1.2.
External Licenses
Project Ara strives to embrace industry standards where possible. Consequently, the MDK
references numerous external standards and speci;cations. These are available in accordance
with their speci;c license agreements and are neither owned by Google nor part of the MDK.
Below is a brief summary of these external licenses.
1.2.1. MIPI
The MIPI Alliance is an open membership industry consortium that develops interface
speci;cations for mobile devices. Ara modules implement several MIPI speci;cations. At
minimum, modules communicate with the Endo and with other modules using the MIPI M-PHY
and UniPro speci;cations. Depending on the application, some modules may implement
additional MIPI speci;cations such as CSI and DSI. In order to get a hold of the detailed MIPI
speci;cation, 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 modi;ed/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 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 17 of 107
distribute it, to modify it, and to distribute modi;ed versions of the software, under the terms of
the license, without concern for royalties.
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 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 18 of 107
2.
Industrial Design
2.1.
De$nitions
The Ara architecture requires the introduction of several new concepts to the traditional mobile
device lexicon. These terms are de;ned in Table 2.1 below and illustrated in Figures 2.1 and
2.2.
Table 2.1 - Ara De$nitions
Term
De$nition
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 the display,
receiver, microphone, etc., and rear modules, which provide the bulk of
the phones 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
;t 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 Endos slots, which has a backplane to electrically
and logically connect modules together. There are currently three Endo
size variants: Mini, Medium, and Jumbo, with varying rib con;gurations
for each. Note that the MDK only details the speci;cation 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
speci;cation, third-party Endo development is not permitted.
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)
Horizontal features located either in the front or the rear of the Endo and
forms part of the module slots. Note that the rib con;guration 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 Ara platform uses the Android de;ned coordinate system. The
Side-to-Side direction de;nes the X axis. The Top-Bottom direction
de;nes the Y axis. The thickness direction de;nes the Z axis. (See
Figure 2.1)
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 19 of 107
Interface Block
The interface block is the area on the Endo and the modules where the
electrical power pins and contactless data pads are located.
Electro-Permanent
Magnets (EPM)
Module Shell
The module shell is a user-replaceable cover for Ara modules that can
be aesthetically customized as part of the Ara ful;llment process. With a
few exceptions as noted in the MDK, Ara modules should nominally
support user serviceable module shells.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 20 of 107
2.2.
Parceling Schemes
Parceling schemes are rules that determine how and where modules can be placed in the Endo
frame. The front parceling scheme only has a few possible layouts, while the rear parceling
scheme can have many diGerent con;gurations depending on the location of the ribs.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 21 of 107
Figure 2.3 - Ara Rear Parceling Scheme for Jumbo, Medium, and Mini Con$gurations
As shown in Figure 2.3, a Medium Endo variant is composed of a 3x6 parceled grid while the
Mini and Jumbo variants are 2x5 and 4x7 respectively. Furthermore, the following design rules
govern the placement of the spine and ribs on the rear of the Endo:
January 8, 2015
Page 22 of 107
variant. While Google may or may not make every possible Endo variant available, developers
should be mindful that modules should support every variant.
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 Jumbo 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 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 23 of 107
Figure 2.5 shows the front and rear views of rear modules with standard module shells
installed. Note that all rear modules should nominally support user-replaceable module shells.
Module shells attach to rear modules via mechanical snap-;t features built into the module
base and shell itself.
Replaceable module shells are a unique feature of the Ara architecture. They allow users to
aesthetically customize their Ara phone by leveraging injection-molded polycarbonate plastic
and dye sublimation process to create full-color and high-resolution shell designs, and if
desired, to replace module shells 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.
January 8, 2015
Page 24 of 107
Vertical spines are not allowed - all modules must ;ll 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 con;gurations for each
size variant, labeled A through R.
2.3.
Design Language
The design language is a set of design elements used to visually communicate a speci;c
aesthetic. Implementing a consistent design language ensures that every Ara phone has a set
of aesthetically cohesive modules, even though each phone may include modules from
diGerent sources.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 25 of 107
Illustration
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 26 of 107
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 27 of 107
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 28 of 107
CMF Speci$cations
Aluminum Base
Hiperco-50 Inserts
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 29 of 107
3.
This section de;nes mechanical speci;cations and general layout for Ara modules.
3.1.
As described in Section 2, the module shell is not considered part of the module assembly. To
the extent that it may deviate from a standard shell geometry, it will be created in accordance
with a module developers geometric speci;cations, but will include a consumers aesthetic
customizations and is presently envisaged to be manufactured as part of the ful;llment
process (i.e., not by the module developer).
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 30 of 107
The module base must be composed of a piece of machined anodized Aluminum and one or
two pieces of Hiperco-50 inserts (1x1 modules have a single Hiperco-50 insert). Hiperco-50 is
an alloy with enhanced magnetic properties and thus enhanced holding force between
modules and the Endo. The inserts must mount to the sections of the module base that
correspond to the locations of electro-permanent magnets (EPMs) on the Endo. When
activated, EPMs in tandem with the Hiperco-50 inserts should provide suTcient magnetic force
to secure modules into their slots on the Endo throughout all nominal usage scenarios. When
released, EPMs provide a residual magnetic force suTcient to prevent modules from falling out
unless the user deliberately removes a module from the Endo. Users should be able to remove
modules with minimal eGort when the EPM is in the release state. EPMs require no sustained
electrical power in either attach or release states and only a short electrical pulse to transition
between states.
Except for cutouts needed for external interfaces (e.g., USB connector), the external
dimensions of the module base must conform to the shape de;ned by the CAD model and
drawings provided in the reference materials. This requirement ensures the module is
compatible with third-party provided module shells and ;ts snugly into the Endo frame.
Custom milled cavities are allowed in the inside of the module base as long as the structural
integrity of the module base is maintained and can survive module compliance speci;cations,
provided in a later section.
Figure 3.2 shows renders of the prototype 1x2 module base. Due to machining constraints,
prototype module bases include additional thin Aluminum pieces (GM 145 wrought aluminum
alloy) that are laser-welded to the inside of the main Aluminum base. These mounting inserts
provide additional surface area to adhere to the Hiperco-50 inserts.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 31 of 107
The PCBs (interface block PCB and main PCB) contain the circuitry for the module, including
circuits to enable interfaces to the Endo, as well as custom circuitry of the module. Any nonelectronic components that are part of the module (e.g., batteries, sensors) must either mount
to or be in place of the PCB. Table 3.1 provides maximum dimensions available for rear module
PCBs. PCBs smaller than these dimensions are allowed. The main PCB must be securely
mounted to the module base suTciently to survive vibration and shock speci;cations de;ned
in the Module Compliance section. A smaller PCB for the interface block should be soldered to
bottom of the main PCB and must conform to the shape and dimensions in the reference
implementation to ;t Qush with the corresponding cutout in the module base.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 32 of 107
1x1
16.2 mm x 16.5 mm
1x2
16.5 mm x 39.15 mm
2x2
39.5 mm x 39.5 mm
Figure 3.3 shows renders of the 1x2 WiFi/BT Module main PCB and interface block PCB. The
main PCB should include the set of circuits and components needed by a generic prototype
module including a Bridge ASIC or equivalent. The module templates section provides
reference materials including a detailed Bill-of-Materials for the minimal set of components
needed for a module.
The prototype interface block PCB should implement the prototype interface block design
de;ned in a later section. The interface block PCB should be soldered to the main PCB and
adhere to the dimensions de;ned in the CAD models and 2D line drawings in the module
templates section. The interface block PCB should have the same thickness as the module
base to mount completely Qush in the opening of the module base. A 30 m gold plating
must be applied to all 12 interface block contacts.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 33 of 107
A shield is necessary to prevent users from making unintentional contact with sensitive
components on the PCB while changing module shells. The 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 shield must be made of nickel-plated steel or a
functionally and aesthetically similar metal. Cutouts for components that exceed the standard
envelope are allowed (e.g., camera lens). The shield must securely mount to the module base.
Figure 3.4 shows a render of the prototype 1x2 WiFi/BT Module shield and PCB. The shield
is mounted to the PCB with 3 (minimum of 2) SMT-mounted clips (EMI STOP Corp SUL1320A1M). While the clips are not strictly required, they enable developers to remove and
reinstall the shield in order to access PCB components for debugging purposes. The shield
should nominally be installed during module operation and otherwise adhere to the
speci;cations de;ned in the objective system.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 34 of 107
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 35 of 107
3.1.1.2.
Rear Module Sub-assemblies - Prototype Reference Implementation
Table 3.2 provides a vertical stack up of various layers in prototype rear modules including
dimensions available for PCB components.
Table 3.2 - Prototype Rear Module Z Dimension Stack Up
Layer
Thickness
Notes:
Module Shell
0.65 mm
Air Gap
0.1 mm
Thermal insulation
Shield
0.2 mm
Clearance
1.55 mm
PCB
0.6 mm
FR-4 PCB
Insulation/Adhesive
0.05 mm
Module Base/Interface
Block PCB
0.85 mm
4.0 mm
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 36 of 107
Design Artifacts
3.1.1.2.2.
1x2 Camera Module - Prototype Reference Implementation
Table 3.4 provides relative ;le paths to design artifacts to create the prototype Camera
Module in a 1x2 module template.
Table 3.4 - 1x2 Prototype Camera Module Reference Implementation
Module
Design Artifacts
Prototype Camera
Module
3.1.1.2.3.
1x2 Speaker Module - Prototype Reference Implementation
Table 3.5 provides relative ;le paths to design artifacts to create the prototype Speaker
Module in a 1x2 module template.
Table 3.5 - 1x2 Prototype Speaker Module Reference Implementation
Module
Design Artifacts
Prototype Speaker
Module
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 37 of 107
3.1.1.2.4.
2x2 Marvell AP Module - Prototype Reference Implementation
Table 3.6 provides relative ;le paths to design artifacts to create the prototype Marvell AP
Module with GPS in a 2x2 module template. The AP Module incorporates a GPS antenna in
the module shell. See the Antenna section below for details on antenna and antenna
interface speci;cations and reference implementations. The AP module includes a USB
connector to facilitate direct access to the AP for diagnostics and debugging purposes.1 The
USB connector does not provide power.
Table 3.6 - 2x2 Prototype Marvell AP Module Reference Implementation
Module
Design Artifacts
Prototype Marvell AP
Module
3.1.1.2.5.
2x2 NVidia AP Module - Prototype Reference Implementation
Table 3.7 provides relative ;le paths to design artifacts to create the prototype NVidia AP
Module in a 2x2 module template. The AP Module incorporates a GPS antenna in the module
shell. See the Antenna section below for details on antenna and antenna interface
speci;cations and reference implementations. The AP module includes a USB connector to
facilitate direct access to the AP for diagnostics and debugging purposes. The USB
connector does not provide power.
Table 3.7 - 2x2 Prototype NVidia AP Module Reference Implementation
Module
Design Artifacts
Prototype NVidia AP
Module
1In future MDK releases, AP modules may be required to have a USB or another external connection for certain
debug scenarios. This is not a requirement of the current MDK release.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 38 of 107
3.1.1.3.
Hiperco-50 - Known Vendors
Hiperco-50 inserts are available from Foxconn Interconnect Technology (FIT) or in raw form
from vendors listed in Table 3.8.
Table 3.8 - Hiperco-50 Known Vendors
Vendor
Product
Foxconn Interconnect
Carpenter Steel
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 39 of 107
A (Mini)
45 mm x 114 mm
TBD
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
G (Medium)
67.74 mm x 136.87 mm
TBD
H (Medium)
67.74 mm x 14.74 mm
62.2 mm x 9.5 mm
I (Medium)
67.74 mm x 120.74 mm
52.2 mm x 90 mm
J (Medium)
67.74 mm x 104.25 mm
TBD
K (Medium)
67.74 mm x 75.02 mm
TBD
L (Medium)
67.74 mm x 44.81 mm
TBD
M (Jumbo)
TBD
N (Jumbo)
TBD
O (Jumbo)
TBD
P (Jumbo)
TBD
Q (Jumbo)
TBD
R (Jumbo)
TBD
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 40 of 107
3.1.2.2.
Front Module Sub-assemblies - Prototype Reference Implementation
Table 3.10 provides a vertical stack up of various layers in a front module including
dimensions available for PCB components, displays, glass, and other components that are
typically found on the front of a phone.
Table 3.10 - Prototype Front Module Z Dimension Stack Up
Layer
Thickness
Notes:
Module Shell
0.65 mm
Air Gap
0.1 mm
Thermal insulation
Clearance
0.1 mm
Shield
0.15 mm
Clearance
1.7 mm
PCB
0.4 mm
FR-4 PCB
Insulation/Adhesive
0.05 mm
E.g., Glue
Module Base/Interface
Block PCB
0.85 mm
4.0 mm
3.1.2.2.1.
Receiver Module - Prototype Reference Implementation
The current prototype implementation includes two front modules, both for the Medium Endo
variant. There is a Receiver Module (Class H) and a Display Module (Class I). Table 3.11
provides relative ;le paths to design artifacts to create a prototype Receiver Module. In
addition to the receiver speaker, the Receiver module includes a proximity sensor and light
sensor.
Table 3.11 - Prototype Receiver Module Reference Implementation
Component
Design Artifacts
Receiver
Module
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 41 of 107
3.1.2.2.2.
Display Module - Prototype Reference Implementation
Table 3.12 provides relative ;le paths to design artifacts to create a prototype Display Module
with touch interface, microphone, power, and volume buttons.
Table 3.12 - Prototype Display Module Reference Implementation
Component
Design Artifacts
Display
Module
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 42 of 107
3.1.3.2.
Module Label - Prototype Reference Implementation
Module labels are not required for prototypes.
January 8, 2015
Page 43 of 107
use good engineering judgement to determine the stress levels from user levied forces and
torques and ensure exceedances are structured to accommodate common usage scenarios
including scenarios where the module and phone are in the users pocket. Future releases of
the MDK may be more restrictive in exceedance limits based on results of handling and
accelerated lifecycle testing. Modules with dimensional exceedances must have a custom
shield and ensure all electrically active components except antennas and batteries are
encapsulated within.
Table 3.13 - Envelope Violation Limits
Direction
Max Dimension
Notes
45 mm (Mini), 67.02 mm
(Medium), 21.82 mm (1x1,
1x2), 44.82 mm (1x2, 2x2)
20 cm
2.6 cm
Whenever modules exceed the standard envelope, the exceedance should conform to the Ara
design language speci;cation (in Section 2).
3.1.4.2.
Envelope Violation - Reference Implementation
Exceedances may be appropriate and necessary for some applications as demonstrated in
Figure 3.6. Figure 3.6 shows a reQective Pulse Oximeter Module, which measures blood
oxygen saturation. The exceedance in the Y dimension provides a convenient aGordance and
sensor location for a users ;nger.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 44 of 107
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 45 of 107
3.1.4.3.
Envelope Violation - Prototype Reference Implementation
Figure 3.7 shows several examples of modules that exceed the standard envelope. The
exceedances in the Z dimension for the Camera, USB Charger, and Extended Battery
Modules enable each to accommodate components (camera lens unit, charge port, and
battery respectively) with higher thickness requirements than is aGorded in the standard
envelope.
Figure 3.8 demonstrates a compliant custom module shell for the prototype Camera Module.
The shell has a raised opening for the lens. CAD ;les and line drawings of the custom
Camera Module Shell is provided in the reference materials.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 46 of 107
3.1.4.4.
1x2 Pollution Sensor Module - Prototype Reference Implementation
Table 3.14 provides relative ;le paths to design artifacts to create the prototype Pollution
Sensor Module in a 1x2 module template. The Pollution Sensor Module exceeds the
standard envelope but remains within the envelope limits.
Table 3.14 - Prototype Pollution Sensor Module Reference Implementation
Component
Design Artifacts
Pollution
Sensor
Module
3.2.
Connectors
The following subsections de;ne the connectors on Ara modules. All modules require at least
one interface block to exchange power, data, and detect/wake signal between modules and
the Endo. Some modules may also send RF signals through the interface block to another
module on the device. Modules require Hiperco-50 insert(s) on the module base to provide
enhanced magnetic coupling with the EPMs in the Endo. Front modules also require an
additional spring loaded mechanism attached to the Hiperco-50 insert that work in tandem
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 47 of 107
with EPMs in the Endo to secure the module in place when activated. Finally, ;nger-nail slots in
the module base allow users to remove and replace module shells.
The interface block is itself mounted and printed on a separate PCB. The interface block PCB
is then soldered to the main PCB. When installed into the module, the interface block PCB
should be completely Qush with the corresponding opening in the module base. The interface
block PCB must follow the geometry speci;ed in the module template CAD and EDA ;les
provided in the reference implementation.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 48 of 107
3.2.1.2.
Interface Block - Prototype Reference Implementation
The interface block in the current prototype platform diGers from the objective speci;cation.
Instead of contactless data transfer with inductive pads, the prototype uses electrical
signaling between the gold-plated copper pads on the module interface block and spring
pins on the Endo for data transfer (i.e., the same method used for power transfer). The shape
of the prototype interface block pad is round to match the spring pins on the Endo. The
module template section provides design artifacts for the prototype interface block reference
implementation.
The prototype interface block provides 8 data pads: two bidirectional M-PHY data lanes with
8 diGerential pairs (2 TX pairs and 2 RX pairs), a power pad, a ground pad, a detect/wake
pad, and an RF pad. Figure 3.10 and Table 3.15 detail the pinouts of the prototype interface
block.
January 8, 2015
Page 49 of 107
Pin/Pad Label
Description
RF
RF Signal
DET/WAKE
Detect/Wake Signal
VCONN
MTX_D0N
MTX_D0P
MRX_D0N
MRX_D0P
MTX_D1P
MTX_D1N
10
MRX_D1P
11
MRX_D1N
12
GND
Ground
3.2.1.3.
Front Module Attachment - Speci;cation
Front modules attach to the Endo with a spring-loaded Hiperco-50 insert and are secured with
an EPM on the Endo. The ribs in the Endo secure front modules in the Y direction (top-bottom).
When a user slides the module into the Endo and aligns the module in the X direction (side-toside), the EPM in the Endo activates and pulls the Hiperco-50 insert into the Endo to lock the
module in place. To release and unlock a module, the user commands the EPM to release and
springs the Hiperco insert back into the module.
The front module attachment spring should have a spring force constant in the order of 1
N/mm to provide optimum release force when the EPM is deactivated, while not exceeding the
ability of the EPM to pull the insert into the Endo when activated. The dimensions of the
Hiperco-50 insert should conform to the shape de;ned by the CAD model and drawings
provided in the reference materials. In the release state, the Hiperco insert must be Qush with
the module base.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 50 of 107
3.2.1.4.
Front Module Attachment - Prototype Reference Implementation
Front module attachment prototype reference implementations are provided in the reference
materials for the Prototype Display and Receiver Modules. Figure 3.11 shows a closeup view
of the front module attachment mechanism in the Prototype Receiver Module.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 51 of 107
3.3.
Antennas
Antennas can be installed inside a module, outside the shield (i.e. on top of the shield), or as
part of the module shell. Modules may also route RF signals to a diGerent module on the phone
using the RF connector on the interface block and the RF bus in the Endo. The following subsections provide speci;cations and reference implementations for each scenario.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 52 of 107
Design Artifacts
Prototype WiFi/Bluetooth
Module
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 53 of 107
Figure 3.13 - RF Bus in Endo Enables Routing Between Modules on Top and Bottom Halves
3.3.4.1.
1x2 3G Cellular Module - Prototype Reference Implementation
Table 3.17 provides relative ;le paths to design artifacts to create the prototype 3G Cellular
Module in a 1x2 module template. The 3G Cellular Module has a Band 2 antenna
incorporated into its module shell using the same method used on the WiFi/BT Module. The
3G Cellular Module also routes a Band 5 RF signal from the 3G modem to the RF pad on the
interface block. The RF signal is routed to the Antenna Module de;ned in the next
subsection.
The Prototype 3G Cellular Module currently has several excursions from the MDK
speci;cations including a modi;ed module base (it does not have Hiperco-50 inserts and
uses a diGerent metal) and a modi;ed interface block design to create suTcient space for the
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 54 of 107
cellular modem module. Developers should follow the module templates for reference
implementations that are fully compliant with the MDK speci;cations. An MDK-compliant
reference implementation of the 3G Cellular Module will be provided in a future MDK release.
Table 3.17 - 1x2 Prototype 3G Cellular Module Reference Implementation
Module
Design Artifacts
Prototype 3G Cellular
Module
3.3.4.2.
1x1 Antenna Module - Prototype Reference Implementation
Table 3.18 provides relative ;le paths to design artifacts to create the prototype Antenna
Module in a 1x1 module template. The Antenna Module contains a 3G Band 5 antenna on
the module shell made using the same method as described in the WiFi/BT Module. The 3G
Band 5 antenna is connected to the Prototype 3G Cellular Module through the RF switch in
the Endo.
Table 3.18 - 1x1 Prototype Antenna Module Reference Implementations
Module
Design Artifacts
Prototype Antenna
Module
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 55 of 107
4.
Power
This section de;nes power speci;cations and reference implementations for Ara modules. The
Ara power architecture is designed to accommodate the unique and Qexible nature of the
platform. Users of an Ara phone will be able to power their device with one or multiple
batteries; they will be able to swap a depleted battery with a fresh one, without powering oG
their phone; they will be able to charge one or more batteries in their phone from one or
multiple charging devices. The design of the power architecture enables all of these use cases
and provides a Qexible power platform for new applications.
Figure 4.1 shows a high-level view of the Ara power architecture. A common power bus is
central to the architecture. The power bus voltage is speci;ed to be between 3.3 and 4.8 V. The
power bus is distributed through the Endo frame to each interface block. A power manager in
the Endo optimizes power consumption, reduces current leakages, and provides protection
against overcurrents and overvoltages. The Endo also has a small battery or capacitor bank,
and associated charge controller. The power stored in the Endo provides power to the phone
during brief periods when the battery and/or charger modules are being hot-swapped or
recon;gured and no other power source is available to keep the device on.
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 modules charging port is active), a charging module when powered
through its charging port, and a power storage device when functioning as a regular battery.
Figure 4.1 also illustrates a simpli;ed view of these three module types. The following
subsections describe each of the types.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 56 of 107
4.1.
At the top of Figure 4.1 is a power consumer module, which is the simplest in its operation. The
power consumer module draws power directly from the power bus, or more commonly, voltage
regulator(s) steps down and regulates the voltage from the bus for various circuits within the
module.
4.2.
There are multiple power consuming modules in the prototype system. Design artifacts for
these modules are provided in the Mechanical and Layout section.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 57 of 107
4.3.
Charging modules can supply externally derived power to the power bus. Charging modules
may draw a small amount of current from the power bus during module initialization, but
current Qows nominally in one direction, from the module to the bus. Figure 4.1 shows a
traditional DC charger module.
4.4.
Table 4.1 provides relative paths to design artifacts to create a USB Charger Module in a 1x1
module template. The USB Charger Module uses a standard USB Micro-B socket. An
external power supply provides USB compliant DC power. The Prototype USB Charger
Module currently provides power only; it does not provide a data interface.
Table 4.1 - 1x2 Prototype USB Charger Module Reference Implementation
Component
Design Artifacts
USB Charger
Module
4.5.
Power storage modules primarily include battery modules, but other power storage devices are
envisioned. Power storage modules can supply power to the rest of the system or draw power
from the bus for recharging.
Battery modules supply power to the power bus by default. Figure 4.2 shows a con;guration in
which there are multiple battery modules connected to the power bus. Ideal diode circuits are
required to prevent current Qow into a battery in default discharge mode. The power bus
voltage is equal to the highest voltage presented by any of the batteries connected to the
power bus; the battery with the highest voltage bears the full load. The load is shared when
the voltage falls to level of the next highest battery. This trend continues until the voltage
across all batteries is equal and the load is shared evenly among them.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 58 of 107
Figure 4.3 shows 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 (power
manager) via UniPro messaging. The supervisory controller then signals battery modules to cut
oG 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. Power
storage modules must declare their total capacity and report their remaining capacity to the
Endo to ensure the power manager can accurately determine the overall power budget of the
device.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 59 of 107
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 60 of 107
4.6.
There are two prototype Battery Modules. Both use lithium-ion battery packs. The Extended
Battery Module has a larger battery pack that necessitates exceeding the standard 4 mm
module height envelope. Both battery modules are designed with a voltage regulator that
holds the voltage output at 4.6 V. Table 4.2 provides relative paths to design artifacts to
create each battery module in a 2x2 module template.
Table 4.2 - 2x2 Prototype Battery Module Reference Implementations
Component
Design Artifacts
Battery Module
Extended Battery
Module
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 61 of 107
5.
Network Stack
5.1.
Figure 5.1 illustrates the interfaces that enable module to module communication on an Ara
phone. The network architecture centers around the MIPI M-PHY and UniPro protocols. MPHY and UniPro are speci;cally designed for mobile devices with advanced features to provide
high throughput with low power consumption. These protocols enable modules to
communicate with one another module through a packet-switched network in the
Endoskeleton.
Figure 5.1 - Module to Module Communication (with Native UniPro Support and Bridge ASICs)
Figure 5.1 shows various example modules: an AP module with native M-PHY and UniPro, a
Display module communicating via a UniPro-based protocol, a Camera module communicating
via CSI-3, and a Storage Module communicating via UFS (CSI-3 and UFS are both UniProcompatible MIPI standards, and other M-PHY and UniPro compliant modules are also
envisioned). Figure 5.1 shows a Medical module with a Personal Diagnostic Sensor with built-in
M-PHY and UniPro support. Modules without native M-PHY and UniPro support may utilize
General Purpose (GP) Bridge or High-Speed (HS) Bridge ASICs that intermediate between
UniPro and several standard chip-to-chip protocols including SDIO, USB, UART, I2C, I2S, and
GPIO. Each interface block provides a 2-lane bidirectional M-PORT (2 TX and 2 RX M-PHY
lanes). Some modules may have additional interface blocks (up to 2 in a 2x2 and up to 4 on a
front module), enabling up to four 2-lane bidirectional M-PORTS (or 8 M-PHY lanes total).
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 62 of 107
The modules in Figure 5.1 connect to a UniPro switch in the Endo over a contactless media
converter, which is described in the following section. A supervisory controller in the Endo
manages its internal functions and external interfaces, including the UniPro switch, EPMs, and
Endo battery.
All prototype modules today use either Toshiba High-Speed (HS) Bridge or General Purpose
(GP) Bridge ASICs to intermediate between UniPro and several native interfaces. Developers
should note that the Toshiba Bridge ASICs are not strictly required to compose a module;
developers may use any suitable means to implement a M-PHY and UniPro compliant
interface to the Endo. Other Bridge ASICs and M-PHY/UniPro ASICs in additional to the
current Toshiba ASICs are envisioned in the future. The module templates and prototype
reference modules in the Mechanical section of the MDK describe the current Bridge ASICs
and associated circuitry to instantiate a module that can communicate over one of the
provided bridged interfaces. The list of such bridged interfaces is provided in the Network
Hardware section.
The prototype diGers from the objective system in two key aspects, as illustrated in Figure
5.2. First, the prototype uses electrical contact pads instead of contactless inductive pads.
Second, each interface block must utilize all four M-PHY lanes (2 RX and 2 TX) due to a
limitation in the current UniPro switch.
5.2.
Network Stack
The Ara network protocol stack is summarized in Table 5.1. The Ara network is packetswitched and based on the MIPI M-PHY and UniPro standards. The network enables high data
rate communication between modules with low pin count and low power consumption.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 63 of 107
Ara Implementation
Layers 5-7
Layers 1.5-4
Layer 1
The prototype network stack diGers from the objective system is several aspects. Layer 1 is
standard MIPI M-PHY, without the contactless media converter. The current prototype also
does not yet support UniPro class drivers at Layers 5-7. The current prototype uses devicespeci;c drivers for each prototype module; these drivers use bridged PHY protocols (as
de;ned within the Greybus Speci;cation) to communicate with their associated modules.
The Software section describes Android features that expose these interfaces to higher
layers of the stack.
Table 5.2 - Prototype Ara Network Stack
OSI Layer
Layers 5-7
Layers 1.5-4
Layer 1
5.2.1. Layer 1
Layer 1 includes the contactless media converter and M-PHY.
5.2.1.1.
Layer 1 Contactless Media Converter - Speci;cation
The contactless media converter (CMC) allows high-speed and contactless transmission of
data between modules and the Endo. The CMC (which can either be integrated into the M-PHY
IP block natively, into a bridge ASIC, or as a stand-alone CMC discrete component) removes
the need for a data connector, saving space and cost, and increasing durability. The Ara
platform uses contactless, inductively-coupled data communication between modules and the
Endo. This AC-coupled interface replaces the mechanical connector with traces on a printed
circuit board. This section provides an overview of the CMC. A detailed draft CMC specification
is provided in the reference materials2 (Reference Materials\Documents\CMC M-PHY Physical
Layer Speci;cation.pdf).
2Project Ara is working with the MIPI M-PHY standards committee to incorporate the CMC speci;cation as part of
the M-PHY Speci;cation. We will reference the oTcial MIPI Speci;cation as it becomes more mature.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 64 of 107
Figure 5.3 shows a pair of inductive loops on adjacent printed circuit boards. The lower loop is
connected to the transmitter IC, and the upper loop is connected to the receiver IC, using
microsctrip transmission lines. The two coaxial loops taken together form a signal transformer: A
time-varying current in the lower loop creates a time-varying magnetic field in air space between
the boards, inducing a time-varying voltage in the upper loop.
Figure 5.4 presents a high-level view of the contactless media converter circuit. To allow lowspeed data transmission, the DC level of the signal is restored in the receiver ;rst by a variable
gain ampli;er (VGA), followed a continuous time linear equalizer (CTLE), and a hysteresis
comparator, which restore data pattern from the transmission.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 65 of 107
The contactless media converter will operate over the 0.125 - 0.5 mm (+/- 0.05 mm) (TBD) airgap between the module and Endo. It will support all M-PHY transmission rates and modes
implemented by the Ara network (see M-PHY speci;cations section). See the draft CMC
Speci;cation document in the reference materials for more detailed speci;cations.
5.2.1.2.
Layer 1 Contactless Media Converter - Reference Implementation
A reference implementation for the contactless media converter is under development. The
contactless media converter will also be part of a future version of the Toshiba Bridge ASICs
and also available as a stand-alone discrete component that can be used as an add-on to a
device enabled with conventional M-PHY MPORTs.
5.2.1.3.
Layer 1 Contactless Media Converter - Prototype Reference Implementation
Current prototype modules do not use a contactless media converter. They use standard DC
M-PHY signaling through electrical contacts between modules and the Endo in the interface
block. The following describes a prototype implementation of an AC-coupled PHY on a test
bench.
We have been using the Analog Devices ADCMP582 ultrafast comparator as a capacitive
media converter for UniPro over a TMPI/LVDS surrogate PHY. With this, we have
demonstrated bidirectional Unipro data transmission at 800 Mb/sec, as well as clock
transmission from 1 Hz through 1.8 GHz.
The key feature of this chip that makes it work in this application is its resistor-programmable
input hysteresis, which allows even low-frequency square wave signals to be received
through the capacitive channel so long as they have fast edges.
5.2.1.4.
Layer 1 MIPI M-PHY - Speci;cation
The Ara network stack uses MIPI M-PHY (V3.0 26-July-2013) at Layer 1. M-PHY is a serial
interface that supports multiple transmission rates for high and low bandwidth applications. MPHY uses 8b/10b encoding and an embedded clock signal. M-PHY also has multiple power
saving modes to support low power embedded devices.
M-PHY operating with the contactless media converter de;ned in the previous section can
support up to HS-GEAR 3 (at 3A/3B Bandwidth and 4.99/5.82 Gbps per lane) and PWM-GEAR
1 to PWM-GEAR 2 (at 9/18 Mbps per lane).
5.2.1.5.
Layer 1 MIPI M-PHY - Reference Implementation
A module can implement MIPI M-PHY in multiple ways. One example is to use the Bridge
ASICs de;ned in the Network Stack Hardware section below. Module developers may also
instantiate M-PHY with IP cores that are available from the M-PHY known vendors section, or
develop a M-PHY implementation directly from the MIPI speci;cations.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 66 of 107
5.2.1.6.
Layer 1 MIPI M-PHY - Known Vendor(s)
MIPI M-PHY IP cores are available from vendors listed in Table 5.3.
Table 5.3 - MIPI M-PHY Known Vendors
Vendor
Product
Mixel
Synopsys
Arasan
5.2.1.7.
Layer 1 M-PHY - Prototype Reference Implementation
Layer 1 MIPI M-PHY speci;cations are implemented on prototype modules with Toshibas
Bridge ASICs. The current ES1 Bridge ASICs provides 2 RX and 2 TX M-PHY lanes that
connects to the UniPro switch in the Endo. See the Network Hardware Section below. New
versions (ES2 and ES3) of the UniPro Switch and Bridge ASICs will enable modules to utilize
a single RX or TX lane if desired.
5.2.1.8.
Layer 1 D-PHY - Prototype Speci;cation
The prototype system utilizes D-PHY (V1.1 7-November-2011) to support CSI-2 and DSI
interfaces for camera and display data respectively. D-PHY interfaces should be localized
between components on the module only. The interface between modules and the Endo
uses M-PHY as de;ned in the previous sections.
D-PHY uses 2 wires for a clock signal, and multiple wire pairs for data transfer between a
master and slave, typically between a host processor/bridge and camera/display devices
respectively.
5.2.1.9.
Layer 1 D-PHY - Prototype Reference Implementation
Layer 1 MIPI D-PHY speci;cations are implemented on the prototype AP, Camera, and
Display modules with a Toshiba HS Bridge ASIC. The HS Bridge provides 8 D-PHY data
lanes and 2 clock lanes to support up to 4 CSI-2 and 4 DSI data lanes. More detailed
information on the HS Bridge ASIC is provided in the Network Hardware section and
corresponding references.
January 8, 2015
Page 67 of 107
UniPro switch in the Endo routes packets between modules and provides quality of service
guarantees to system-level functions and modules.
The UniPro PHY adapter layer (Layer 1.5) serves to hide the differences between the different
MIPI PHY options (D-PHY or M-PHY). This layer allows configuration of various power states
and symbol encoding schemes.
The UniPro data link layer (Layer 2) de;nes 2 traTc classes: TC0 and TC1. TC1 data frames are
sent before TC0. A credit based Qow control mechanism enables receivers to tell the
transmitter how much buGer space is available and pause the transmission to avoid a receive
buGer overQow. An incorrect frame checksum at Layer 2 triggers an automatic retransmission.
A unique identi;cation 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 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 68 of 107
The UniPro transport layer (Layer 4) handles connections between modules using logical data
streams. UniPro uses CPorts for communication between endpoints, which are roughly
analogous to sockets 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.
Project Ara is working with the MIPI UniPro standards committee to de;ne a standard
implementation of strong cryptographic protection for information transmitted over the UniPro
bus, which may be incorporated in a future MDK release as it becomes more mature.
5.2.2.2.
Layers 1.5-4 UniPro - Reference Implementation
A module can implement MIPI UniPro in multiple ways. One example is to use the Bridge
ASICs de;ned in the Network Stack Hardware section below. Module developer may also
instantiate UniPro with IP cores that are available from the UniPro known vendors section, or
develop an UniPro implementation directly from the MIPI speci;cations.
5.2.2.3.
Layers 1.5-4 UniPro - Known Vendor(s)
MIPI UniPro IP cores are available from vendors listed in Table 5.4.
Table 5.4 - MIPI UniPro Known Vendors
Vendor
Product
Synopsys
Arasan
Cadence
Cadence IP Factory
HDL-IP
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 69 of 107
5.2.2.4.
Layers 1.5-4 CSI-2 - Prototype Speci;cation
The prototype system uses Camera Serial Interface 2 (CSI-2) (V1.01 9-November-2010) to
interface between cameras and the AP. CSI-2 interfaces should be localized between
components on the module only. The interface between modules and the Endo uses M-PHY
and UniPro as de;ned in the previous sections.
5.2.2.5.
Layers 1.5-4 CSI-2 - Prototype Reference Implementation
CSI-2 speci;cations are implemented on the prototype Camera and AP modules with
Toshibas HS Bridge ASIC. The HS Bridge ASIC provides up to 2 links of CSI-2, and each link
supports 4 data lanes at 1 Gbps per data lane. CSI-2 data from a camera is translated into a
stream of UniPro packets in the HS Bridge on the Camera Module. The reverse translation is
performed on the HS Bridge attached to an AP on the AP Module. More detailed information
on HS Bridge is provided in the Network Hardware section and corresponding references.
5.2.2.6.
Layers 1.5-4 DSI - Prototype Speci;cation
The prototype system uses Display Serial Interface (DSI) (V1.1 22-November-2011) to
interface between displays and the AP. DSI interfaces should be localized between
components on the module only. The interface between modules and the Endo uses M-PHY
and UniPro as de;ned in the previous sections.
5.2.2.7.
Layers 1.5-4 DSI - Prototype Reference Implementation
DSI speci;cations are implemented on the prototype Display and AP Modules with Toshibas
HS Bridge ASIC. The HS Bridge ASIC provides up to 2 links of DSI, and each link supports 4
data lanes at 1 Gbps per data lane. DSI data from a display is translated into a stream of
UniPro packets in the HS Bridge on the Display Module. The reverse translation is performed
on the HS Bridge attached to an AP on the AP Module. More detailed information on HS
Bridge is provided in the Network Hardware section and corresponding references.
5.2.2.8.
Layers 1.5-4 Bridged Interfaces
Modules on the prototype implement additional interfaces between module components and
the HS and GP Bridge ASICs. These interfaces include HSIC, I2C, I2S, SDIO, UART, GPIO,
and PWM, SPI. The sections below de;ne the speci;c standard and any deviations or
speci;c parameters implemented.
5.2.2.8.1.
HSIC Bridge - Prototype Speci;cation
The prototype system uses High-Speed Inter-Chip USB (HSIC) (V1.0 September-2007)
between the AP and the HS Bridge ASIC. HSIC interfaces should be localized between
components on the module only. The interface between modules and the Endo uses M-PHY
and UniPro as de;ned in the previous sections.
5.2.2.8.2.
HSIC Bridge - Prototype Reference Implementation
HSIC speci;cations are implemented on the prototype modules with Toshibas HS and GP
Bridge ASICs. The HS Bridge ASIC implements an HSIC device, while the GP Bridge ASIC
implements an HSIC host. USB data is translated by the GP Bridge into UniPro packets and
routed through the UniPro switch in the Endo to other modules. More detailed information on
HS Bridge and GP Bridge is provided in the Network Hardware section and corresponding
references.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 70 of 107
5.2.2.8.3.
I2C Bridge - Prototype Speci;cation
The prototype system uses I2C (V2.1 January-2000) in several modules. I2C interfaces
should be localized between components on the module only. The interface between
modules and the Endo uses M-PHY and UniPro as de;ned in the previous sections.
5.2.2.8.4.
I2C Bridge - Prototype Reference Implementation
I2C speci;cations are implemented on the prototype modules with Toshibas HS and GP
Bridge ASICs. I2C data is translated into UniPro packets on Bridge ASICs and routed
through the UniPro switch to other modules. More detailed information on HS Bridge and GP
Bridge is provided in the Network Hardware section and corresponding references.
5.2.2.8.5.
I2S Bridge - Prototype Speci;cation
The prototype system uses I2S (5-June-1996) in the Receiver and AP Modules. I2S interfaces
should be localized between components on the module only. The interface between
modules and the Endo uses M-PHY and UniPro as de;ned in the previous sections.
5.2.2.8.6.
I2S Bridge - Prototype Reference Implementation
I2S speci;cations are implemented on the prototype modules with Toshibas HS and GP
Bridge ASICs. I2S data is translated into UniPro packets on Bridge ASICs and routed through
the UniPro switch to other modules. More detailed information on HS Bridge and GP Bridge
is provided in the Network Hardware section and corresponding references.
5.2.2.8.7.
SDIO Bridge - Prototype Speci;cation
The prototype system uses SDIO (V2.0 8-February-2007) in the WiFi module. SDIO interfaces
should be localized between components on the module only. The interface between
modules and the Endo uses M-PHY and UniPro as de;ned in the previous sections.
5.2.2.8.8.
SDIO Bridge - Prototype Reference Implementation
SDIO speci;cations are implemented on the prototype WiFi module with Toshibas GP Bridge
ASICs. SDIO data is translated into UniPro packets on Bridge ASICs and routed through the
UniPro switch to other modules. More detailed information on GP Bridge is provided in the
Network Hardware section and corresponding references.
5.2.2.8.9.
GPIO Bridge - Prototype Speci;cation
The prototype system uses GPIO in several modules. GPIO interfaces should be localized
between components on the module only. The interface between modules and the Endo
uses M-PHY and UniPro as de;ned in the previous sections.
5.2.2.8.10.
GPIO Bridge - Prototype Reference Implementation
GPIO interfaces are implemented on the prototype modules with Toshibas HS and GP
Bridge ASICs. GPIO data is translated into UniPro packets on Bridge ASICs and routed
through the UniPro switch to other modules. More detailed information on HS Bridge and GP
Bridge is provided in the Network Hardware section and corresponding references.
5.2.2.8.11.
UART Bridge - Prototype Speci;cation
The prototype system uses UART in the WiFi module. UART interfaces should be localized
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 71 of 107
between components on the module only. The interface between modules and the Endo
uses M-PHY and UniPro as de;ned in the previous sections.
5.2.2.8.12.
UART Bridge - Prototype Reference Implementation
UART interface are implemented on the prototype modules with Toshibas GP Bridge ASIC.
UART data is translated into UniPro packets on Bridge ASICs and routed through the UniPro
switch to other modules. More detailed information on HS Bridge and GP Bridge is provided
in the Network Hardware section and corresponding references.
5.2.2.8.13.
PWM Bridge - Prototype Speci;cation
The prototype system uses PWM in several modules. PWM interfaces should be localized
between components on the module only. The interface between modules and the Endo
uses M-PHY and UniPro as de;ned in the previous sections.
5.2.2.8.14.
PWM Bridge - Prototype Reference Implementation
PWM interface are implemented on the prototype modules with Toshibas HS and GP Bridge
ASICs. PWM data is translated into UniPro packets on Bridge ASICs and routed through the
UniPro switch to other modules. More detailed information on HS Bridge and GP Bridge is
provided in the Network Hardware section and corresponding references.
5.2.2.8.15.
SPI Bridge - Prototype Speci;cation
The prototype system uses SPI in several modules. SPI interfaces should be localized
between components on the module only. The interface between modules and the Endo
uses M-PHY and UniPro as de;ned in the previous sections.
5.2.2.8.16.
SPI Bridge - Prototype Reference Implementation
SPI interface are implemented on the prototype modules with Toshibas HS and GP Bridge
ASICs. SPI data is translated into UniPro packets on Bridge ASICs and routed through the
UniPro switch to other modules. More detailed information on HS Bridge and GP Bridge is
provided in the Network Hardware section and corresponding references.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 72 of 107
5.2.3. Layers 5+
5.2.3.1.
Layers 5+ - Greybus Speci;cation
The Ara network protocols at Layers 5 and above are de;ned within the Greybus Speci;cation,
also called Greybus. This document summarizes the main features of the Greybus
Speci;cation, and references the Greybus Speci;cation document provided in the reference
materials (Reference Materials\Documents\Greybus Speci;cation v0.1.pdf) whenever possible.
Figure 5.6 shows the Greybus protocol for various classes of modules within the context of the
Ara network stack implementation in hardware and software. On the hardware end, modules
may have native a UniPro interface to the Endo. Example devices include cameras that utilize
MIPI CSI-3 for video streaming or mass storage devices that use UFS. New device class
protocols built on UniPro for audio streaming, wireless communications and others are also
under development. Devices without native UniPro will utilize a Bridge ASIC (HS or GP) to
communicate over the UniPro network. A Bridge converts common interfaces such as I2C,
USB, and UART for transmission over the UniPro network to an AP Module. Other Bridge
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 73 of 107
ASICs in addition to the current Toshiba HS and GP Bridge ASICs are envisioned.
On the software side, there are 2 classes of modules: those conform to generic device classes
and all others. Both classes of modules are supported in software with the Greybus
speci;cation, which is implemented as part of a new Linux kernel subsystem. Greybus
performs communication between modules using Greybus Operations. A Greybus Operation
de;nes the semantics for a remote procedure call from one module to another. An Operation is
implemented by a pair of messages--one containing a request, and the other containing an
optional response. The Greybus subsystem implements device class protocols and Bridged
PHY protocols in terms of Greybus Operations. These operations are de;ned fully in the
Greybus Speci;cation document.
The Greybus subsystem, through the kernel and various subsystem interfaces, facilitates
interfaces to the Android platform and Android applications. The Greybus subsystem will
include a set of generic class drivers to support common devices such as batteries and human
interface devices. These class drivers will communicate with updated Android services and
HALs, modi;ed to enable support of unique Ara features such as hotplug and hardware
recon;guration.
Developers of non-class conforming modules may create a custom Android application and
utilize accessory-style APIs in the Android platform to interface with bridged PHY and other
non-device class APIs within the Greybus subsystem to access data from their module.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 74 of 107
5.2.3.2.
Layers 5+ - Greybus Prototype Reference Implementation
Figure 5.7 shows the Greybus protocol in the prototype system. The Greybus protocol and
software implementation will be continuously developed and updated with new features over
the course of the Ara prototype development period, culminating with the features described
in the objective system.
As of the current MDK release, generic class drivers for batteries and vibrators have been
speci;ed in the Greybus speci;cation, but have not been fully implemented in software. In
lieu of generic class drivers, existing prototype modules use device-speci;c drivers and
HALs. HS Bridge ASICs in the Camera, Display, and AP Modules tunnel CSI-2 and DSI data
transparently over the UniPro network.
All other Prototype Modules utilize a GP Bridge and bridged PHY drivers in the Greybus
subsystem. As of the current MDK release, the Greybus Speci;cation and Greybus
subsystem implementation support I2C, GPIO, UART, and PWM protocols. Refer to the
Greybus Speci;cation document for details on Greybus Operations and data formats. A
summary of the Greybus subsystem is given in the Software section.
January 8, 2015
Page 75 of 107
UniPro Interfaces
Peripheral Interfaces
Chip Information
HS Bridge
Power: <1170 mW
@ max voltage
Size: 5 mm x 5 mm
Rated 85
Ambient
Pin-count: 107
Part No:
T6WR5XBG
GP Bridge
Power: <890 mW @
max voltage
Size: 5 mm x 5 mm
Rated 85
Ambient
Pin-count: 107
Part No:
T6WR6XBG
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 76 of 107
6.
Software Stack
Figure 6.1 shows an abstracted view of the Ara software stack. The Ara software stack
currently requires that exactly one Application Processor (AP) Module running Android is
present in the system. (Support for multiple AP modules may be included in a future release of
the MDK.) From the perspective of the software, there are two types of modules: those which
conform to a particular device class and Android HAL/subsystem (such as cameras, displays,
human interface devices, etc.), and those which dont conform to any device class (modules
with functions which are novel, unique, or otherwise special-purpose). The latter case often
have associated custom libraries and/or applications.
Figure 6.1 shows the software interfaces and interactions for conforming and non-class
conforming modules. Conforming modules use generic device class drivers that interface with
updated Android HALs and services to enable the unique modular features on the Ara platform.
These features include support for hotplugging modules and recon;guring the device without
having to recompile and update the kernel and Android con;guration. A set of device class
de;nitions, UniPro-based communication protocols, and associated kernel drivers will enable a
set of devices commonly found on smartphones today including displays, cameras, batteries,
sensors, audio devices, etc.
Developers of non-class conforming modules can create a custom Android Application, which
can then access Android bus interface APIs to communicate with the Bridge PHY Protocol
Drivers in the Greybus subsystem to connect to and manage the module.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 77 of 107
Communication between modules in the Ara phone is abstracted in the form of Greybus
Operations. Both device class protocols and Bridge PHY protocols are encapsulated as
Greybus Operations and are detailed in the Greybus Speci;cation provided in the reference
materials.
The present prototype platform software is a modi;ed version of the Linaro Android L
release, targeting Marvell AP and NVidia APs. The source tree for each AP will be available
made available along with developer hardware, to be announced on the Project Ara website.
Some AP-speci;c binaries have proprietary licenses and may require additional end-user
license agreements.
Figure 6.2 shows an overview of the software interfaces for the prototype platform. All
prototype modules contain either a HS or GP Bridge ASIC. The Prototype Camera, Display,
and AP Modules use an HS Bridge ASIC, which tunnels CSI-2 and DSI traTc over the UniPro
network transparently. While generic class drivers for displays, cameras, and other common
devices are still in development, the Prototype Camera and Display Modules use devicespeci;c drivers and HALs targeted for each AP.
Other prototype modules (e.g. Battery, Receiver, Speaker, WiFi/BT, 3G Cellular Modules) use
a GP Bridge ASIC and utilize one or more bridged PHY protocols. The HS Bridge ASIC also
implements some bridged PHY protocols, which are accessed the same way via Greybus
Operations. The Bridged PHY Protocol Drivers in the Greybus subsystem implement their
respective protocols Operations and interface with existing kernel APIs to enable end-to-end
communication between Android applications and module devices.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 78 of 107
6.1.
Kernel
Linux device drivers provide low-level hardware support on Android devices. On a standard
smartphone, the available hardware is ;xed, allowing device manufacturers to pre-select a set
of device drivers. On an Ara phone, however, almost all of the hardware which is normally an
immutable part of a smartphones design is designed to be user replaceable and hotpluggable.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 79 of 107
As shown in Figure 6.3, the Greybus kernel module is designed around a central Greybus Core.
The key functions of the Greybus Core include interfacing with the virtual ;le system, parsing
module manifest information to identify modules and their capabilities, handling power
management features, controlling EPMs to lock and release modules, and con;guring the RF
bus in the Endo to route RF signals between modules. The Greybus core coordinates these
functions with the supervisory controller (SVC) in the Endo. These system-level functions,
which require interfaces between the SVC, AP, modules, and users are de;ned in a later
section.
The main function of the Greybus subsystem is to perform the duties of a kernel driver for each
module. On a traditional smartphone, the kernel can be compiled with a set of custom drivers
since all the devices are known. To enable a seamless experience where users may swap
modules from diGerent vendors, with diGerent device classes and diGerent features, and do it
with nominal technical skills required of any smartphone user, the traditional kernel driver
model must be adapted with a more Qexible approach.
To enable the goals of the Ara modular platform, a set of generic class drivers will be speci;ed
in the Greybus speci;cation and implemented in the Greybus subsystem. The set of generic
class drivers will span a broad range of module devices typically found on smartphones. The
current plan includes the the following device classes: audio, batteries and chargers, Bluetooth
devices, cameras, consumer IR devices, displays, GPS, input devices, lights, NFC, sensors,
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 80 of 107
vibrators, WiFi, baseband, and other network devices, and storage devices. Future versions of
the MDK and Greybus speci;cation will include details for each device class.
As of the current MDK release, the Greybus speci;cation document includes de;nitions of two
generic device classes: batteries and vibrators. These relatively simple devices were chosen to
serve as a path;nder for more challenging devices. Even among devices that perform the same
function (i.e. cameras, WiFi), their drivers can be extremely varied among manufacturers and
product lines. To ensure that the Ara platform can accommodate the broadest set of devices,
generic class drivers must be developed carefully to ensure broad application without
sacri;cing signi;cant performance. Similarly, we are seeking feedback from the developer
community including device manufacturers and device driver vendors to help us compose the
appropriate device class de;nitions in the Greybus speci;cations. Please contact us at aradev@google.com if you are interested in engaging in these activities.
One of the advantages of the Ara platform is the ability to accommodate non-traditional
devices in a smartphone. Modules that do not fall within a generic class and thus unable to use
the generic class drivers are supported through a Bridge ASIC and the Bridge ASIC Driver in
the Greybus subsystem. Bridge ASICs are used to translate between UniPro and various
common interfaces including I2C, I2S, and USB. The Network section details the complete list
of Bridged interfaces supported by the current Bridge ASICs. The Greybus speci;cation
de;nes the operations used on a connection implementing these Bridge PHY protocols, and
the Bridge ASIC Driver allows developers to access and manage these connections with an
Android Application through Android APIs and standard kernel subsystem interfaces.
As shown in Figures 5.5, AP Modules with a native UniPro host controller are expected and will
be supported by the Greybus subsystem with a corresponding UniPro host controller driver.
The UniPro host controller will likely be tightly integrated with the AP and result in custom
drivers compiled for each AP.
In the near term and beyond, AP Modules without a native UniPro interface will be supported
through an HS Bridge ASIC. The Greybus subsystem includes an HS Bridge host controller
driver to communicate with and manage the HS Bridge ASIC. As shown in Figure 5.6, the
current HS Bridge ASIC is exposed to the AP through an HSIC USB interfaces. The Greybus
subsystem provides an interface between the HS Bridge host controller driver and the kernel
USB subsystem.
Finally, Figure 6.3 shows the interfaces between the Greybus subsystem and various kernel
subsystems. The generic class drivers and the Bridge ASIC Driver interface with one or more
corresponding kernel subsystems. For example, the I2C Bridged PHY protocol driver in the
Bridge ASIC Driver interfaces with the kernel I2C subsystem. These interfaces provide a
convenient abstraction to support platform-speci;c connections, but also serve to limit
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 81 of 107
userspace access to the kernel with the goal of minimizing system crashes and security
breaches.
January 8, 2015
Page 82 of 107
6.2.
Android
The Android software stack is shown in Figure 6.5 highlighted with modi;cations and additional
components that will be developed to support the unique features of the Ara platform. Android
Applications are shown at the very top of stack. The Android Settings App will be modi;ed to
allow hardware con;gurations to change dynamically (e.g. enable/disable location services
when GPS module is removed). An Ara Manager App will also be introduced to facilitate user
interactions with modules on the device. The Ara Manager App will allow users to get detailed
information on all the modules currently attached to their device and swap them by
commanding the EPM(s) in the Endo to release. The Ara Manager App and required module
interfaces will be provided in a future MDK release.
Android System Services are application components that perform long-running operations in
the background and does not provide a user interface. As shown in Figure 6.5, many of these
services will be modi;ed to enable Android to support hotplug and hardware recon;guration
features. In addition, a new Endo service will be developed to support Android Applications
that make use of Ara features. Among its responsibilities, the Endo Service will
register/unregister the Ara Manager App, provide hotplug noti;cation and Endo information (i.e.
geometry, orientation) to various module developer-supplied Applications, support EPM
control, and control module power modes.
January 8, 2015
Page 83 of 107
Finally, Android Hardware Abstraction Libraries (HAL) are implemented as shared libraries; their
code runs within Androids system services. Unlike device drivers, HAL APIs are speci;ed by
Google and are updated with each release. Device manufacturers provide library binaries which
implement these interfaces in their devices system images. These libraries are then
subsequently loaded by the relevant system services as part of their initialization. Among other
things, HALs provide an abstraction barrier between Android system services and the various
device driver interfaces exposed by the kernel for diGerent hardware peripherals those services
must control.
Current HAL APIs assume a ;xed hardware con;guration and will require modi;cations to
support hot-plugging features inherent to the Ara architecture. Firstly, a set of HALs will be
modi;ed, as shown in Figure 6.5 to match the set of kernel device class drivers. These HALs
will be adapted to support hotplugging events. Each HAL will monitor device availability and
return generic values to dependent services without causing the system to crash in the event
that a device is not present (e.g., provide null or zero values if GPS sensor is not present or
issue off commands for user-controllable devices like WiFi). HALs will also detect any change in
module availability and notify dependent services upon module insertion and device availability.
A future MDK release will address these modi;cations in more detail.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 84 of 107
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 85 of 107
6.3.
This section describes several use cases module developers may encounter and includes
references to existing support infrastructure provided by the prototype software platform.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 86 of 107
7.
System-Level Functions
The following sections illustrate system-level functions performed by Ara modules. Modules
will utilize the network and software stacks (the kernel Greybus subsystem and Android Endo
Service in particular) to exercise these functions. Modules interface with the supervisory
controller in the Endo and/or the AP Module to carry out these functions. Developers should
refer to the Greybus Application Protocol document and other reference materials for details.
The subsequent subsection provide an overview of these functions.
7.1.
Module Wake/Detect
The Endo expects Wake and Detect signals for each module. Wake signals are used to bring
the phone out of a low-power standby state. A Wake signal is sent from a module to the
supervisory controller when a power button is pressed. This brings the supervisory controller
out of standby state, and the supervisory controller, in turn, sends Wake signals to each of the
installed modules to turn them on.
Detect signals allow the Endo to detect when modules are inserted and removed. 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 oG. Modules with batteries must place themselves in a powered-down
standby state when they lose the detect signal from the Endo.
January 8, 2015
Page 87 of 107
Endo. The module must not load the wake-detect pin with more than 5 nA of input bias current
to read the state of the pin.
7.2.
After a module is inserted into an Endo (or when a device is powered on with the module in the
Endo), an initialization process is required to establish a link to the UniPro network, exchange
module information, attach EPM(s), and start communication with software and other modules
on the device.
Figure 7.2 de;nes a high-level sequence of events during the module initialization process. The
sequence begins when a module is detected on the Endo. The SVC in the Endo noti;es the AP
Module on the device and setups a UniPro connection. The module must subsequently report
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 88 of 107
its module manifest (de;ned in the subsequent section), which is veri;ed by the AP.
Subsequently, the module is able to communicate on the UniPro network through the switch in
the Endo. A much more detailed sequence diagram will be provided in a future MDK release to
address speci;c messaging required by modules.
7.3.
Active thermal management features protect the user and the phone from excessive heat
buildup. Excessive heat generated from a module can cause injury to user and cause
neighboring modules to fail. Temperature sensors in the Endo and the modules provide
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 89 of 107
7.4.
Power Management
As with a traditional smartphone, an Ara device must be able to conserve power when not in
active use. Traditionally, the AP and power manager software will place various devices into
standby mode. On an Ara device, modules must similarly be commanded to enter a powerconserving mode. When the user is ready to use the device, modules will be awaken through
the wake/detect signal.
In addition, modules must declare their expected power usage in various scenarios (active,
standby, etc.) and stay within those limits. The power manager uses this information to predict
remaining battery capacity and notify the user when insuTcient power is available.
Most power management features are not implemented in the prototype platform.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 90 of 107
8.
Module Compliance
This section provides compliance speci;cations for Ara modules needed to demonstrate their
conformance with the MDK. Environmental compliance speci;cations are designed to ensure
modules can survive typical usage scenarios and environments in a broad range of
geographies. Whenever possible, these speci;cations are written in terms of survivable limits
only. It is up to module developers to infer an appropriate quali;cation procedure that
comports with good engineering practice and their own quality assurance methodology. The
accompanying reference implementation sections provide test procedures, con;gurations, and
other relevant information to demonstrate compliance to the speci;cation.
This section also de;nes other procedures needed to demonstrate compliance with the MDK.
These procedure ensure modules meet the geometric, material, power, electrical, software, and
other speci;cations de;ned in previous sections of the MDK.
8.1.
Environmental Compliance
8.1.1.2.
Thermal Loads - Prototype Speci;cation
Prototype modules should limit their maximum power output such that the energy transferred
to the module base and module shell does not exceed 25 above room temperature.
Developers may use a value of 25 room temperature for their analysis.
8.1.1.3.
Thermal Loads - Prototype Reference Implementation
Tests to verify conformance to the speci;cations have not been implemented for the
prototype. Details of compliance test procedures will be provided in a future MDK release.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 91 of 107
8.1.2.2.
Ambient Temperature and Humidity - Prototype Reference Implementation
Place the module inserted into an Endo in an environmental test chamber as speci;ed in Test
1 for at least 15 cycles and Test 2 for at least 100 cycles. The device should be on during the
tests. Observe the eGects on the module throughout the duration of the test. Visually inspect
the module after each cycle per the speci;cation and perform a functional test of the module
to ensure module operation remains unaGected.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 92 of 107
8.1.3.2.
ESD - Prototype Reference Implementation
Use an IEC-standard-compliant ESD generator and apply discharges with the module by
itself at locations and discharge voltages provided in the speci;cations. Insert the module
into an Endo and perform a functional test to ensure module operation remains unaGected.
Repeat the procedure with the module in the Endo powered on at accessible locations
provided in the speci;cations.
8.1.4. Shock
8.1.4.1.
Shock - Speci;cation
Shock tests are performed to provide a degree of con;dence that modules can physically and
functionally withstand the relatively infrequent, non-repetitive shocks encountered in handling,
transportation, and operational environments. These tests also help to determine the fragility of
the module and facilitate the design of packaging that provides adequate protection for the
module.
Module developers should drop the module from a height of 48 (4) on each face, edge and
corner for a total of 26 drops onto a hard surface. Orient the module so that, upon impact, a
line from the struck corner or edge to the center of gravity of the case and contents is
perpendicular to the impact surface.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 93 of 107
Module developers should also repeat each drop test with the module in an endo with a
representative set of modules.
Subsequent to each drop, developers should check the module visually and/or operationally
during the drop-test to simplify any follow-on evaluation that may be required. Note the impact
point or surface for each drop and any obvious functional degradation or physical damage.
Drop-tests should not aGect the physical or functional integrity of the module, its components,
or the phone.
8.1.4.2.
Shock - Prototype Reference Implementation
Perform drops from a quick-release hook or pneumatic drop tester. For the Qoor or barrier
receiving the impact, use two-inch plywood backed by concrete. Visually inspect the module
and/or module with Endo after each drop and verify structural integrity and operation per the
speci;cations.
8.1.5. Vibration
8.1.5.1.
Vibration - Speci;cation
Ara modules, like all portable consumer electronics, need to meet industry standards for
reliability with respect to vibration and fatigue testing. Vibration tests evaluate the functional
and structural integrity of a module subjected to representative vibration during assembly,
packaging, transportation handling, and everyday operation.
Modules should be subject to 5 minutes of shaking in each orthogonal axis, in each direction at
30 Hz and a displacement of 0.06 in. Check the module visually and/or operationally during the
test to simplify any follow-on evaluation that may be required. Modules should not show any
obvious functional degradation or physical damage during and after each test. Vibration can
also cause damage or dislodge electronic circuits or connectors resulting in malfunction or
defective operation. Perform a functional test after each test to verify module operation
remains unaGected. Perform the tests for the module individually and with the module in the
Endo.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 94 of 107
8.1.5.2.
Vibration - Prototype Reference Implementation
Secure the module to the shaker table and induce vibrations as speci;ed in the
speci;cations. Repeat the test for each orthogonal axis and with the module by itself and
with the module in the Endo while powered on.
After each test, visually inspect the module to ensure there are no visible eGects of vibration
including mechanical deformation of the module as a result of stress on structural elements.
Perform a functional test to verify module operations after each test.
8.2.
Mechanical Compliance
8.2.1.2.
Mechanical Fit - Prototype Reference Implementation
A high-precision optical measurement tool should be used to measure mechanical tolerances
for manufactured modules. Tolerances should be compared against the speci;cations in the
Mechanical section and associated CAD drawings and veri;ed for compliance.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 95 of 107
8.2.2.2.
EPM Hold - Prototype Speci;cations
The current prototype EPMs should provide a maximum holding force in tandem with the
module Hiperco 50 inserts of 15 N each. 2x2 modules attach to 2 EPMs for a maximum
holding force of 30 N. Depending on the insertion direction, 1x2 modules may attach to either
1 or 2 EPMs.
8.2.2.3.
EPM Hold - Prototype Reference Implementation
An electromechanical pull tester should be used to test EPM hold. The pull tester should
apply forces in increments of 1 N along each applicable axis until the module releases. The
test should be performed for EPMs in the attach and release states. Modules should remain
attached for pulling forces up to the maximum required EPM hold force of 15 N and 3 N per
interface block in the attach and detach states respectively.
Front modules should be subjected to EPM attach and release in the Endo. A visual
inspection should be performed to verify the spring loaded Hiperco-50 insert on the module
is locked into the Endo in the attach state and Qush with the module in release state.
8.3.
Power Compliance
8.3.1.2.
Power Sweep - Prototype Reference Implementation
The voltage level on the common voltage bus should be varied from 3.3 V to 4.8 V in steps of
0.3 V using an adjustable benchtop power supply. Perform a functional test to verify module
operations after each voltage step change.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 96 of 107
Modules should limit electromagnetic interference (EMI) generation so it is not coupled to other
modules through conduction on the power and data lines or through radiation. Modules
should also tolerate some EMI introduced by other modules installed in the Endo.
Additional speci;cations for power line noise and EMI compliance will be provided in a future
MDK release.
8.3.2.2.
Power Input/Output Noise - Prototype Reference Implementation
Details of compliance test procedures will be provided in a future MDK release.
8.3.3.2.
Power Draw - Prototype Reference Implementation
Power consuming modules should be placed in all relevant power modes and operating
conditions. The power draw should be measured and compared against declared power
draw budgets.
Chargers and power storage modules should be discharged at rates in increment of 0.1 V
(TBD) up to the maximum declared discharge rate.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 97 of 107
power storage modules, the declared capacity of power storage modules must be veri;ed
through a load test.
8.3.4.2.
Power Storage Capacity - Prototype Reference Implementation
Details of compliance test procedures will be provided in a future MDK release.
8.4.
Network Compliance
8.4.1.2.
M-PHY Compliance - Prototype Reference Implementation
Developers should utilize the MIPI approved M-PHY protocol test suite and calibrated test
equipment. Relevant test con;guration will be provided in a future MDK release.
January 8, 2015
Page 98 of 107
Compliance testing should be consistent with the UniPro Working Groups Conformance Test
Suite (CTS) and Protocol Implementation Conformance Statement (PICS).
8.4.2.2.
UniPro Compliance - Prototype Reference Implementation
Developers should utilize the MIPI approved UniPro protocol test suite and calibrated test
equipment. Relevant test con;guration will be provided in a future MDK release.
8.4.3.2.
Layer 5+ Greybus Compliance - Prototype Reference Implementation
Details of compliance test procedures will be provided in a future MDK release.
8.5.
Software Compliance
8.5.1.2.
Kernel Compliance - Prototype Reference Implementation
Details of compliance test procedures will be provided in a future MDK release.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Page 99 of 107
8.5.2.2.
Android Compliance - Prototype Reference Implementation
Compliance test procedures for Ara modules will include the standard Android Compatibility
Test Suite plus additional procedures for Ara-speci;c features such as hotplug support.
Details of the Ara-speci;c compliance test procedures will be provided in a future MDK
release.
8.6.
8.6.1.2.
Wake/Detect Compliance - Prototype Reference Implementation
Details of compliance test procedures will be provided in a future MDK release.
8.6.2.2.
Hotplug Compliance - Prototype Reference Implementation
Details of compliance test procedures will be provided in a future MDK release.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
9.
This section provides an overview of the Ara Module Marketplace, an e-commerce portal that
enables a two-sided market between module developers and consumers. The main
components of the Ara Module Marketplace are the developer-facing Ara Developer Console
and the Ara Con;gurator app that users will be able to access on their Ara phone.
Additionally, this section provides preliminary guidance on submission, review process, and
sale of Ara modules through the Ara Module Marketplace. This section only applies to
developers who intend to make their modules available for sale through the Ara Module
Marketplace.
9.1.
The Ara Developer Console is the primary developer-facing element of the Ara Module
Marketplace and serves as the main entry point for module vendors and developers. The web
portal address will be provided in a future MDK release.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Description
CAD Model
2D Drawings
Electrical Model
Software
Performance Specs
Composition Requirements
Item
Description
Power Pro;le
Bridge Info
Firmware
January 8, 2015
Description
PID
Short Name
Module name
Short Description
Primary Image
Additional Image(s)
Module Category
Secondary Label(s)
Price
Module price
Availability
Regional availability
Size
Requirements
Technical Speci;cations
9.2.
In supported geographies, modules will need to be shipped to a warehouse managed by a preselected third party logistics provider who will handle both shipping and returns. Commercial
agreements, pricing, will be negotiated between the developer and the logistics provider on a
case-by-case basis.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
9.3.
Module Identi$ers
Each module must have several electronically programmed identi;cation numbers. Table 9.4
provides the ID ;elds and size required. Once programmed, this information must be
immutable. The ID information should be accessible by the supervisory controller through the
UniPro network.
Table 9.4 - Module Identi$cation Numbers
ID Type
Description
Size
VID
32 Bits
PID
32 Bits
SN
64 Bits
The vendor ID ;eld is a value assigned by Google. All vendors should apply for a Project Ara
vendor ID in order to properly mark their modules. Contact ara-dev@google.com for more
information regarding the vendor ID application process.
The part ID ;eld is assigned by the module vendor or developer. The part ID should represent a
particular and unique model of the module.
In addition to the VID and PID values, each module must have information that can be used to
uniquely identify the module from any other module. Modules using Toshiba Bridge ASICs can
leverage the unique Internal Master Secret (IMS) value, which is programmed by Toshiba.
Modules that utilize another Bridge ASIC or UniPro implementation must provide a
corresponding compliant mechanism.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
10.1.1.
US RF Regulatory Authorization
The Federal Communication Commission (FCC) regulates certain RF-emitting devices in the
US to limit the devices potential to cause harmful interference to radio communications and to
ensure that consumers are not exposed to unsafe levels of radiation.
10.1.1.1.
FCC Equipment Authorization - Speci;cation
Exposure standards for radiofrequency energy have been developed by various organizations
and countries. These standards recommend safe levels of exposure for both the general
public and for workers. In the United States, the FCC has adopted and used recognized safety
guidelines for evaluating RF environmental exposure. The exposure limits used by the FCC are
expressed in terms of speci;c absorption rate (SAR), electric and magnetic ;eld strength and
power density for transmitters operating at frequencies from 300 kHz to 100 GHz. The FCC
authorizes and licenses devices, transmitters and facilities that generate RF radiation.
The FCC rules prescribe a set of equipment authorization (EA) procedures designed to con;rm
the regulatory compliance of RF-emitting devices prior to importation or marketing in the US.
For low-powered digital devices that do not intentionally emit RF energy, the FCC requires a
veri;cation procedure that involves the manufacturer con;rming devices operate within the
appropriate technical standards. On the other hand, consumer devices like cellular phones that
utilize licensed radio frequencies require a more extensive certi;cation procedure that includes
testing to ensure RF emissions are below the safe threshold for SAR and do not cause
interference. The certi;cation procedure also involves an oTcial application ;ling with the FCC
or a Telecommunication Certi;cation Body (TCB) and associated fees.
10.1.1.2.
FCC Equipment Authorization - Reference Implementation
FCC EA procedures for various module types will be provided in a future MDK release.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
10.1.1.2.1.
FCC Equipment Authorization - Reference Implementation for Hobbyist/Maker
Per 47 CFR 15.23, an equipment authorization is not required for devices that are not marketed
and are built in quantities of ;ve or less for personal use. While the exemption applies to Ara
modules developed for personal use, developers should use good engineering judgement to
ensure compliance with frequency and device safety guidelines including those speci;ed in this
document. The exemption, moreover, does not apply to devices that are built from a kit. Note
that the provisions of 47 CFR 15.5 (specifying general conditions of operation) apply to this
equipment.
10.1.1.2.2.
FCC Equipment Authorization - Prototype/Experimental License
Per 47 CFR Part 5, an experimental license (or Special Temporary Authorization for
experiments of shorter duration) is required to utilize radio spectrum during ;eld
experimentation, product development, and market trials. The majority of prototype
development is not expected to involve radios; however, if a module developer requires an
experimental license, they may obtain one directly from the FCC through the experimental
license system.
10.1.2.
The US Food and Drug Administration (FDA) regulates medical devices in the US.
10.1.2.1.
FDA Regulation - Speci;cation
The FDA regulates medical devices in the US. The de;nition of medical devices include
devices intended for the diagnosis of disease or other conditions, or in the cure, mitigation,
treatment, or prevention of disease, or devices intended to aGect the structure or any function
of the body. The FDA de;nes three classes of medical devices and associated regulatory
procedures. Device classi;cation depends on the intended use of the device and also upon
indications for use (see the FDA website for more information on how to classify a medical
device). Most Class 1 devices are exempt from Premarket Noti;cation 510(k); most Class 2
devices require Premarket Noti;cation 510(k); and most Class 3 devices require Premarket
Approval.
10.1.2.2.
FDA Regulation - Prototype Reference Implementation
None at this time.
10.1.3.
Carrier Terminal Acceptance requirements for a module depend on the radio access
technology (e.g. 3G/ 4G LTE), the licensed frequency bands of operation, and services
(voice/data/SMS) supported.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015
Lab and ;eld tests are required to validate radio and physical layer characteristics, protocol
implementation and network performance. Standardized test speci;cations cover signaling
conformance, radio transmission and reception, and radio resource management. System
performance and interoperability tests include over-the-air radiated power transmission, SIM
interaction, network selection, call performance, data throughput and user experience.
Copyright 2015 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 http://projectara.com/mdk-license.txt.
MDK Release 0.2 (alpha)
January 8, 2015