Introduction

 This document describes the Voice control of RPI board using Tech 4 Home remote. Voice command from remote is transferred to RPI board  via bluetooth and is processed by Voice plugin to proceed further.

Environment Setup

The build procedure is as follows:

  •  repo init -u https://code.rdkcentral.com/r/manifests -m rdkv-asp-nosrc.xml -b thunder-next
  •  repo sync -j4 --no-clone-bundle
  •  source meta-cmf-raspberrypi/setup-environment (select option raspberrypi-rdk-hybrid-thunder.conf)
  •  bitbake rdk-generic-hybrid-thunder-image

  

  • Cloning the code before login once to code.rdkcentral.com, user would get the Authentication error, even though the account is in good standing and has all the required access.
  • Please login to code.rdkcentral.com before attempting to clone.
  • Flashing the image

       Image is flashed to SD card before inserting to RPI board.   

    sd-card size requisite

    It is must to have minimal size of 8GB SD-Card for Voice plugin support

    Command to flash the image

        Generated image has to be flashed to an SD card using this command in local PC:

    $ sudo dd if=<path to ImageName.rpi-sdimg> of=<path to SD card space> bs=4M

Ex: 

$ sudo dd if=rdk-generic-hybrid-thunder-image_default_20200302530659.rootfs.rpi-sdimg of=/dev/sdc bs=4M
317+0 records in
317+0 records out
1329594368 bytes (1.3 GB, 1.2 GiB) copied, 104.88 s, 12.7 MB/s
$ sync

The SD card is then inserted to the Raspberry Pi board and booted to check for containers created.

The Raspberry Pi board is connected to the PC via a USB to serial converter and the logs can be checked in console or can be connected via HDMI cable to a TV and logs will be shown in the terminal.

Test Setup

        For testing Voice plugin , we need Tech 4 Home remote and RPI board with bluetooth support. Before using the remote, it needs to be paired and assigned to the RPI board. 

Already assigned remote needs to unassigned before assigning a new remote.


         

  • Tech 4 Home Remote

 


  • Pairing Remote with RPI

 We can pair remote using Controller UI via Bluetooth Control panel. Before we start, we have to make sure BluetoothControl and BluetoothRemoteControl plugins are enabled, if not the same can be enabled via controller UI.

The scan is initiated from UI and once remote is detected we can pair it. 

  • On the BluetoothControl UI, click on scan button to initiate scanning and wait till scanning is completed. Devices detected are listed in the drop down column "Devices"

After scan, UI list out the available bluetooth devices, select Remote based on the MAC address of the remote. After scanning if the device is not listed in drop down column, reload Controller UI once.

  • Once the remote is detected, click on Pair button to pair it with the device. To check whether paired or not reload Controller UI once.

  •  Once remote is paired , we can connect the remote to the device. Click on Connect  button to connect the remote.


  •  Once remote is connected , we can assign the remote to the device. Click on Assign  button to assign the remote.

RPi - Board

  • Flash the image supported with voice plugin feature in the RPI board.
  •  Verify whether remote is paired or not using curl command. If paired confirm whether its assigned or not using curl commands. 

Eg:

curl --data-binary '{"jsonrpc": "2.0", "id": 1234567890, "method": "BluetoothRemoteControl.1.address" }' -H 'content-type:text/plain;' http://192.168.1.6/jsonrpc
{"jsonrpc":"2.0","id":1234567890,"result":"04:EE:03:78:39:DB"}root@raspberrypi-rdk-hybrid-thunder:~#

 curl --data-binary '{"jsonrpc": "2.0", "id": 1234567890, "method": "BluetoothControl.1.device@04:EE:03:78:39:DB" }' -H 'content-type:text/plain;' http://192.168.1.6/jsonrpc

{"jsonrpc":"2.0","id":1234567890,"result":{"name":"Notus S1","type":"LowEnergy","connected":true,"paired":true}}root@raspberrypi-rdk-hybrid-thunder:~#

Executing System

   Press and hold voice button in Tech 4 Home remote and give audio command, like launch CNN. 

   Release the button once audio command is completed.

   Observe the TV monitor to confirm whether CNN is launched as per request.

Troubleshooting

  • If the device is paired with RPI, folder with MAC address of device will be created under Devices directory in BluetoothControl folder. 
root@raspberrypi-rdk-hybrid-thunder:~# ls BluetoothControl/Devices/
   04:EE:03:78:39:DB.json
  • No labels