SmartDeviceLink (SDL) is a standard set of protocols and messages that connect applications on a smartphone to a vehicle head unit. This messaging enables a consumer to interact with their application using common in-vehicle interfaces such as a touch screen display, embedded voice recognition, steering wheel controls and various vehicle knobs and buttons. There are three main components that make up the SDL ecosystem.
The Core component of SDL runs on a vehicle's computing system (head unit). Core’s primary responsibility is to route messages between connected smartphone applications and the vehicle HMI. It can connect a smartphone to a vehicle's head unit via a variety of transport protocols such as Bluetooth, USB, Android AOA, and TCP. Once a connection is established, Core discovers compatible applications and displays them to the driver for interaction via voice or display. The Core component is configured to follow a set of policies defined in its local policy database and updated by a policy server. The messaging between a connected application and SDL Core is defined by the Mobile API and the messaging between SDL Core and the vehicle is defined by the HMI API.
Pull Requests Welcome!
See the Getting Started guide in the developer portal for instructions on how to build and start SDL Core.
After setting up SDL Core, you will need to connect it to an external HMI. The HMI component of SDL needs to be developed separately from this project, and should be tailored to your specific head unit. Several sample browser-based HMIs are available for testing purposes:
See the HMI Development Guide for more information on building your own HMI.
If you are just developing an SDL-connected application and simply want an environment to test it in, it is not necessary to build SDL Core from scratch. You can use our Manticore project first, which creates a testing environment in the cloud using SDL Core and the Generic HMI.
If you have any questions regarding the setup of SDL Core or regarding the integration of SDL into a head unit, first visit our SDL Core FAQ. If you still have questions, you can post a question in the
core-help channel of our Slack group (sign up here).
Conversation regarding the design and development of SmartDeviceLink technology is managed via the SDL Evolution Process. We also encourage interested parties to write issues and submit pull requests right here in the GitHub repository. If you choose to do so, please read our Contributing Guide beforehand.