the Chromium logo

The Chromium Projects

Chamelium audio board


Chamelium audio board routes audio between four endpoints with two stereo audio buses:

It helps Chamelium automate audio testing including:






Connect audio board and FPGA board with the serial ribbon grey cable (see
the assembled picture).

Connect audio board and Chamelium line-in and line-out (blue jack to blue
jack, green jack to green jack) using two 3.5mm 3-ring(TRS) cables.

For audio jack external audio - connect tested device with audio board using
3.5mm 4-ring (TRRS) cable.

For USB audio - connect tested device with the middle USB port on FPGA (top)

For internal speaker test - connect a mono microphone (two conductor, TS
connector) to the pink port on the FPGA (top) board.

For internal microphone test - connect a speaker to black SPK port on audio

For Bluetooth test - Chamelium Eth MAC and audio board BT MAC should be
related in chameleon_info.

Setup Chamelium Info

Use the interactive script ~/trunk/src/platform/chameleon/client/test_server
to connect to chameleond server.
--chameleon_host=<chameleon ip>

Get the MAC address of chamelium: >>> p.GetMacAddress()


Disable the bluetooth module on audio board:
>>> p.AudioBoardDisableBluetooth()

ssh into Cros device:
ssh chromeos1-row5-rack1-host2.cros

Use bluetoothctl to turn on adapter and start scanning

localhost ~ # bluetoothctl

[NEW] Controller 7C:7A:91:9A:EE:89 Chromebook [default]

[bluetooth]# power on

Changing power on succeeded

[bluetooth]# scan on

Discovery started

[CHG] Controller 7C:7A:91:9A:EE:89 Discovering: yes

Enable the bluetooth module on audio board using test_server: >>>

In bluetoothctl console, check there is a new **SX3868-3Y** device being

[NEW] Device 00:1F:84:01:03:5B SX3868-3Y

[CHG] Device 00:1F:84:01:03:5B RSSI: -67

[CHG] Device 00:1F:84:01:03:5B RSSI: -56

[CHG] Device 00:1F:84:01:03:5B RSSI: -68

Now we know Chamelium with MAC address '94:eb:2c:00:01:27' has a Bluetooth
module with MAC address ‘00:1F:84:01:03:5B’ on its audio board.

Add the mapping info to client/cros/chameleon/


'94:eb:2c:00:00:fb': ChameleonInfo('00:1F:84:01:03:68'),

'94:eb:2c:00:01:2b': ChameleonInfo('00:1F:84:01:03:5E'),

'94:eb:2c:00:01:27': ChameleonInfo('00:1F:84:01:03:5B'), }

Run the test

For example, run basic headphone test on a squawks board 5 times:

test_that --board=squawks --fast --debug --args="chameleon_host=$CHAMELIUM_IP" $DUT_IP audio_AudioBasicHeadphone --iterations 5

Test output/input devices basic function

Output audio devices

Input audio devices

Advanced tests