Technical Reference Manual Version 1.0.3 July 2020 - Roku TV Ready Technical Reference Manual Version 1.0.3 - Roku ...

Page created by Jamie Jenkins
 
CONTINUE READING
Technical Reference Manual Version 1.0.3 July 2020 - Roku TV Ready Technical Reference Manual Version 1.0.3 - Roku ...
Roku TV Ready Technical Reference Manual   Version 1.0.3

                            Technical Reference Manual
                                   Version 1.0.3
                                     July 2020

                                                                                 1
© 2020 Roku Confidential
Technical Reference Manual Version 1.0.3 July 2020 - Roku TV Ready Technical Reference Manual Version 1.0.3 - Roku ...
Roku TV Ready Technical Reference Manual                                                                    Version 1.0.3

Table of Contents
Introduction ............................................................................................................................... 6
   High Level Overview ........................................................................................................................... 6
   Typical Topologies............................................................................................................................... 6
   Example Use Cases .............................................................................................................................. 7
Standard CEC Messages ............................................................................................................. 7
   System Audio Control ......................................................................................................................... 7
   Remote Control Pass Through ............................................................................................................. 7
   System Standby .................................................................................................................................. 7
   Device OSD Name Transfer ................................................................................................................. 8
Roku TV Ready Messages ........................................................................................................... 8
   Initial Handshake ................................................................................................................................ 8
       AnnouncePresence ................................................................................................................................................ 10
       InitSession.............................................................................................................................................................. 10
       AcceptSession ........................................................................................................................................................ 10
   Option Synchronization......................................................................................................................10
       Option Format ....................................................................................................................................................... 12
       SetState ................................................................................................................................................................. 15
       ReportState............................................................................................................................................................ 16
Overview of Development Process ........................................................................................... 17
   Quick Start guide ...............................................................................................................................17
   Updating the Roku TV Ready Development Kit Hardware ..................................................................18
   UI Testing Interface ............................................................................................................................18
       Setup and Configuration ........................................................................................................................................ 18
       Interactive Mode ................................................................................................................................................... 19
       Test Mode .............................................................................................................................................................. 20
       Testing with RokuTV .............................................................................................................................................. 21

Certification Process................................................................................................................. 22
   Overview ...........................................................................................................................................22
   Submit Product Proposal....................................................................................................................23
   Roku Issues Product ID and Feature Set ID .........................................................................................23
   Submit Certification Request and Sample Hardware ..........................................................................23
   Roku Performs Certification Testing ...................................................................................................24
   Roku Safelists Product .......................................................................................................................24
Testing Procedure .................................................................................................................... 25
   Standard CEC Messaging Tests ...........................................................................................................25
       Testing Methodology ............................................................................................................................................. 25
       Initialization Procedure ......................................................................................................................................... 25
       Standby and Power................................................................................................................................................ 25
       System Information ............................................................................................................................................... 26

                                                                                                                                                                                 2
© 2020 Roku Confidential
Technical Reference Manual Version 1.0.3 July 2020 - Roku TV Ready Technical Reference Manual Version 1.0.3 - Roku ...
Roku TV Ready Technical Reference Manual                                                                  Version 1.0.3

     OSD Name Transfer ............................................................................................................................................... 26
     Audio System Settings (And Remote Control Pass-through) ................................................................................. 26
  Roku TV Ready Messaging Tests .........................................................................................................28
     Testing Methodology ............................................................................................................................................. 28
     Handshake ............................................................................................................................................................. 28
     Feature set SetState .............................................................................................................................................. 28
     Feature set Query .................................................................................................................................................. 28
     Feature set SetState full range .............................................................................................................................. 28
     Feature set SetState with variable Options Length ............................................................................................... 29
     Feature set SetState NOP ...................................................................................................................................... 29
     Session Re-initialisation ......................................................................................................................................... 29
     Session Re-initialisation after HPD ........................................................................................................................ 29
     Session after standby............................................................................................................................................. 30

                                                                                                                                                                            3
© 2020 Roku Confidential
Technical Reference Manual Version 1.0.3 July 2020 - Roku TV Ready Technical Reference Manual Version 1.0.3 - Roku ...
Roku TV Ready Technical Reference Manual                    Version 1.0.3

