LE910C1 Linux audio capabilities through USB

LE910C1 Linux audio capabilities through USB can be easily tested with kernel module snd_usb_audio and ALSA tools available in most common distribution: let’s see how!

LE910C1 Linux

LE910C1 Audio Compositions 0x1230 and 0x1231

Looking at the AT#USBCFG command description in the AT Commands Reference Guide we can see the availability of the two following compositions supporting an audio device:

0x1230: DIAG + ADB + RMnet + AUDIO + NMEA + MODEM + MODEM + SAP
0x1231: RNDIS + DIAG + ADB + AUDIO + NMEA + MODEM + MODEM + SAP

Those are not currently supported by the driver option (for serial ports) and qmi_wwan (for rmnet), but the audio device, since it’s using the standard audio descriptors, is properly recognized by the kernel (module snd_usb_audio), as can be seen in the kernel log when attaching the modem:

[  534.360480] usb 3-7: New USB device found, idVendor=1bc7, idProduct=1230, bcdDevice= 3.18
[  534.360487] usb 3-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  534.360490] usb 3-7: Product: LE910C1-EU
[  534.360493] usb 3-7: Manufacturer: Android
[  534.360496] usb 3-7: SerialNumber: 091050101
[  534.470126] mc: Linux media interface: v0.10
[  534.537133] usbcore: registered new interface driver snd-usb-audio

LE910C1 Linux testing

Once the audio device is available, you can use ALSA tools, for example arecord, for checking its features:

daniele@daniele-HP-ENVY-Notebook:~# arecord -l
**** List of CAPTURE Hardware Devices ****
<snip>
card 2: LE910C1EU [LE910C1-EU], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

The pcm devices list can be retrieved with:

arecord -L

LE910C1 Linux pcm devices are a few, so the next step is to chose the desired one (in the following examples the plain hardware device without any manipulation hw:CARD=LE910C1EU). It is important to know that the modem supports mono, 16 bit, 16 Khz for audio.

After having configured the DSP profile audio path to USB with command AT#ADSPC, it’s time to make a call with ATD for testing LE910C1 Linux audio capabilities.

arecord can be used for recording the audio coming from the remote party:

arecord -Dhw:CARD=LE910C1EU -d 10 -f S16_LE -r 16000 

while aplay can be used for playing an audio file during the call:

aplay -Dhw:CARD=LE910C1EU <filename>

As written above, both the option and qmi_wwan drivers do not have support for PIDs 0x1230 and 0x1231, so the serial ports and rmnet devices (if needed) should be added manually (through the new_id sysfs file) or the driver source code should be patched.

All the above instructions apply also to LE910C4.

Read more related to LE910C1 in article “Telit LE910Cx 0x1260 AND 0x1261 Compositions Support Added to Linux Kernel“.