• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Topping D50 III Balanced DAC with EQ Review

Rate this DAC:

  • 1. Poor (headless panther)

    Votes: 11 2.4%
  • 2. Not terrible (postman panther)

    Votes: 12 2.6%
  • 3. Fine (happy panther)

    Votes: 63 13.8%
  • 4. Great (golfing panther)

    Votes: 371 81.2%

  • Total voters
    457
Hi folks,

I've been using the Topping as a generator for my tests, and it suddenly refused to output signal from RCA or TRS outputs when fed by my computer.
I installed the latest driver, ensure RCA+TRS outputs are active, it is pre mode and not muted. I tried with different USB cables too.
Strangely enough, the computer sees it and when I change the sampling rate, it synchronizes correctly but it will not output any signal.
I'm using REW software, as always, and when connecting an SMSL PS200 to the computer instead of the D50III, no issue.
Clues?

Thank you
Have you tried performing a factory reset? I've had to do that several times over the couple of years I've been using it, as my device would go into a lethargic state and wouldn't work until I performed a reset.
 
Yep, I forgot to mention that is tried that too, but no success.
Did you opened it?
Sometimes these have some smd self-healing (or not) fuses (don't know about Topping though)

They appear to work at PC when they go bad but the rest of the board doesn't.
 
Do you run linux on your computer?
 
@TOPPING DAC that has this kind of performance but also supports aptx Lossless, when? Fiio already has the BTR17.
 
Home Assistant Lovelace + Zigbee2MQTT IR Script for Full Control of the Topping D50 III DAC

Hi everyone,


I wanted to share a clean, fully functional Home Assistant Lovelace setup that gives complete button-by-button control of my Topping D50 III DAC using a cheap Zigbee Tuya IR blaster (the one that appears as `IR_Tuya` in Zigbee2MQTT).

This works perfectly and lets me integrate the D50 III into automations, dashboards on tablets/phones, etc.

Here's what the Lovelace card looks like (exact replica of the remote layout):
Topping D50 III lovelace.png



Lovelace YAML (vertical-stack with three grids):

YAML:
type: vertical-stack
title: DAC Topping
cards:
  - square: false
    type: grid
    columns: 5
    cards:
      - show_name: false
        show_icon: true
        type: button
        icon: mdi:power
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: power
      - type: button
        icon: mdi:volume-mute
        show_name: false
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: mute
      - type: button
        icon: mdi:plus
        show_name: false
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: volume_up
      - type: button
        icon: mdi:auto-fix
        name: Auto
        show_name: true
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: auto
      - type: button
        icon: mdi:circle-half-full
        show_name: false
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: luminosite
  - square: false
    type: grid
    columns: 3
    cards:
      - type: button
        icon: mdi:chevron-left
        show_name: false
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: left
      - type: button
        icon: mdi:check-circle
        show_name: false
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: ok
      - type: button
        icon: mdi:chevron-right
        show_name: false
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: right
  - square: false
    type: grid
    columns: 5
    cards:
      - type: button
        icon: mdi:numeric-1-circle-outline
        name: C1
        show_name: true
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: c1
      - type: button
        icon: mdi:numeric-2-circle-outline
        name: C2
        show_name: true
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: c2
      - type: button
        icon: mdi:minus
        show_name: false
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: volume_down
      - type: button
        icon: mdi:sine-wave
        name: FIR
        show_name: true
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: fir
      - type: button
        icon: mdi:audio-input-rca
        name: Out
        show_name: true
        tap_action:
          action: perform-action
          perform_action: script.topping_ir
          data:
            command: lineout

The supporting script (alias: Topping IR) – Create it via the UI:

YAML:
alias: Topping IR
icon: mdi:remote
mode: queued
max: 5
fields:
  command:
    name: Commande
    required: true
    selector:
      select:
        options:
          - power
          - mute
          - volume_up
          - volume_down
          - left
          - ok
          - right
          - c1
          - c2
          - fir
          - lineout
          - auto
          - luminosite
sequence:
  - variables:
      ir_codes:
        power: >-
          DRYjERLpAXsC6QHyBukBQAdAA+ADC0APwAOAFwF7AkAHQAMBewLgAwNAAQHpAUAXQANAC8ADQA/AA+ALEwe/qRYjFAnpAQ==
        mute: >-
          DfgiExLoAYgC6AH5BugBQAdAA+ADC0APwAPAF0AHQAPAF0AHQA9AA0AL4AcD4AMXQAvgBwMH2Kn4Ii8J6AE=
        volume_up: >-
          C8ciARLWAa4ClwEmB0AHgAPgAQsElwGuAtagAwuXASYHlwGuAtYBJgdAA4ALQA9AAwEmB0ADwBOAB8APAyYH1gHgAxMBJgdAA4ATCyYH1gHgqcciNAnWAQ==
        volume_down: >-
          C/4i3hHlAYgCiAL4BkAHgAPgAwvAE0AHwBdAB0ADQBMDHQNAAUAHQA9AA8ALQAfAA8AXQA/ACwv4BuUB+AblAfgG5QE=
        left: >-
          DQ0j7hHoAY0C6AH2BugBQAdAA+ADC0APwAPAF0AHQAPgAxdAD0ADwBNAB+AHD8ATQBdAA8APB76pDSMYCegB
        ok: >-
          DRAjExLnAYIC5wEFB+cBQAdAA+ADC0APwAPAF0AHQAPgCxdAE8AbwAfgCxPAGwsFB+cB6qkQIywJ5wE=
        right: >-
          DaoiFBLiAb0CqAE0B6gBQAdAAwc0B+IBMANbAUALwAcFvQLiATQHQAcAqGAHwAuADwDioAfAD0AHQD+AFwO9AlsBwBMBNAdAExGXAJcAxQA0B6gBNAfiATQHqAE=
        c1: >-
          DfYiExLHAaICxwEeB8cBQAdAA+ADC0APwAPAF0AHAx4H9QHAFwGiAoALBR4HxwGiAuAJA0AXAR4H4AEjAR4H4AUDC+mp9iI7CYsAbADaAA==
        c2: >-
          DgYjDhLiAa8C4gH1BuIBgyAHQAPgAwtAD0AfQAfAFwn1BoMC9QbiAYMC4BEDQDNAI8AHQAvgBwPAGwe6qQYjMQniAQ==
        fir: >-
          DSkj7BHoAY0C6AHyBugBQAdAA+ADC0APwAPAF0AHQAPAF8AHwBPgCwfgCxNANwvyBugB1qkpIx4J6AE=
        lineout: >-
          DQsjDhLcAZUC3AEFB9wBQAdAA+ADC0APwAPAF0AHQAPAF+AHB8Ab4AMHQAvAA0AvQAvABwfEqQsjOwncAQ==
        auto: >-
          C/UiFhLdAakCtQEmB4AHgAtAB0APQAPACwG1AYAXgAfACwGpAsAj4AELgBvgARcCJgfdIAPgAQdAGwEmB0ADALUgBwm1Admp9SJMCd0B
        luminosite: >-
          Db4iERLOAaYCzgEMB84BQAdAA+ADC0APwAPAF0AHQAPAF8AHQBMDHANOAUAHwBNAB0APQAMDpgL8AYAHAM5gBwcMB84BDAfOAQ==
  - action: mqtt.publish
    data:
      topic: zigbee2mqtt/IR_Tuya/set   # ← CHANGE THIS to match your own IR blaster entity in Z2M
      payload: "{\"ir_code_to_send\": \"{{ ir_codes[command] }}\"}"
description: ""

How to use:
  • Create the script first (the IR codes are already captured and tested).
  • Create the Lovelace cards (copy paste the YAML).
  • Point your Tuya IR blaster or another similar device at the DAC’s IR receiver (mine is about 1.5 m away, works flawlessly every time).

This gives you every function the original remote has: power, mute, volume ±, input selection via left/right/OK or direct C1/C2, FIR filter, Line Out toggle, Auto mode, and brightness.

If you run Home Assistant + Zigbee2MQTT (or any MQTT-based IR blaster), this is a very cheap and reliable way to get full remote control.


Hope this helps anyone who wants tight integration with the excellent D50 III!

Cheers,
sagittarius
 
Good afternoon! I read: in firmware V1.33 HV:2.5 (August 5, 2024)
---------------------------------------------------
1. Added the APTX ON/OFF feature.
2. Fixed a bug where the long-press function of the infrared remote for C1/C2 wasn't working properly.
3. Optimized the popping sound when switching between DAC and PRE modes, UAC2.0 and UAC1.0 modes, and DSD/DOP to PCM 44.1/192kHz. My question: Are there any pops or clicks when turning the DAC on and off, when changing inputs, when changing track sampling rates, or during other operations? The second question is silly: Where did the DAC get an infrared remote? The description only mentions a Bluetooth remote. (I'm reading through a translator; I didn't understand what the remote is.) Thanks for your help. But I’m more concerned about the question: are there any pops and clicks that I asked about above? (I use both the optical and coaxial DAC inputs. Am I concerned about pops and clicks coming from these inputs?)
 
Last edited:
Good afternoon! I read: in firmware V1.33 HV:2.5 (August 5, 2024)
---------------------------------------------------
1. Added the APTX ON/OFF feature.
2. Fixed a bug where the long-press function of the infrared remote for C1/C2 wasn't working properly.
3. Optimized the popping sound when switching between DAC and PRE modes, UAC2.0 and UAC1.0 modes, and DSD/DOP to PCM 44.1/192kHz. My question: Are there any pops or clicks when turning the DAC on and off, when changing inputs, when changing track sampling rates, or during other operations? The second question is silly: Where did the DAC get an infrared remote? The description only mentions a Bluetooth remote. (I'm reading through a translator; I didn't understand what the remote is.) Thanks for your help. But I’m more concerned about the question: are there any pops and clicks that I asked about above? (I use both the optical and coaxial DAC inputs. Am I concerned about pops and clicks coming from these inputs?)
Same remote works as both bluetooth and IR. Bluetooth practically does not work at all. Whenever you want to use it, bluetooth is asleep and you have to wake it up by clicking on a different button. So we all simply use the IR part of the remote. That one works fine.
 
I'm trying to use the PEQ on an RPi running Volumio playing FLAC files ripped from CD. The D50 shows the input at 768khz so won't enable the PEQ (limit of 192khz).

I don't see a way to adjust this setting in Volumio, hoping someone has a solution. Appreciate any help. (I'm running the latest firmware 1.39).
 