Change History
Version        Date                                         Comments
  v0.1    September 2019             Initial Version
                                 §   Updated json format for FeatureSet description to add
                                     remaining fields and simplify structure; Description of feature
                                     sets improved and moved to the Setup and Configuration
                                     section
  v0.2    December 2019          §   New web-based UI, including interactive development mode
                                 §   Removed S/PDIF topology as this is not a requirement for
                                     soundbars to participate in the program
                                 §   Removed Vendor Specific Information test.

                                 §   Draft certification process
                                 §   Update to published name "Roku TV Ready"
  v0.3    January 2020
                                 §   Minor editorial changes

                                 §   Remove requirement for DALS from 1.0 release
                                 §   Update SetState and ReportState protocol to support backwards
                                     compatible feature set enhancements and optional features
  v1.0    February 2020
                                 §   Update set of certification tests
                                 §   Document the 'soundmode' feature id

                                 §   Additional clarification added to feature set definition, default
                                     values on reset, mapping of option ranges between soundbar
 v1.0.1   April 2020
                                     and RokuTV

                                 §   Additional clarification added to feature set definition,
 v1.0.2   May 2020                   conditional displaying of options

                                 §   Added ability to test UI locally with a RokuTV
 v1.0.3   July 2020              §   Added tests to validate response for empty SetState message

                                                                                                    4
© 2020 Roku Confidential
Technical Reference Manual Version 1.0.3 July 2020 - Roku TV Ready Technical Reference Manual Version 1.0.3 - Roku ...
Roku TV Ready Technical Reference Manual                Version 1.0.3

Glossary
               spec for the list and definition of available commands
[Parameter] list of parameters passed with the message.
                       Device Under Test : the device to which the Roku TV Ready Development
DUT
                       Kit hardware is connected.
HPD                    HotPlug Detect
                       The collection of options exposed by a device, as described in the section
Feature set
                       on Option Synchronization

                                                                                               5
© 2020 Roku Confidential
Technical Reference Manual Version 1.0.3 July 2020 - Roku TV Ready Technical Reference Manual Version 1.0.3 - Roku ...
Roku TV Ready Technical Reference Manual                   Version 1.0.3

Introduction
High Level Overview
Roku TV Ready is a communications standard and API for partners developing soundbars, AVRs
and speaker products connected via HDMI-ARC to a Roku TV. Areas addressed include the use of
a single remote and the integration of sound settings into the TV user interface for a "better
together" user experience.

Roku TV Ready is based on the HDMI-CEC standard and uses existing standard CEC messages,
extended with a set of Roku TV Ready specific CEC Vendor Commands.

A versioned handshake mechanism and rules for signalling unsupported features are used to allow
for future enhancements without breaking compatibility with existing devices.

To accompany the API, there is a development and test toolkit and a certification process.

This document describes the API, how to use the development toolkit, and how to submit a product
for certification.

Typical Topologies
The simplest and possibly most common topology is a soundbar connected to a Roku TV over
HDMI-ARC:

Variations include having an external player, such as a DVD player, as a source input to a Roku
TV:

                                                                                                  6
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                    Version 1.0.3

Example Use Cases
   •   When the user first plugs in a new soundbar to their Roku TV, the devices recognise each
       other and the user is offered the opportunity to configure them to work together. If the user
       accepts, the configuration information is exchanged automatically without the need for any
       further input from the user.
   •   Using the Roku TV remote, the user brings up the sound settings menu and can see and
       adjust the soundbar options; the Roku TV sends the new settings to the soundbar.
   •   The user uses a third party app to change sound settings on their Soundbar; the UI on the
       Roku TV reflects the change.
   •   The user changes volume using the Roku TV remote; the Roku TV sends the volume
       change request to the soundbar which changes the output volume without the user needing
       to use the soundbar remote.
   •   The user changes volume using the Roku mobile app; the Roku TV sends the volume
       change request to the soundbar which changes the output volume without the user needing
       to use the soundbar remote.

Standard CEC Messages
The following standard CEC messages must be supported.

System Audio Control

