Introduction

This project aims to develop an MQTT client that interfaces with the kuksa.val platform for accessing vehicle signals. The client will provide compatibility with AWS IoT leverage current standards for vehicle communication. Security will be enforced through mTLS authentication.

Definition of Done

Functional Requirements

  1. MQTT Client Implementation: The client must successfully interface with kuksa.val to access vehicle signals.
  2. AWS IoT Compatibility: A working reference implementation for AWS IoT is required, including device onboarding and data routing to Amazon Timestream DB.
  3. Compliance: The client must adhere to current VSS specifications.
  4. Vehicle Identification: The client must be able to resolve vehicle identification numbers or other unique identifiers.
  5. Protobuf: Payload definition for MQTT is defined.
  6. Configurability: The client should be adaptable to work with any MQTTv5 broker.
  7. AWS IoT Demo: A working demo with AWS IoT device onboarding, message routing to Amazon Timestream DB, and vehicle signal visualizations through Amazon Managed Grafana.

Non-Functional Requirements

  1. Documentation: Comprehensive documentation must exist, detailing the architecture, setup, and usage instructions, including steps for the AWS IoT demo.
  2. Unit Tests: All critical functionalities, including the AWS IoT demo, must be covered by unit tests.
  3. Peer Review: The code must be reviewed by at least two engineers and be approved.
  4. Security: mTLS should be used as the primary method for secure authentication.

Requirements

Functional Requirements

  1. Language and Libraries: The client implementation should be done in C/C++, Python is an option as well.
  2. MQTT Protocol Version: The client must be compatible with MQTTv5.
  3. Cloud Architecture: Architecture details for interfacing with AWS IoT, including components for device onboarding and message routing to Amazon Timestream DB.
  4. Data Schema: Define a schema for vehicle signals based on VSS
  5. Protobuf Specifications: Focusing on signal updates.
  6. Configuration File: Design a user-configurable file for broker details and other settings.

Non-Functional Requirements

  1. Unit Testing Framework: Identify the framework and libraries to be used for unit testing.
  2. Documentation Standards: Establish standards and templates for documenting the code and architecture.
  3. Code Review Process: Outline the process and criteria for peer code reviews.
  4. Security Protocols: Specify the mTLS version and cipher suites that will be supported.

High level architecture 

Next Steps

  1. Migrate this document to Confluence
  2. Task Break Down: Start breaking down the work needed to deliver the mentioned DoD
    1. Interfaces definition
    2. Cloud breakdown
  3. Task Allocation: Assign specific components and tasks to team members, including tasks related to the AWS IoT demo.
  4. Development Timeline: Establish milestones and deadlines, ensuring that the demo is ready for a specified milestone.
    1. Embedded World Demo as a target
      1. Start in January
      2. Targeting March for vehicle part
      3. End by April
  5. Community Outreach: Strategies for involving the AGL community in project feedback and contributions.

Monday, October 30

Task Breakdown

Device Part:

Cloud Components: