Introduction
RDK video accelerator program aims at reducing the deployment time for set-top boxes and applications. Accelerator devices support advanced features like encrypted content playback, 4K, atmos, etc out of the box. It comes with the latest hardware features, packed with an update-to-date version of SOC SDKs, providing the operators a unique opportunity to introduce the latest features in a short period of time.
What is in this version
This version of the RDK release has a revamped version of the RDK application framework, which provides RDKServices to access all the functionalities provided by the RDK platform. Also, it includes RDKShell, an application manager that handles application lifecycle, input control, and graphics composition.
This release also features the reference user interface, which demonstrates the capabilities of RDKServices.
Accelerator Home UI
Accelerator Home UI is a Lightning application that allows users to manage apps, Bluetooth, and WIFI settings
The app boots up with a splash screen. After boot up, a home screen is displayed which allows users to launch apps, manage Bluetooth and WIFI settings, and play video content.
Splash Screen
The splash screen contains an RDK Logo icon on top of a video playback

Use S key to display UI Switch screen. Choose the ‘Default’ option to load the Home Screen

You will be prompted to the below screen if the Bluetooth remote is not connected to the device

Home Screen
The home screen contains sections for apps, tv shows, and settings. YouTube and the metrological app can be launched from app listings. Video content can be played from the TV Shows section. Bluetooth and WIFI settings can be managed from the settings section. Search bar and time display are also available in the home UI. As of now, functionalities with the search bar and mic are not implemented.
Note: The user should set the timezone in you STB before loading the UI using the curl command
curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:9998/jsonrpc' -d '{"jsonrpc":"2.0","id":"3","method":"org.rdk.System.1.setTimeZoneDST","params":{"timeZone":"Asia/Kolkata"}}';echo
If the timezone is not properly set in the box the UI by default shows Eastern Standard Time.
- Use the Enter/Right key from the side panel icon to move the focus to apps/tv-shows/settings
- Use Left/Right/Up/Down keys to navigate within the home UI

