Skip to content

SUIT Hackathon Test Harness

Francisco edited this page Mar 18, 2019 · 12 revisions

OTA server application

Manifests and firmware images can be uploaded to a python based sever that can receive images/manifests and expose them as COAP resources. Where and how to expose the resources is determined by the publisher.

The server can also notify's devices of the existence of a new manifest, delivering information about where (the URL) to find the manifest. This is done via a PUT to a specified address (including resource location).

Concerns:

  • Store Firmware's & Manifest's
  • Expose COAP resources for Firmware's & Manifest's
  • Send notification as a COAP PUT to a list of devices provided by publisher

Assumptions:

  • Publisher takes care of how he associates images and manifests
  • Publisher indicates resource location (URL)
  • Not all manifest publications will be notified
  • Server doesn't maintain a list of devices to whom to publish or any such logic, it is expressively told by publisher to whom to notify of a new manifest

Set UP

Set up and usage instructions can be found at ota-server.

End Device

The end device will be running RIOT-OS. The end device itself has two important building blocks:

  • bootloader
  • COAP application

COAP Application

The COAP application exposes a trigger resource to witch it can receive POST/PUT notifications where the payload is an URI indicating where the device can fetch a new MANIFEST.

Using Block Coap the end device e

Support for SUIT is note yet merged in RIOT's main branch. The RIOT-Node will be running

Concerns:

  • Expose a COAP trigger resource
  • Fetch manifest
  • Parse the manifest
  • Fetch firmware images
  • Boot from new images

Set UP

Requirements:

  • RIOT

Installation RIOT-SetUp.

USage

Manifest Generator

Currently no moran-suit-manifest-04 manifest generator is available. A manifest generator for moran-suit-manifest-01 is available at suit-manifest-generator.

Wrappers to use the generator easily have been implemented and can be used for this test case.

Manifest Parser

Clone this wiki locally