Neptune UI

Neptune provides IVI (infotainment) system, which depends on Qt Application Manager for the necessary infrastructure. It comes with support for a Head Unit and Cluster. The system also provides the infrastructure to develop, maintain, and deploy applications.

QtQuick-based digital instrument cluster

QtQuick-based Head Unit

The Head Unit interface provides additional pages that are accessible by swiping from right-to-left or left-to-right:

Available applications on the Head Unit

Settings that provides more control on the HEAD Unit and Cluster. The APP STORE tab in the Settings page lets you install/uninstall applications from the Head Unit.

Provides options to enable or disable features on the car.

Provides an overview about the car itself.

How to Run the UI?

Typically the UI works out-of-the-box using Qt Creator, provided you choose to run your application on Qt Automotive emulator, iMX6, or DriveCX targets. You can also run only the HMI without your application. The following sections provide instructions on how to run the HMI alone.

Emulator Image

The Qt online installer automatically creates a virtual machine setup for the emulator image that comes with the Qt Automotive Suite installation, provided you have VirtualBox installed before running the Qt installer.

Use the following command to run the virtual machine setup:

emulator --vbox QtAutomotive-10

Where, emulator is a tool that is shipped with Qt Automotive Suite, and "QtAutomotive-10" is the name of the virtual machine setup.

Linux Desktop

If you are interested in exploring the reference HMI without installing Qt Automotive Suite, follow these instructions to run the HMI on your Linux desktop:

  1. Clone the Qt Application Manager and Neptune-UI git repositories.
  2. Build Qt Application Manager against Qt 5.6 or later that is installed on your desktop. See the Qt Application Manager installation page for more details on building.
  3. Build Neptune UI and install it by using the following command:
    qmake -r INSTALL_PREFIX=<choose a loation> neptuneui.pro
    make && make install
  4. Run the following command from the directory where neptune-ui is installed:
    appman -r -c am-config.yaml

    Note: You can edit the am-config.yaml to comment out parts that are not relevant. For example, the SD card install location under the "installationLocations:" section.

Where, appman is a utility that is installed when you built Qt Application Manager, AM_CONFIG_FILE points to the Application Manager's config.yaml.

Note: Add -I <neptune-ui git clone>/dummyimport to the appman command-line in case you don't have Qt IVI installed.

UI Configuration

The UI configuration is split into several yaml files for the ease of maintenance. The following is a list of those configuration files and their purpose:

  • config.yaml - Defines the generic parameters such as the install location for applications installed from the APP STORE, database, and so on.
  • am-config.yaml - Defines the Head Unit and Cluster-specific configuration such as the built-in applications, their runtime (native or qml), import paths, UI-specific configuration such as full-screen mode, main QML file (if runtime is qml), and so on.
  • info.yaml - Defines application-specific configuration such as the main QML file, its imports, and so on.

The following is a sample am-config.yaml:

formatVersion: 1
formatType: am-configuration

# basic AM functionality - the built-in apps are in 'apps'.

applications:
  builtinAppsManifestDir: "apps"

# QML apps will be able to import from modules...

runtimes:
  qml:
    importPaths: [ "imports/shared" ]

# ... as well as the SystemUI

ui:
  fullscreen: yes
  mainQml: "Main.qml"
  importPaths: [ "imports/shared", "imports/system" ]
  windowIcon: "imports/shared/assets/icons/active/apps@96.png"

systemProperties:
  public:
    styleConfig: "Config1920x1080.qml"
    showCluster: yes
  private:
    appStoreServerUrl: 'http://chaos.pelagicore.net:8080'

# development setup: no security

flags:
  noSecurity: yes
  noUiWatchdog: yes

These options are also configurable from the command line as a parameter to the appman utility.

Note: You must regenerate the yocto image for the desired target after changing these yaml files.

© 2017 Pelagicore AG. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.