Skip to content
Justin Dickow edited this page Mar 9, 2016 · 6 revisions

Welcome to the SmartDeviceLink (SDL) Open Source project.

Quick Start

To quickly find the documentation you are looking for please select one of these options:

I want to use an SDL enabled App in my Car | I want to add SDL to my App | I want to implement SDL in my Infotainment System


Embedding SmartDeviceLink on your hardware

Integrating SmartDeviceLink in the vehicle is necessary for an Automaker to take advantage of the App Ecosystem provided by SmartDeviceLink. To get started with the implementation of SmartDeviceLink as an automaker these repositories are vital:

sdl_core SDL core is the main process of SmartDeviceLink. It handles the mobile side and manages the connection of SDL enabled Apps. It's also responsible for connecting to the HMI aspect and the SDL Manager, which has to be written for adapted for every integration to handle the connection to the local software environment (Different UI Layer, different OS, etc)

sdl_core_docker Enables you to run the SDL core instance in Docker

sdl_server The SDL Server enables the backend security functionality. This is a reference implementation of an online service that manages the Apps that are enabled to work with your system. If a new app connects to SDL Core it will reach out to SDL Server to get information about the connected app.

SDL_hmi SDL_hmi includes a sample SDL HMI written in html5. The SDL consortium is currently working on an updated reference HMI. As an automaker, when first investigating the value of SDL, we recommend using this HMI on your target hardware to sample the capabilities of SDL with some production applications.

rpc_spec This document contains all possible interactions between the Mobile App and the SDL core. All functions, enums and structs are defined here. The specification for each branch of SDL Core, such as master and develop can be found in the repositories src/interfaces/ folder.

protocol_spec The protocol spec includes the byte layer specification for the communication between Mobile Apps and SDL core.

sdl_atf_test_scripts sdl_atf TODO

rpc_builder_app_ios This is an iOS app. Use this app to connect to SDL core and validate your implementation. The Builder App can build any remote procedure call and send it out to the SDL core over TCP or iAP.


Adding SmartDeviceLink to your App

sdl_mobileweather_tutorial_android sdl_mobileweather_tutorial_ios The mobile weather tutorials are working SDL enabled weather apps for iOS and Android. They will guide you step by step through the process of adding SDL into your existing Application.

Please find the tutorial in the wiki (Android iOS)

hello_sdl_android hello_sdl_ios This is an empty project with an iOS skeleton that can be used for quickly creating an SDL enabled app from scratch.

sdl_android sdl_ios This repository will get you access to the source code of SDL library for mobile Apps. You can install the iOS library using Cocoapods and not use this repository.

relay_app_ios The Relay App was specifically designed for iOS developers. The current SDL implementations use a USB connection, making it impossible to connect the app to the debugger during runtime. The relay app will enable you to run you app in the simulator and connect to SDL core via an second iPhone running the Relay App server.

rpc_builder_app_ios You can use the RPC Builder App to quickly try out different function calls. Connect the App to the emulator or real hardware.


Using a SmartDeviceLink enabled app

Please find more information on how to use SDL enabled apps at the manufacturer's website. For Ford's implementation you can go to your local Ford website. The link for the US page is here

Getting your app into Ford vehicles

You can go to Ford's developer site to get more specific information on how to get your application approved for use in Ford vehicles.