Veethree D7 SDK
Loading...
Searching...
No Matches
D7 Software Development Kit

Overview

To obtain the D7 SDK, please contact us.

D7 SDK provides a comprehensive set of libraries for developing robust applications for the Veethree D7 platform, with a primary focus on hardware I/O operations, system control, and networking capabilities.

The D7 runs on a custom-built Linux distribution, so all the usual Linux APIs and functionality are available.

Remarks
This is a beta release. The APIs are subject to change in future releases.

Getting started

To get started with the D7 Software Development Kit, please begin by reading the User Walkthrough.

The topics covered are:

  1. Development environment setup
  2. Device connection
  3. Prepare the D7 device
  4. Building a CLI application using the D7 SDK
  5. Installing Qt libraries and Qt Creator
  6. Building a QML application using the D7 SDK
  7. Setup the D7 SDK to use in Qt Creator
  8. Creating software updates
  9. Applying a software update on a device
  10. Device firewall

Detailed documentation

More information about the D7 SDK, its toolchains, the differences between release and development images, hardware interfaces, etc., can be found in the details section of the documentation:

  1. D7 SDK components
  2. D7 SDK build toolchains
  3. Differences between release and development images
  4. Partitions on the D7 Platform
  5. Target software updates
  6. Software Recovery
  7. Hardware interface on the target
  8. External storage
  9. Video inputs on the D7 Platform
  10. CAN Interfaces on the D7 Platform
  11. WLAN Interfaces on the D7 Platform
  12. Bluetooth
  13. Log Manager and Log Operations

Known issues

SDK 2.1.0 and 3.0.0 compatibility information

Important

Update files, recovery files and flash files are NOT compatible between 2.1.0 and 3.0.0.

In order to use 3.0.0, you must flash your device with a 3.0.0 flash image. After that you can create and use updates and recovery files normally.

Any updates or recovery files created with 2.1.0 will not work on a 3.0.0 image, they must be generated with SDK 3.0.0.

For more info see Upgrading from 2.1.0 to 3.0.0: Important Compatibility Information

The touch input may seem to not work

If your unit is affected by the touch input issue, please try the steps outlined in Pre-production hardware touch input issues with recent OS images.

The rotary encoder may produce 2 events for each detent

For the rotary encoder issue, please see Pre-production rotary encoder produces two events for each detent for a fix.

If you encounter any other issues, please contact support.

Filesystem overlays

The system image makes use of filesystem overlays for system configuration, primarily /etc directory. see Overlays for details.

In certain scenarios — particularly when mixing release and development updates — there is a risk of inadvertently enabling root access on release images. The following sequence of steps can lead to this situation:

  • The device is running a release image.
  • A developer applies a development image update.
  • While running the development image, credential files are modified (e.g., setting a user password, adding a new user, etc.).
  • A release image update is then applied.

After these steps, it will be possible to log in as the root user on a release image. This scenario is expected to occur only during the development cycle on development devices. Production devices must never run development images to prevent this risk.

Important
Never use development images in production devices.

D7 SDK components

The D7 SDK's installation folder contains the D7 SDK toolchains for the target and the host machine, creating software update images, a number of utilities for flashing the board, integrating the development kit into Qt Creator and more.

Please refer to the Components page for a complete overview of the components available in the installed SDK.

D7 SDK core libraries

The following are the core libraries of the D7 SDK.

  • I/O library - Complete hardware interface for digital I/O, PWM signals, analog sensors, and 4-20mA interfaces.
  • System library - C++ programatic interfaces for controlling the display backlight, button illumination, the buzzer and bootloader environment variables.
  • Communications - Managing, configuring and using any communication interface available on the platform, such as CAN ports, serial ports and ethernet.
  • CT2KLib Compatibility - Compatibility library for using Veethree's CT2KLib, which has support for the J1939 and NMEA 2000 protocols. In depth documentation for the CT2KLib library can be found here.
  • Utilities - Convenience functions and wrappers for common operations, including some system calls and file operations.
  • Logging library - Configurable logging system for application diagnostics.

Example projects

The Examples section provides full working projects that demonstrate the functionality of the device. They are good starting points for new application development using the Core Libraries as well as integrating them in Qt QML projects.

Important
In order to use Qt libraries you must have your own Qt development and distribution licenses. Please refer to https://www.qt.io/qt-licensing for more information.

More example projects are available in the D7 SDK installation directory, under the examples folder.

All of the example projects rely on the D7 SDK being installed, so please make sure that is the case. Going through the User Walkthrough will ensure the SDK is installed correctly.