Remote Control Pass Through

Soundbars are required to support at least the VolumeUp, VolumeDown and Mute user operations.

System Standby

                                                                                                   7
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                  Version 1.0.3

Device OSD Name Transfer

Roku TV Ready Messages
Messages specific to Roku TV Ready are defined as sub-operations of the standard  message, using the Roku OUI 8AC72E.

All Roku TV Ready messages have the same CEC  prefix:

Bytes               Meaning                   Example Values
0       [CEC] Source and destination       0x0F: TV → Broadcast
1       [CEC] Vendor Command with Id 0xA0
2-4     [CEC] OUI                          0x8AC72E

Initial Handshake
When the user first plugs a new Roku TV Ready device in, the Roku TV will initiate the
handshake sequence, checking the device against the safelist and the list of known devices and then
display the setup screen.

When the device is next powered on, the Roku TV will recognize the serial number and re-
synchronize the state of the configuration options.

                                                                                                 8
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual   Version 1.0.3

                                                                                 9
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                    Version 1.0.3

AnnouncePresence

This message is broadcast by the Roku TV to indicate that Roku TV Ready is available when it
detects a compatible device has been plugged in. Any existing Roku TV Ready session should be
assumed to have been torn down and no messages other than InitSession should be sent until
an AcceptSession message is received.

Bytes      Meaning             Example Values
5       Subopcode          0x10: AnnouncePresence
6       Protocol version 0x02

InitSession

This message is sent by a Roku TV Ready device to the Roku TV to request a session. The device
details in the message will be used to check that the device is an approved device. Any existing
Roku TV Ready session will be torn down and no messages should be sent until
an AcceptSession message is received.

Bytes                      Meaning                                   Example Values
5       Subopcode                                      0x11: InitSession
6       Protocol version                               0x02
7       Product ID assigned by Roku                    0x01
        Unique Device Identification, e.g. serial      0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E
8-15
        number                                         0x0F

AcceptSession

This message is sent by the Roku TV to a Roku TV Ready device to indicate that the device is
approved.

Bytes                        Meaning                             Example Values
5       Subopcode                                             0x12: AcceptSession
6       Protocol version                                      0x02
7-15    Roku TV device identification for logging purposes

Option Synchronization
Options are grouped into feature sets. Each device supports exactly one feature set, and the same
feature set can be reused across multiple devices. Feature sets are described using the json file
format shown in the following section; the same file format is used both to describe the options to
the Roku TV Ready Development Kit hardware and when submitting a certification request.
                                                                                                  10
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                   Version 1.0.3

A feature set can contain a maximum of 18 options, however Roku recommends up to 8 options to
fit them on a single screen without the need to scroll.

When the user displays the sound settings on the Roku TV, an empty SetState message will be
sent to the device. The device must respond with a ReportState message with the current state of
all the options. The value 0xF can be used to indicate that an option from the feature set is
currently unsupported on the device. This will cause the option to be hidden from the Roku UI.
This is useful for options that should only be available if the device is in a certain state, or has
optional peripherals like a subwoofer connected. There is one exception to this rule: the mandatory
"soundmode" option may not return 0xF, as it always has to be supported.

When the user changes an option on the Roku TV, a SetState message will be sent to the device
indicating the new value of the changed option and a value of 0xF for all other options that have
not changed. The device must respond with a ReportState message with the resulting state of all
the options. This allows for both the case where the user's exact choice cannot be achieved and the
case where changing one option affects one or more other options.

The device must also send ReportState messages when options are changed through some other
mechanism, such as the device's native user interface.

                                                                                                  11
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                        Version 1.0.3

Option Format

Options are encapsulated in a feature set and described in JSON, and can be edited through the
configuration menu of the SDK described in section UI Testing Interface. It is recommended to
validate the entered json in the tool before saving it. This feature set definition is also part of the
information that is provided to Roku during product certification.

The "id" of the feature is used internally in the software, the "title" is the text presented to the user,
and the "hint" is the description of the feature. The feature "hint" is currently not displayed to the
user.

The option "title" is the text that is presented to the user as the selectable option, and "hint" is the
text that is presented to the user as a detailed description of the option.

 Field     Character limit

 "title"   15

 "hint"    46

The feature set id is a unique number that is allocated by Roku as part of the certification process,
please see that section for further details.

As an example, let us use a soundbar exposing the following two features:

"Night mode", which can be Off or On
"Sound mode", which can be Normal, Party or Cinema

Roku allocates a feature set id, "4" in this example.

The features are described with a json file:

                                                                                                           12
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                     Version 1.0.3

{
    "4": [
     {
      "id": "soundmode",
       "title": "Sound Mode",
      "hint": "Select a sound profile",
       "options": [
         {
           "id": "normal",
           "title": "Normal",
          "hint": "Standard profile for normal listening"
         },
         {
          "id": "party",
           "title": "Party",
          "hint": "Bass boost for party time"
         },
         {
          "id": "cinema",
           "title": "Cinema",
          "hint": "Optimised for big cinema sound"
         }
       ]
     },
     {
        "id": "night_mode",
        "title": "Night Mode",
        "hint": "Limits loudness of volume",
        "options": [
          {
            "id": "off",
            "title": "Off",
            "hint": "Do not limit volume"
          },
          {
            "id": "on",
            "title": "On",
            "hint": "Limit volume of loud noises"
          }
        ]
      }
    ]
}

Mandatory Feature

Every feature set must have a feature with the ID "soundmode". This feature will be treated as the
primary audio option for the device and will be promoted to a quick access location in the Roku
TV user interface, on the “Options” screen. On the "Options" screen the default Roku title of
"Sound Mode" will be used. When the feature is presented alongside the remaining feature set in
the "Sound Settings" screen, the title defined in the feature set will be used.

The title of the feature may be different from "Sound Mode", but it is crucial that the ID is
"soundmode". The SDK test suite will generate an error if this feature is not present in the feature
set json.

                                                                                                   13
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                     Version 1.0.3

Option Order & Defaults

The options of a feature are presented to the user in a carousel selector which allows left/right
navigation, and it wraps around. When the user resets the Sound Settings in the Roku UI, all
features will be defaulted to the option at index 0. For example, a feature like "Bass Level" may
have the options (-2, -1, 0, +1, +2). To avoid -2 being the default option after a reset, we
recommend defining the option order as (0, +1, +2, -2, -1). This way 0 is the default option and
pressing the left key in the UI will wrap around to -1.

The system resetting to the options at index 0 for all features shall yield a valid configuration, no
mutual exclusivity for options at index 0 is permitted.

Option Range

Each option is communicated in a nibble (4 bits), giving 15 options as 0xF is a reserved value for
“unsupported on this device”. For products which have a broader option range, they shall be
adapted to a maximum of 15 options. For numerical options, Roku UI requires that they are
defined with increments of 1 to give a continuous sequence. As an example:

Original option range (51) RokuTV Ready range (max 15)
-25                            -7
-20                            -6
-16                            -5
-12                            -4
-9                             -3
-6                             -2
-3                             -1
0                              0
3                              +1
6                              +2
9                              +3
12                             +4
16                             +5
20                             +6
25                             +7

                                                                                                        14
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                     Version 1.0.3

SetState

This message is sent by the Roku TV to a Roku TV Ready device to change a subset of the options
in a feature set. Each option in the feature set is represented in sequence by the next nibble, giving
15 possible values for each option. the value 0xF is reserved to mean 'unchanged'. A short form of
the message containing only the first byte can be sent to request the current state.

Implementations must ignore and discard any unexpected trailing nibbles, irrespective of what
value they contain.

If a message contains fewer option values than expected, implementations must accept the
message and treat the missing values as-if they were present and set to 0xF.

When SetState is used by the Roku TV to poll the current state of the device, then the message
will be empty, ending at byte 5. The device must respond with a ReportState, providing the
currently used feature set ID and state of all options.

Bytes                       Meaning                                     Example Values
5       Subopcode                                          0x30: SetState
6       Feature set ID, allocated by Roku                  0x01: Example feature set with 3 options
                                                           0xF1 0xF0:

                                                               •   option 0 → unchanged
                                                               •   option 1 → set to 1
                                                               •   option 2 → unchanged
                                                               •   Last nibble ignored.