Launch Apps
The first row in the main view of home UI contains app listings. YouTube, Metrological, Xumo,, and Bluetooth Audio app can be launched from app listings.'Premium Content 4' will not launch any apps.
- Use the Left and Right key to navigate through the app listings
- Use the Enter key from the tiles in the first row to launch apps
- Use M/Home/1 key to exit from the launched apps
Play Video
The second row in the main view of home UI contains tv show listings. Video content can be played from the TV Shows section.
- Use the Left and Right key to navigate through tv-shows
- Use the Enter key from the tiles in the tv show listings to launch the player
- Use M/Home/1 key to exit from playback
- Use the Enter key in the Pause icon to pause the video. Fast-forward and rewind are not supported in the current video(as the video content is not an I-framed one

Settings list
The third row in the main view of the home UI contains Bluetooth and WIFI icons. Bluetooth and WIFI screens can be launched from the settings list.
- Use the Left and Right key to navigate through icons in the settings list
- Use the Enter key from the tiles in the settings list to launch Bluetooth or WIFI screen
- Use M/Home/1 key to exit from Bluetooth/WIFI screen
Connect to WIFI
The WIFI screen supports the ability to manage STB's wifi connection.
- Use the Enter key in the WIFI thumbnail to launch WIFI Screen. It will scan for available SSID’s
- Use the Up and Down arrow keys to navigate through available networks.
- Use the Enter key to select a particular network.
- Connect to an SSID by providing the password for the network
Note: If we turn on Wi-Fi the default interface is set to Wi-Fi even though the ethernet cable is connected. The terminal won't be accessible in this case.


Connect to Bluetooth
The Bluetooth screen supports discovery, pairing, and connecting to Bluetooth devices.
- Use the Enter key in the Bluetooth thumbnail to launch Bluetooth Screen. It will scan for available HID devices
- Use the Up and Down arrow keys to navigate through the available HID devices.
- Use the Enter key to select and pair an HID device.

Key Handling
Key | Functionality |
---|
S key | To display UI Switch screen from the splash screen |
Enter key/Right arrow | To move the focus to app list/tv-shows/settings from side panel icons in Home UI |
Enter key | To select the UI from the UI Switch screen To launch apps from the app list To launch player from tv-shows To launch the Bluetooth screen from the settings list To launch the WiFi screen from the settings list To enable/disable Bluetooth scanning in Bluetooth screen To enable/disable wifi scanning in wifi screen To pause player from Player controls To connect/disconnect/pair/unpair a Bluetooth device from the Bluetooth screen To connect/disconnect a WiFi network inWiFi screen |
Left/Right/Up/Down arrow | To navigate within Home UI To navigate through available Bluetooth devices on the Bluetooth screen To navigate through available wifi networks in WiFi screen |
M/Home/1 key | To exit from apps To exit from player launched To exit from the Bluetooth screen To exit from the WiFi screen |
Esc/M key | To exit from password panel on WiFi screen |
Down arrow | To display player controls menu from Player screen |
key Code : 27 , 77, 49 , 36 ,158 | To display Home Page |
key Code : 112,142 | To STANDBY and POWER_ON |
key Code : 228 , 116 | To deep sleep |
key Code 175 174 | To audio increase and decrease |
|
|
Load partnerapps
- Mount USB
- Restart the service (`systemctl restart referenceApp`)
Note:1. Make a folder(partnerapps) in USB, add appmanagerregistry.conf as below
Sample conf file
Update apps list
User can update the apps list by specifying the config file in `/opt/appmanagerregistry.conf`
Update resident app
User can update the resident app by specifying a startup app in `/opt/startupApp.conf`
Note: Right now it supports only Lightning apps as startup app.
Steps to build and launch Accelerator Home UI
- Prerequisites - Node.js , npm, Lightning-CLI should be available in PC
-To install Node.js and npm - https://nodejs.org/en/download/
-To install Lightning CLI - npm install -g @lightningjs/cli
- Clone the RDKAPPS repo using the below command in git bash
git clone "https://code.rdkcentral.com/r/components/opensource/RDK_apps"
- Move to accelerator-home-ui project
cd RDK_apps/accelerator-home-ui/
npm install
lng build
- Copy the build folder created to /opt/www directory of your RPI/Accelerator device and Launch the app using ResidentApp plugin in RPI/Accelerator device via console
curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:9998/jsonrpc' -d ' {"jsonrpc":"2.0", "id":3, "method":"org.rdk.RDKShell.1.launch", "params":{"callsign": "ResidentApp", "type":"ResidentApp", "uri": "http://127.0.0.1:50050/build/index.html#splash"}} ' ; echo
Note: You can also deploy your app locally in your PC and launch the app using ResidentApp plugin in RPI/Accelerator device .But your PC(where app is deployed) and the RPI/Accelerator device has to be under same network
lng dev
- Launch the app using ResidentApp plugin in RPI/Accelerator device via console (Replace the uri parameter in below command with the deployed URL of your app)
curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:9998/jsonrpc' -d ' {"jsonrpc":"2.0", "id":3, "method":"org.rdk.RDKShell.1.launch", "params":{"callsign": "ResidentApp", "type":"ResidentApp", "uri": "https://rdkwiki.com/rdk-apps/accelerator-home-ui/index.html#splash"}} ' ; echo
Note: The user should set the timezone in you STB before loading the UI using the curl command
curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:9998/jsonrpc' -d '{"jsonrpc":"2.0","id":"3","method":"org.rdk.System.1.setTimeZoneDST","params":{"timeZone":"Asia/Kolkata"}}';echo
If the timezone is not properly set in the box the UI by default shows Eastern Standard Time.
Controller UI
Users can interact with plugins using Controller UI. It helps the user to activate or deactivate the plugin and the user can go through each plugin and look for properties and methods to execute.
Launching controller UI
BOXIP:9998

Interactions with ResidentApp plugin
- Activate the plugin from the Controller tab
- Go to the ResidentApp plugin tab
- You can see all properties and methods for ResidentApp
- Ex. User can set different URL to load

Plugins interaction using the console
User can also interact with plugins using JSON-RPC
Activate plugin:
curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:9998/jsonrpc' -d '{"jsonrpc": "2.0","id": 4,"method": "Controller.1.activate", "params": { "callsign": "$callSign" }}' ; echo
Calling Methods:
curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:9998/jsonrpc' -d '{"jsonrpc": "2.0","id": 4,"method": "$callSign.1.Method"}' ; echo
Example:
root@vip5202w:~# curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:9998/jsonrpc' -d '{"jsonrpc": "2.0","id": 4,"method": "Controller.1.activate", "params": { "callsign": "org.rdk.System" }}' ; echo
{"jsonrpc":"2.0","id":4,"result":null}
root@vip5202w:~# curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:9998/jsonrpc' -d '{"jsonrpc":"2.0","id":"3","method":"org.rdk.System.1.setTimeZoneDST","params":{"param":{ "timeZone":"America/New_York"}}}' ; echo
{"jsonrpc":"2.0","id":3,"result":{"success":true}}
root@vip5202w:~# curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:9998/jsonrpc' -d '{"jsonrpc": "2.0","id": 4,"method": "org.rdk.System.1.getTimeZoneDST"}' ; echo
{"jsonrpc":"2.0","id":4,"result":{"timeZone":"America/New_York","success":true}}
Limitations
1 Comment
Bharath Shanmugasundaram
Shall we run the exercise in window ?