Since a week I do have the D50 III and am very happy with it. Paired it with a couple of IK Multimedia iLoud Micro Monitor Pro. They are rather flat sounding monitors, so it's lots of fun to get the PEQ just right :)
A question on one of the settings: DPLL BW (called Bandwidth Setting in the manual). Its default setting is 4 and the rest is 1, 3, 6, 9, 12 and 15.
What is it that this setting does? In the manual there is an explanation but my English is just not good enough to understand it. It has something to do with jitter.

Also: what the overall preferred PCM Filter Setting here? I've got it on Mode 6 Minimum Phase Fast Roll Off since that apparently gives a bit more dynamic.
 
Since a week I do have the D50 III and am very happy with it. Paired it with a couple of IK Multimedia iLoud Micro Monitor Pro. They are rather flat sounding monitors, so it's lots of fun to get the PEQ just right :)
A question on one of the settings: DPLL BW (called Bandwidth Setting in the manual). Its default setting is 4 and the rest is 1, 3, 6, 9, 12 and 15.
What is it that this setting does? In the manual there is an explanation but my English is just not good enough to understand it. It has something to do with jitter.

Also: what the overall preferred PCM Filter Setting here? I've got it on Mode 6 Minimum Phase Fast Roll Off since that apparently gives a bit more dynamic.
It is indeed a setting to reduce Jitter. I don't know how it works, but my toppoing D70pro has the same setting. If you don't experience jitter, just leave it in the default position. Audible jitter is very rare in modern DAC's. ChatGPT (I know:) says audible jitter manifests in the following ways:
  • A subtle roughness or graininess in the sound.
  • Loss of focus in stereo imaging ("blurred" soundstage).
  • Slight harshness on high-frequency content such as cymbals, violins, or female vocals.
  • In severe cases, low-level distortion products that can sound like faint tones or buzzes correlated with the music.