7-15    Option values, packed into one nibble per value
                                                           0xF1

                                                               •   option 0 → unchanged
                                                               •   option 1 → set to 1
                                                               •   option 2 → unchanged

                                                                                                   15
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                  Version 1.0.3

ReportState

This message is sent by a Roku TV Ready device to the Roku TV to report the current state of all
the options in a feature set, either in response to a SetState message, or as a result of a change
through some other means such as the device's own user interface. Option values are represented as
described for SetState.

ReportState messages may not be sent with
Roku TV Ready Technical Reference Manual                     Version 1.0.3

Overview of Development Process
Most development and testing can be done using the hardware supplied with the development kit.
It consists of a modified Raspberry Pi 3 accessible over HTTP, that emulates an HDMI sink
supporting Roku TV Ready over its existing HDMI connector. The kit runs a test suite that covers
all areas of the Roku TV Ready specification, provides UI based and automation ready
configuration and testing interfaces, and provides detailed error logs and certification results over
HTTP. An interactive mode is also available for more general development and testing.

A CEC sniffer may also be useful to track down issues in the use of the protocol.

Quick Start guide

   1. Connect the Roku TV Ready Development Kit hardware to your local dhcp enabled
      network (the network you plan to access it from). It will automatically acquire the
      hostname RokuCWxxx, where xxx is the last three octets of the device mac address.
   2. Connect your DUT (Device Under Test) over an HDMI cable ready for testing, if required
      via the provided CEC message sniffer.
   3. Use a standard web browser to visit http://.local to access testing UI (see below
      for details).
                                                                                                   17
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                    Version 1.0.3

Updating the Roku TV Ready Development Kit Hardware

To update an existing device, for example from v0.1 to v0.2, you will need:

   §    The new image from Roku
   §    An SD Card writer

The following instructions assume that a Linux command line terminal is available; alternative
tools are available for other operating systems.

   1. Power off the Roku TV Ready Development Kit hardware
   2. Locate the micro SD card at the lower rear of the device and gently remove it
   3. Place the card in an SD card writer, using an adaptor if required
   4. Check the device ID of the SD card writer; lsblk is a useful tool for this. These
      instructions will assume it is /dev/sdc; this step is very important as using the wrong device
      in the next instruction could lead to data loss.
   5. Assuming that the new image from Roku is located at ~/Downloads/sd_card_v02.img
      and the SD card writer is at /dev/sdc, issue the instruction dd
        if=~/Downloads/sd_card_v02.img of=/dev/sdc
   6. Put the sd card back in the Roku TV Ready Development Kit hardware, with the connectors
      facing up and re-power the device
   7. Use a standard web browser to visit http://.local to access the new UI (see
      below for details).

UI Testing Interface
Setup and Configuration

The Home Page offers access to both the test and interactive modes, via the buttons at the top left.

                                                                                                  18
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                      Version 1.0.3

The Configure button allows the device to be configured with the CEC parameters for the DUT
and the feature set exposed by the DUT.

It also allows the current time to be configured on the device, which does not affect the test results,
but is used in time-stamping any logs produced and may be useful when looking at logs later.

Interactive Mode

The interactive mode allows individual CEC and Roku TV Ready messages to be sent and
received. The buttons on the left are used for sending messages to the DUT and the console on the
right shows a log of what has been sent and received. For testing the feature set, the UI reads the
feature set description json and displays appropriate options to choose from.

Note that entering interactive mode may take a few seconds as it re-asserts the HPD line to ensure
that the session is starting in a clean state.

To use the feature set messages, it is first necessary to perform a Roku TV Ready handshake:

   §   Press the "Announce Presence" button and wait for the DUT to response with an
       InitSession message
   §   Then press the "Accept Session" button
   §   The DUT should now be ready to send and receive feature set messages.

                                                                                                    19
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                      Version 1.0.3

Test Mode

The test mode allows a set of tests to be selected and run. When the tests have finished, a summary
list of results is displayed, together with access to the logs. The Error log includes the result of each
test, with more detailed information about the nature of any failures. The Debug log includes more
information about the sequence of messages for the entire test run.

