# Enable audio
This section shows how to configure hardware for
microphone and speaker connections and gives steps to verify basic audio
use cases.
Tab QCS6490
Tab IQ-9075
Tab IQ-8275
- *class* tabincludedirective
-
Setup flow
**Prerequisites**
- Set up your infrastructure as described in the [Qualcomm Linux Build
Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-254/introduction.html)
- Flash the latest software release to the development board.
- Set up an SSH connection:
1. Enable SSH in Permissive mode by performing the steps mentioned in
[Use SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-254/how_to.html#use-ssh).
2. Connect to the device by running the following command:
ssh root@
Copy to clipboard
For example, if the IP address of the device is 10.92.160.222, run
the following command:
ssh root@10.92.160.222
Copy to clipboard
**Set up audio hardware**
1. To activate the digital microphone interface (DMIC) on the board, use
DIP 2. Switch PIN 2 to the ON position.
2. Connect the speaker to the board.
- *class* tabincludedirective
-
Setup flow
**Prerequisites**
- Set up your infrastructure as described in the [Qualcomm Linux Build
Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-254/introduction.html)
- Flash the latest software release to the development board.
- Set up an SSH connection:
1. Enable SSH in Permissive mode by performing the steps mentioned in
[Use SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-254/how_to.html#use-ssh)
2. Connect to the device by running the following command:
ssh root@
Copy to clipboard
For example, if the IP address of the device is 10.92.160.222, run
the following command:
ssh root@10.92.160.222
Copy to clipboard
**Set up audio hardware**
Connect the speaker to the board.
Note
EVT boards need hardware rework for audio functions to work.
- *class* tabincludedirective
-
Setup flow
Note
The Audio functionality requires firmware and license from NXP or other third-party codec. Mercury Codec from NXP is the default codec with Qualcomm Dragonwing IQ-8275.
**Prerequisites**
- Set up your infrastructure as described in the [Qualcomm Linux Build
Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-254/introduction.html)
- Flash the latest software release to the development board.
- Set up an SSH connection.
1. Enable SSH in Permissive mode. For instructions, see
[Use SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-254/how_to.html#use-ssh)
2. Connect to the device by running the following command:
ssh root@
Copy to clipboard
For example, if the IP address of the device is 10.92.160.222, run:
ssh root@10.92.160.222
Copy to clipboard
**Set up audio hardware**
1. Get the required license and firmware from NXP for Mercury Codec.
2. Power off the device.
3. Open the back panel of the device.
4. Set the DIP switch S6 bit7 to ON and the DIP switch S6 bit8 to OFF.
5. Power on the device.
6. Run the following commands:
ssh root@ip-addr
mount -o rw,remount /
Copy to clipboard
7. Push the Mercury firmware received from NXP to the following location:
ssh root@ip-addr
scp -r mercury_firmware\. root@[ip-addr]:/etc/firmware/
Copy to clipboard
8. Set the device in Flashing mode. Select 1 (Flash Mercury) followed by 5 with `dac_mer_testapp`.
ssh root@ip-addr
dac_mer_testapp
Copy to clipboard
9. Flash the firmware:
mercuryflasher -f
Copy to clipboard
If the above command fails, check the output of the following commands for debug.
Check if the ping works:
mercuryflasher -p
Copy to clipboard
Check if the read works:
mercuryflasher -r
Copy to clipboard
Note
The commands should all return success or 0.
The Mercuryflasher tool doesn’t work directly on the first candidate build. See the latest tool for details.
10. Power off the device.
11. Set the DIP switch S6 bit7 to OFF. Use the preceding figure as reference.
12. Power on the device.
13. For playback, connect the headphone/speaker device to the lineout 1/2 port as follows.
14. For recording, connect the microphone/headset device to the MIC1 port as follows.
## Enable audio with GStreamer
To decode audio using GStreamer apps, see the following.
- [Audio decode
example](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-50/gst-audio-decode-sample.html)
To encode audio using GStreamer apps, use the following instructions.
- Set the default input device for PipeWire.
Use the `wpctl status` command to list available nodes. Run `wpctl set-default` to set the source node to the handset mic.
wpctl status
Copy to clipboard
wpctl set-default
Copy to clipboard
- [Audio encode
example](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-50/gst-audio-encode-example-without-flac.html)
Note
To check the GStreamer app for different chipsets, see [Source information for multimedia sample applications](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-50/example-applications.html#multimedia-sample-applications).
GStreamer is an open source multimedia framework. Qualcomm provides
GStreamer plug-ins as part of the Qualcomm IM SDK.
### GStreamer plug-ins
- GStreamer plug-ins for audio decoder and encoder are part of Qualcomm IM SDK.
Download the entire Qualcomm IM SDK to use
[pulsesrc](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-50/pulsesrc.html)
and
[pulsesink](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-50/pulsesink.html).
- The [Qualcomm IM SDK Quick Start
Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-51/introduction.html)
describes how to download and build the Qualcomm IM SDK.
### GStreamer sample apps
[Sample GStreamer apps for
audio](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-50/audio-sample-applications.html)
use cases are part of the Qualcomm IM SDK. Before running sample apps, meet
these [prerequisites](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-50/mm_sample_apps_prerequisites.html).
Run audio use cases with either command line or the GST app.
#### Play and record audio with the Gstreamer app
Use the reference GST commands mentioned in [audio playback/capture](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-50/audio-use-cases.html).
Note
For QCS8275, enable playback and record using `dac_mer_testapp` as described in [Enable audio](https://docs.qualcomm.com/doc/80-70022-16/topic/enable-audio.html#enable-audio).
## Enable audio with PipeWire
PipeWire is a graph-based processing framework that handles multimedia data.
Find the source code for PipeWire at `build-qcom-wayland/workspace/sources/pipewire`.
For more information, see the [PipeWire open source documentation](https://docs.pipewire.org/page_api.html) for detailed APIs available.
### PipeWire record
>
>
> Tab QCS6490
> Tab IQ-9075
> Tab IQ-8275
>
> - *class* tabincludedirective
>
> - 1. Set up PipeWire recording:
>
>
> Use the `wpctl status` command to list available nodes. Run `wpctl set-default` to set
> the source node to the handset mic.
>
>
> wpctl status
> Copy to clipboard
>
>
> wpctl set-default
> Copy to clipboard
>
>
> pw-record /opt/test.wav -v
> Copy to clipboard
>
>
> The command shell should resemble the following:
>
> 
> 2. Select Ctrl + C to stop the recording.
>
> - *class* tabincludedirective
>
> - 3. Set up PipeWire recording:
>
>
> Use the `wpctl status` command to list available nodes. Run `wpctl set-default` to set
> the source node to the handset mic.
>
>
> wpctl status
> Copy to clipboard
>
>
> wpctl set-default
> Copy to clipboard
>
>
> pw-record /opt/test.wav -v
> Copy to clipboard
>
>
> The command shell should resemble the following:
>
> 
> 4. Select Ctrl + C to stop the recording.
>
> - *class* tabincludedirective
>
> - 1. To start a playback or record use case, configure the Mercury Codec and DAC.
>
>
> Enable playback and capture:
>
>
> ssh root@ip-addr
> Copy to clipboard
>
>
> dac_mer_testapp
> Copy to clipboard
> 2. Select option 2 (SOC Mercury) followed by 1 (Enable Playback Setup) for playback and record use cases.
> 3. Run the following commands in a new command shell:
>
>
> Use the `wpctl status` command to list available nodes. Run `wpctl set-default` to set
> the source node to the handset mic.
>
>
> ssh root@ip-addr
> Copy to clipboard
>
>
> wpctl status
> Copy to clipboard
>
>
> wpctl set-default
> Copy to clipboard
>
>
> pw-record /opt/test.wav -v
> Copy to clipboard
>
>
> The command shell should resemble the following:
>
> 
> 4. Select Ctrl + C to stop the recording.
### Volume settings for recording
>
>
> Tab QCS6490
> Tab IQ-9075
> Tab IQ-8275
>
> - *class* tabincludedirective
>
> - 1. Start audio capture using the `pw-record` utility.
> 2. Open a new command prompt in parallel. Open `ssh root@ip-addr` and
> run the following command to set the volume level:
>
>
> wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 1.0
> Copy to clipboard
>
>
> In the above command, a value of 1.0 represents 100% volume. Adjust this value according to the desired volume level.
>
> - *class* tabincludedirective
>
> - 1. Start audio capture using the `pw-record` utility.
> 2. Open a new command prompt in parallel. Open `ssh root@ip-addr` and
> run the following command to set the volume level:
>
>
> wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 1.0
> Copy to clipboard
>
>
> In the above command, a value of 1.0 represents 100% volume. Adjust this value according to the desired volume level.
>
> - *class* tabincludedirective
>
> - 1. Start audio capture using the `pw-record` utility.
> 2. Open a new command prompt in parallel. Open `ssh root@ip-addr` and
> run the following command to set the volume level:
>
>
> wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 1.0
> Copy to clipboard
>
>
> In the above command, a value of 1.0 represents 100% volume. Adjust this value according to the desired volume level.
### PipeWire playback
>
>
> Tab QCS6490
> Tab IQ-9075
> Tab IQ-8275
>
> - *class* tabincludedirective
>
> - 1. Push the .wav audio file to the device for playback:
>
>
> scp test.wav root@[ip-addr]:/opt/
> Copy to clipboard
> 2. After pushing the test.wav file, enter the device shell using
> `ssh root@ip-addr`.
> 3. Use the following command to start playback:
>
>
> pw-play /opt/test.wav -v
> Copy to clipboard
>
>
> The command shell should resemble the following:
>
> 
>
> - *class* tabincludedirective
>
> - 1. Push the .wav audio file to the device for playback:
>
>
> scp test.wav root@[ip-addr]:/opt/
> Copy to clipboard
> 2. After pushing the test.wav file, enter the device shell using
> `ssh root@ip-addr`.
> 3. Use the following command to start playback:
>
>
> pw-play /opt/test.wav -v
> Copy to clipboard
>
>
> The command shell should resemble the following:
>
> 
>
> - *class* tabincludedirective
>
> - 1. Push the .wav audio file to the device for playback:
>
>
> scp test.wav root@[ip-addr]:/opt/
> Copy to clipboard
> 2. After pushing the test.wav file, enter the device shell using
> `ssh root@ip-addr`.
> 3. Use the following command to start playback:
>
>
> pw-play /opt/test.wav -v
> Copy to clipboard
>
>
> The command shell should resemble the following:
>
> 
### Volume settings for playback
>
>
> Tab QCS6490
> Tab IQ-9075
> Tab IQ-8275
>
> - *class* tabincludedirective
>
> - 1. Start audio playback on the speakers using the `pw-play` utility.
> 2. Open a new command prompt in parallel. Open `ssh root@ip-addr` and
> run the following commands to set the volume level:
>
>
> wpctl set-volume @DEFAULT_AUDIO_SINK@ 1.0
> Copy to clipboard
>
>
> In the above command, a value of 1.0 represents 100% volume. Adjust this value according to the desired volume level.
>
> - *class* tabincludedirective
>
> - 1. Start audio playback on the speakers using the `pw-play` utility.
> 2. Open a new command prompt in parallel. Open `ssh root@ip-addr` and
> run the following commands to set the volume level:
>
>
> wpctl set-volume @DEFAULT_AUDIO_SINK@ 1.0
> Copy to clipboard
>
>
> In the above command, a value of 1.0 represents 100% volume. Adjust this value according to the desired volume level.
>
> - *class* tabincludedirective
>
> - 1. Start playback on the speakers using the `pw-play` utility.
> 2. Open a new command prompt in parallel. Open `ssh root@ip-addr` and
> run the following commands to set the volume level:
>
>
> wpctl set-volume @DEFAULT_AUDIO_SINK@ 1.0
> Copy to clipboard
>
>
> In the above command, a value of 1.0 represents 100% volume. Adjust this value according to the desired volume level.
Last Published: Oct 06, 2025
[Previous Topic
Audio overview](https://docs.qualcomm.com/bundle/publicresource/80-70022-16/topics/overview.md) [Next Topic
Customize audio use case](https://docs.qualcomm.com/bundle/publicresource/80-70022-16/topics/customize.md)