I personally don't hear any difference between the lowest and highest setting on my system.
Just as I don't hear any difference between all the filter options. Just choose what sounds best to you. If you listen mostly to 44.1 (or 48) kHz a fast rolloff is advisable, but don't beat yourself up if you can't tell any difference.
 
Here's an excellent introduction to Jitter in modern audio:
https://youtu.be/f_r33B4jptA

Also note that the DPLL BW setting only applies to SPDIF input (Coax/Toslink).
Every other input is not affected.

What the setting does is:
High numbers ensure stable playback even with low quality SPDIF sources (e.g. TVs).
Low numbers reduce jitter at the analog outputs from perfect to even more perfect, but the trade-off is increased risk of playback stutter.
 
Last edited:
Just as I don't hear any difference between all the filter options. Just choose what sounds best to you. If you listen mostly to 44.1 (or 48) kHz a fast rolloff is advisable, but don't beat yourself up if you can't tell any difference.
Ah no, no beating up :) The differences are mostly indeed not noticeable. The Minimum Phase only gives a small difference with some music.

Here's an excellent introduction to Jitter in modern audio:
https://youtu.be/f_r33B4jptA

Also note that the DPLL BW setting only applies to SPDIF input (Coax/Toslink).
Every other input is not affected.

What the setting does is:
High numbers ensure stable playback even with low quality SPDIF sources (e.g. TVs).
Low numbers reduce jitter at the analog outputs from perfect to even more perfect, but the trade-off is increased risk of playback stutter.
Thanks for the video, makes it more understandable.
And no issue here then since I connect with USB. So just the Default setting.
 
Ah no, no beating up :) The differences are mostly indeed not noticeable. The Minimum Phase only gives a small difference with some music.