When requesting help from Roku, please be sure to include both logs, a copy of your feature set
json file and the configuration parameters that you have set.

                                                                                                      20
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                  Version 1.0.3

Testing with RokuTV

Testing with a RokuTV instead of the RDK provides the actual RTV UI experience and shall be
done as an end-2-end test before final certification. Please send your RokuTV Device ID
to rokutvready@roku.com to get your TV on a FW build with additional debug features.
For SDK v1.0.0 to v1.0.2 it is possible to test compatibility & UI with a RokuTV, once the device
information and feature set have been published by Roku to a configuration server.
From SDK version 1.0.3 onwards, it’s possible to test the device with a Roku TV locally, with the
device information and feature set hosted on the RDK.

Steps to configure Roku Tv Ready Development Kit on SDK 1.0.3 onwards:

   •   Connect your TV and Roku Tv Ready Development Kit to the same network.
   •   On the RDK:
          1. Configure → Branding info configure the Brand name and Help URL.
          2. Configure → CEC/RCW config enter the product ID assigned by Roku for your
              device
          3. Configure → Feature Sets configure the feature-set you want to test
   •   On the RokuTV:
          1. Access the "Roku Tv Ready Secret Screen" by pressing [5xHome, Up, Right,
              Up, Right, Up, Right] on the TV remote. Note this screen will be available only
              if your TV is on the test FW described at the beginning of this section.
          2. Use the Set SDK Host Option and enter the IP of your RDK, in the format http://
          3. Now restart the TV and connect the device to the HDMI-ARC port. You should be
              prompted with the Roku TV Ready setup.

If you have changed information on the SDK you may need to go to the secret screen to "Clear
cache". The TV stores which device is already set up, so if you want to go through the setup again
you will have to "Clear cache" in the Secret Screen and go to the Home Screen and re-plug the
soundbar. The "Update device list" entry shows the Roku TV Ready devices connected to the TV.

                                                                                                21
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual               Version 1.0.3

Certification Process
This document and the accompanying development kit will have been received as a result of
reaching an evaluation agreement with Roku. Before launching any products, a license agreement
must be in place.

Overview

                                                                                             22
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                   Version 1.0.3

Submit Product Proposal
The following form should be completed and sent to RokuTVReady@roku.com

               Product Name
          Model Name / Number
 Is this a new product or an update to an New /
             existing product?            Update
     Likely availability date for Roku
           Certification testing
  Please list the intended sound settings
     and the possible values for each

The list of sound settings and values will enable Roku to evaluate whether a new feature set ID will
be needed and anticipate any likely integration problems.

Roku Issues Product ID and Feature Set ID
Each new product will be issued with a unique product ID and it is required that the product
identifies itself over Roku TV Ready using this identifier. Depending on the feature set to be
exposed, Roku will specify the feature set ID to be used. This may be a new feature set ID, or may
be an existing feature set ID used by the same product family.

Submit Certification Request and Sample Hardware
Certification submission is initiated by pressing the "Start Cert Submission" button in the Roku TV
Ready Development Kit. This will run all the necessary tests and collect the logs and configuration
data. In addition, it will prompt for the information that will be needed to safelist the product,
including the final product name and help URL.

                                                                                                 23
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                    Version 1.0.3

The tool will create a compressed file containing all the information which can be downloaded
from the tool and sent to RokuTVReady@roku.com.

Roku will need at least one sample hardware unit to test, which must be clearly labelled with the
allocated Product ID. The shipping address will be advised in response to the certification request.

Roku Performs Certification Testing
Roku will complete certification testing within six weeks and will generate a test report. Any
failures will be explained, and corrective action identified.

Roku Safelists Product
Approved products will be safelisted to enable compatibility with all deployed Roku TV platforms
within one week (or a mutually agreed date) of the completion of testing.

                                                                                                  24
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                      Version 1.0.3

Testing Procedure
Standard CEC Messaging Tests
Testing Methodology

The CEC tests all involve the Roku TV Ready Development Kit issuing a command and validating
a response. In the event a CEC service is initiated by the DUT e.g.  these messages
will be ignored and will not be tested by this procedure.

