No sound after firmware upgrading

I use Ubuntu 18 and and follow instruction on website to upgrade firmware of my new Khadas Tone. Using bin file in Khadas_Tone_Board_dfu-2018-1226-Upgrade-Firmware.zip
The upgrade process been successful, but no sound output.
Tried reset compter and performed upgrade again, still no sound.

Before it, every thing was OK.
I can’t find previous version of firmware.

Please help !

Hi @thetien2k2, I’m noticing the same issue on our end. We’re still working on a solution.

In the meantime, you can try out this older firmware .bin file and see how it goes.

This solves the issue when you re-flash with the Windows Updater. If that doesn’t work, try Mac or Ubuntu.

Do let us know how it goes.

Thanks @tsangyoujun.
I tried new firmware on MacOS, same issue (no sound) at first try, but when I changed volume, has sound.

I flashed your file on Ubuntu. Has sound.
But this firmware accepts only 32bit format. It cause MPD to upsampling all files to 32bit.

Alright, glad to know your Tone Board is at least back to working condition.

@Terry is working on the issue now.

@Terry issue with this old firmware.
@thetien2k2 were there any other issues with this old firmware?

messi@music-server:~$ cat /proc/asound/card1/stream0
Khadas tone control Khadas tone control at usb-0000:00:1d.7-1, high speed : USB Audio

Playback:
Status: Stop
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 2
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 3
Format: SPECIAL
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us

Some issues with codec in this firmware:

  • No 16bit and 24bit length support, it will affect bit-perfect playing
  • Bitrate is limited at 384000, half of ES9038Q2M capability
  • No Native DSD support

And I can’t find how to change filter.

@thetien2k2 new firmware is here: Tone Board v1.02 Firmware Update

Do give it a whirl and see if it improves things.

@tsangyoujun I have no issue with new firmware. Everything work as expected.

On Ubuntu, 24 bit format does not supported (only 16 and 32). So all hi-res files (24/48 or 24/192) be converted to 32 bit automatically on computer before sending to Tone Board. It affects bit-perfect playing. Audiophiles may worry about it.

@thetien2k2 according to the firmware engineer: “The XMOS output is in 32-bit word length, however the transmitted raw data is still encoded in 16, 24, 32, bits. Because the original data is not re-sampled by the XMOS chip, it is bit-perfect.”

@tsangyoujun I checked another USB sound card, it lacked support of 24 bit format too. May be it is issue of Linux built-in driver for USB Audio.

How I check supported codec:
cat /proc/asound/card1/stream0
XMOS Khadas Tone Control at usb-0000:00:1d.7-1, high speed : USB Audio

Playback:
Status: Running
Interface = 1
Altset = 1
Packet Size = 72
Momentary freq = 44101 Hz (0x5.8338)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
Interface 1
Altset 2
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
Interface 1
Altset 3
Format: SPECIAL DSD_U32_BE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us

How to see computer converting when playing (while playing a 24/44.1 file)
In MPD log
Mar 19 18:41 : playlist: queue song 1:“Foreign/US UK/Dua Lipa - Dua Lipa (Deluxe) (2017)(24-44)/02. Lost In Your Light (feat. Miguel).flac”
Mar 19 18:41 : decoder: audio_format=44100:24:2, seekable=true
Mar 19 18:41 : client: [0] process command “idle”
Mar 19 18:41 : client: [0] command returned 1
Mar 19 18:41 : alsa_output: opened hw:CARD=Control,DEV=0 type=HW
Mar 19 18:41 : alsa_output: buffer: size=16…131072 time=362…2972155
Mar 19 18:41 : alsa_output: period: size=8…65536 time=181…1486078
Mar 19 18:41 : alsa_output: default period_time = buffer_time/4 = 500000/4 = 125000
Mar 19 18:41 : alsa_output: format=S32_LE (Signed 32 bit Little Endian)
Mar 19 18:41 : alsa_output: buffer_size=22050 period_size=5513
Mar 19 18:41 : output: opened “My ALSA Device” (alsa) audio_format=44100:32:2
Mar 19 18:41 : output: converting in=44100:24:2 -> f=44100:24:2 -> out=44100:32:2

cat /proc/asound/card1/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 5513
buffer_size: 22050