I have tried every filter, and cannot tell the difference between any of them. IIRC Amir says Filter 3 is the "best mode", but Filters 1, 4 and 6 are all probably just as good.

index.php
 
I have tried every filter, and cannot tell the difference between any of them. IIRC Amir says Filter 3 is the "best mode", but Filters 1, 4 and 6 are all probably just as good.

index.php
And you aren't supposed to hear them. The filters provide attenuation above 20–22 kHz! I assume no human can hear that—only a bat. And the "best" filter is a theoretical concept.
 
Hi everyone,

I've been using the D50III for some time, as a high precision generator, for my tests. I've also been using a Cosmos ADCiso (grade 0 - the most linear, in mono mode) and its associated scaler for measurements of analog signal. And when I first measured the D50III, I got the feeling that it could do better than the 123dB SINAD I measured.
So I completed my measurement setup with the Cosmos APU that notches the test fundamental by 30dB, before entering the ADC for measurements (the ADCiso). This has the advantage to lower noise and distortion created in the ADC by the high level signal, exactly as an Audio Precision does. I use REW software to compensate for the 30dB notch (precision of 0.01dB).

And so find below the SINAD result of the Topping, with 5Vrms output, and volume down by -1.5dB as Amir did (bringing the output to 4.2Vrms). I also aligned the span to Amir's one, that is 10Hz to 22.4kHz, so a little more noise goes into the computing of the SIAND (I do 20Hz-20kHz usually). And here we go:

1781101763806.png


I overlaid the two channels, and the distortion is surprisingly similar to what Amir reported, left channel having a little more H3 than the right one.

On SINAD perspective, the D50III reached 126.2dB on right channel (dashboard shown above) and left one was at 125.9dB, and so that's an average of 126dB SINAD!

It is a little complex to explain, but this is best case scenario for my little measurement setup. Thing is that the output level of the D50III must match an ideal input sensitivity/gain of the Cosmos setup for the highest precision. This is the reason to use the scaler that can increase the input signal in the comfort zone of the ADC for measurement with the highest resolution. And that is exactly the same with the Audio Precision that uses an auto-scaler (very useful for DR calculation).
Anyways, and obviously, with 4.2Vrms sine tone to measure, I'm right in the ideal, most precise measurement zone of my measurement gears. This might explain why the AP does not show as good result, simply because, if I remember, its comfort zone is around 5Vrms input, not 4Vrms.

The takeaway for end users is that the D50III is SOTA, but you knew that already.
 
Hi everyone,

I've been using the D50III for some time, as a high precision generator, for my tests. I've also been using a Cosmos ADCiso (grade 0 - the most linear, in mono mode) and its associated scaler for measurements of analog signal. And when I first measured the D50III, I got the feeling that it could do better than the 123dB SINAD I measured.
So I completed my measurement setup with the Cosmos APU that notches the test fundamental by 30dB, before entering the ADC for measurements (the ADCiso). This has the advantage to lower noise and distortion created in the ADC by the high level signal, exactly as an Audio Precision does. I use REW software to compensate for the 30dB notch (precision of 0.01dB).

And so find below the SINAD result of the Topping, with 5Vrms output, and volume down by -1.5dB as Amir did (bringing the output to 4.2Vrms). I also aligned the span to Amir's one, that is 10Hz to 22.4kHz, so a little more noise goes into the computing of the SIAND (I do 20Hz-20kHz usually). And here we go:

View attachment 538131

I overlaid the two channels, and the distortion is surprisingly similar to what Amir reported, left channel having a little more H3 than the right one.

On SINAD perspective, the D50III reached 126.2dB on right channel (dashboard shown above) and left one was at 125.9dB, and so that's an average of 126dB SINAD!

It is a little complex to explain, but this is best case scenario for my little measurement setup. Thing is that the output level of the D50III must match an ideal input sensitivity/gain of the Cosmos setup for the highest precision. This is the reason to use the scaler that can increase the input signal in the comfort zone of the ADC for measurement with the highest resolution. And that is exactly the same with the Audio Precision that uses an auto-scaler (very useful for DR calculation).
Anyways, and obviously, with 4.2Vrms sine tone to measure, I'm right in the ideal, most precise measurement zone of my measurement gears. This might explain why the AP does not show as good result, simply because, if I remember, its comfort zone is around 5Vrms input, not 4Vrms.

The takeaway for end users is that the D50III is SOTA, but you knew that already.
Not only because of 4.2V vs 5V difference, I have never seen APx555 THD+N higher than -126db(Amir's even -125db). Cosmos APU shows -133db(1kHz 9039S->Scaler->Cosmos_LPF = 10-11Vrms) i.e. > 2x times lower THD+N than APx555 or Cosmos ADC grade 0 MONO.
 
Last edited:
Back
Top Bottom