All standard Request→Receive tests have a defined timeout before the test is considered failed.

All tests will be preceded by an initialization process as outlined below, and will be cancelled if
this process fails. This is to confirm devices correctly assign and report their physical address on
HPD assert.

Initialization Procedure

Before any tests are run the DUT must successfully initialize the CEC interface as follows.

As per the CEC standard, a sink device is able to pulse the Hot Plug Detect line low at any time,
for a minimum of 100 milliseconds, and force a read of its EDID data structure over the HDMI
DDC lines. The DUT is then expected to reassign its physical address based on the EDID, reassign
its logical address and report this through the CEC bus with . The
initialization test is hence as follows:

   1. The HPD line is initially high, it is pulled low for 5 seconds, and then reasserted to high.
   2. The device is expected to read the EDID structure over DDC, extract its physical address,
      reassign its logical address and broadcast .
   3. The value of the physical address reported will be verified against the test configuration.
   4. Failure to complete either reading the EDID or  will result
      in the cancellation of all future tests, as these will not be valid.

Standby and Power

The purpose of this test is to confirm that it is possible for a Roku TV to control the power state of
the DUT, the test is as follows:

   1.  is sent,  is expected and used to
      confirm the DUT is in the 'On' power state.
   2.  is directly addressed to the DUT.
   3. The DUT is given 10 seconds to go into standby, before  is
      sent,  is expected, and the power-state of the DUT must
      be 'Standby'.
   4. ['Power'] is directly addressed to the DUT.
   5. The DUT is given  seconds to go into power on, before  is sent,  is expected, and the power-state of the DUT must
      be 'On'.
                                                                                                       25
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                Version 1.0.3

System Information

The purpose of this test is confirm basic information needed for Roku TV Ready to operate can be
obtained from the DUT, the test is as follows:

   1.  is sent,  is expected, with an attached version
      reference of (at least) '1.4'.
   2.  is sent,  is expected with [physical
      address] matched to the one provided during the initialization procedure.

OSD Name Transfer

The purpose of this test is to confirm the name of the DUT can be read and displayed in the Roku
TV UI during Roku TV Ready Setup and on the Roku TV home screen. The test is as follows:

   1.  is sent,  is expected, with the attached [OSD Name]
      matching that specified in the configuration dialog.

Audio System Settings (And Remote Control Pass-through)

The purpose of this test is to confirm the DUT is compatible with the Audio requirements of Roku
TV Ready. These requirements are such that:

   •   The audio mode of the DUT can be configured and controlled by a Roku TV.
   •   The audio status can be read, and the volume of the DUT controlled by a Roku TV.
   •   The DUT must support LPCM, and may support other formats such as AC3 AAC and
       DDPLUS.

The tests are as follows:

                                                                                               26
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                   Version 1.0.3

System Audio Mode

   1.  is sent,  is expected, the
      [Status] parameter is discarded.
   2. ['0.0.0.0']is sent,  is expected,
      with the [mode] parameter required to be 'on'.
   3. [''] is sent (with a null [Physical address] parameter),  is expected, with the [mode] parameter required to be 'off'.

Remote Pass-through

   1.  is sent,  is expected, and the [status] parameter
      is recorded.
   2. ['Volume Up'] is sent,  is expected, and must
      contain a volume reading of one higher than the initially recorded status.
   3.  is sent.

Note press and hold operation is not currently tested, but must be supported and may be tested in
the future.

Audio Formats

   1. [0]['LPCM'] is sent,  is
      expected, with a 3 byte LPCM descriptor as the [short audio descriptor] parameter. The
      exact contents are not checked, only the requirement for LPCM support. N.B. HDMI Spec
      allows for a  if the audio format is not supported, this will be explicitly
      rejected.
   2. [0]['AAC'] [0]['AC3'] [0]['DDPLUS'] is sent,  is expected, with at least one [Short Audio Descriptor] attached.
      All supported formats are recorded for debugging purposes.

                                                                                                    27
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                       Version 1.0.3

Roku TV Ready Messaging Tests
Testing Methodology

The Roku TV Ready tests all involve the Roku TV Ready Development Kit issuing a command
and validating a response.

All standard Request→Receive tests have a defined timeout before the test is considered failed.

Handshake

The purpose of this test is to test the Roku TV Ready hand shake. This test will be run before any
and all other Roku TV Ready tests.

    1. AnnouncePresence is sent, to which the DUT must respond with InitSession
    2. AcceptSession is then sent, which the DUT must accept without any errors
    3. An empty SetState is then sent, to which the DUT must respond with ReportState

Feature set SetState

The purpose of this test is to confirm synchronization of settings works correctly

    1. An empty SetState message is sent; a ReportState message is expected and the values
       are saved.
    2. A SetState message is sent, with one option changed. A ReportState response is
       expected. Each feature value is checked that it is within the range defined by the feature set
       description.

Feature set Query

The purpose of this test is to confirm if the device is able to report the current feature set reliably to
Roku TV.
    1. An empty SetState message is sent. A ReportState response is expected. Each feature
       value is checked that it is within the range defined by the feature set description.
    2. Wait for 5 sec and try again.
    3. Repeat steps 1-2 for 5 times to ensure reliability.

Feature set SetState full range

The purpose of this test is to confirm synchronization of settings works correctly across all the
specified settings range

    1. A SetState message is sent with one option changed. A ReportState response is
       expected. Each feature value is checked that it is within the range defined by the feature set
       description.
    2. Step 2 is repeated for the entire range of the feature set specification.

                                                                                                       28
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual                   Version 1.0.3

Feature set SetState with variable Options Length

The purpose of this is to check if the DUT is able to handle SetState messages of varying length
properly.

   1. A SetState is sent with just one option value and a 0xF trailing nibble. A ReportState is
      expected with correct length.
   2. A SetState is sent with just two option values. A ReportState is expected with correct
      length.
   3. This is repeated with up to N+2 option values, where N is the number of options in the
      feature set.

Feature set SetState NOP

The purpose of this test is to confirm that a SetState message with no-op values results in no
changes to the feature set.

   1. An empty SetState message is sent; a ReportState message is expected and the values
      are saved.
   2. A SetState message is sent with all options set to the nop (0xF) value; a
      ReportState message is expected with the same values as the
      previous ReportState message.

Session Re-initialisation

The purpose of this test is to ensure the DUT is able re-initialise session upon
receiving AnnouncePresence.

   1.   Pre condition is that a Roku Tv Ready session has already been established.
   2.   AnnouncePresence is sent, to which the DUT must respond with InitSession.
   3.   AcceptSession is then sent, which the DUT must accept without any errors.
   4.   An empty SetState is then sent, to which the DUT must respond with ReportState.

Session Re-initialisation after HPD

The purpose of this test is to ensure the DUT is able re-initialise Roku Tv Ready session after HPD
assert.

   1. The HPD line is asserted.
   2. The DUT reads EDID data, extracts its physical address and broadcasts .
   3. AnnouncePresence is sent, to which the DUT must respond with InitSession.
   4. AcceptSession is then sent, which the DUT must accept without any errors.
   5. An empty SetState is then sent, to which the DUT must respond with ReportState.

                                                                                                   29
© 2020 Roku Confidential
Roku TV Ready Technical Reference Manual               Version 1.0.3

Session after standby

The purpose of this test is to confirm that the DUT is able to accept Roku TV Ready commands
after coming out of standby.

   1. Roku TV Ready handshake is completed and the DUT responds to SetState as above.
   2.  is directly addressed to the DUT.
   3. The DUT is given 10 seconds to go into standby, before  is
      called,  is expected, and the power-state of the DUT must
      be 'Standby'.
   4. ['Power'] is directly addressed to the DUT.
   5. The DUT is given  seconds to go into power on, before  is called,  is expected, and the power-state of the DUT must
      be 'On'.
   6. An empty SetState message is sent; a ReportState message is expected and the values
      are saved.
   7. A SetState message is sent with all options set to the nop (0xF) value; a
      ReportState message is expected with the same values as the
      previous ReportState message.

                                                                                               30
© 2020 Roku Confidential
You can also read