Hello
Here is a review of a special device:
This device is a Bluetooth Audio Transmitter, Receiver and DAC.
This is the Fiio BTA30 Pro.
The BTA30 Pro is about half the dimension of the (1U / half 19") RME ADI-2 Pro fs R in all directions:
Half width, half height (without the antenna), half depth.
There is a switch to select mode:
RX (Bluetooth receiver), TX (BT transmitter) or DAC.
There is also an input selector, for TX or DAC mode, and a BT Codec selector (TX mode). The LED has a different color according to active Codec.
It supports following CODECs
For Transmission:
SBC, aptX, aptX HD, aptX LL, LDAC
For Reception:
SBC, AAC, aptX, aptX HD, LDAC
It may also act as a DAC
Inputs are USB-C, SPDIF Optical or Coaxial; Output are SPIF Optical or Coaxial and a pair of Analog RCA
The USB-C also provides power (NB: The device does not seem to be Power-delivery compatible)
The device costs around 140€ ($120)
It has been kindly lent to me by Audiophonics (@Audiophonics - France).
PART I : Fiio BTA30 Pro as a Bluetooth Transmitter
To test it, I used a Topping BC3 (also lent by Audiophonics) connected to my RME ADI-2 Pro fs R with TOSLink (optical SPDIF).
That's a purely digital connection.
Measurements are performed with Virtins Multi Instrument 3.9.6.2.
Validating measurement chain
So, let's start by validating the Topping BC3 receiver by performing some measurements on it.
It should be easy to validate them, since Amir tested the device (see here)
I used my Samsung Note 9 to send a test signal in LDAC mode to the BC3.
The BC3 is connected to the RME through its optical output (no DAC is involved).
The RME displays the input sampling frequency and bit rate.
For LDAC, it remains at 96kHz 24 bits.
So, first, I tested with a Test signal at 1kHz 96kHz 24 bits at 0dBFS.
Validating Topping BC3, signal sent from Smartphone, SINAD
Obviously, there is some saturation here.
Let's try -1dBFS
Validating Topping BC3, signal sent from Smartphone, SINAD (-1dBFS)
Much better
And close enough to Amir's 112.7dB SINAD
What about 16 bits (24 bits signal) ?
Validating Topping BC3, signal sent from Smartphone, SINAD (16 bits mode)
Again, we are very close to Amir's figure (97.8dB SINAD)
So the Topping BC 3 receiver measures as it should.
We may now proceed to the Fiio BTA30 Pro measurements.
Fiio BTA30 pro as a Bluetooth Transmitter
Measurement chain is as follows:
Virtins Multi Instrument (PC) - (USB) > RME ADI-2 Pro fs R - (SPDIF Optical Out) > Fiio BTA30 Pro - (BT) > Topping BC3 - (SPDIF Optical Out) > RME ADI-2 Pro fs R - (USB) > PC
(For those who wonder, the results with a direct USB connection out of the PC are just identical. I used the RME output since I couldn't get MI to work with Fiio ASIO driver.)
All CODEC except LDAC were tested at 48kHz sampling frequency 24 bits
First, SINAD dashboard
aptX Codec
aptX LL
NB: I have a hard time understanding the difference between aptX and aptX LL. All measurements seem the same, to my eyes.
aptX HD
That's better
SBC
LDAC (@96kHz, -0.2dBFS)
As we know already that the BC3 does saturate at 0dBFS, I played a bit with the level, and maximum I could go is -0.2dBFS.
As seen above, this is a bit shy of the 112dB SINAD that I could get with the Smartphone.
However, this is another use case here, since the signal may directly be sent from the PC.
Very good result, anyway.
Attempt to measure Dynamic range
I tried to measure noise and dynamic range.
As per AES, a -60dBFS signal is to be used, and then you measure the remaining SNR and add the level difference to 0dBFS.
With all Codecs but LDAC, it seems the signal is completely muted below -54dBFS.
There is simply no signal.
EDIT (2): I re-tested with the smartphone sending a test signal at -60dBFS to the Topping BC3 receiver, and it worked.
So the Fiio BTA30 pro seems to be muting its output when the level is below -54dBFS, for all CODEC but LDAC.

So I used -54dBFS as a level to measure the dynamic range for each CODEC (except for LDAC).
aptX (identical to aptX LL)
aptX HD
SBC
Now we see the difference between aptX and SBC: The later seems to favor the noise reduction, while the former has lower distortion.
LDAC (Test signal at -60dBFS)
Now we are speaking !
(Even if we should decrease this by 0.2dB, since we know the signal chain saturates above -0.2dBFS)
Note, first, that this is a purely digital chain. No DAC is involved.
Also, all those CODECs play with the level and frequencies somehow.
So this should not, in my opinion, be compared with a "normal" DAC Dynamic range.
Still, we have an interesting result.
(The BC3 from smartphone gives a similar result)
Attempt to measure Frequency response
NB: Following measurements are using LDAC Codec only.
My "normal" measurement method implies using a signal which is synced between Output and Input.
Unfortunately, the clock in seems to be quite shifting versus the clock out, so the signal is not perfectly in sync, and the measurement is therefore not stable.
In practice this is no problem (you only listen to the output), but for my measurements it makes it more complex.
We see quite a few measurement artifacts.
At 48kHz sampling frequency
At 96kHz
I therefore used a sweep from REW to measure frequency response
Similarly, the response around 20kHz is very weird.
This should not be a problem in practice, though.
We see a -2dB cut at 20kHz.
32 tones
32 tones is also requiring a good sync between Out and In signals.
So I couldn't use the "Rectangle (=No) windowing function for FFT I normaly use
And the low frequencies are therefore mixed.
Nevertheless, here it is
(The test signal was re-generated using Audio Precision's APX500 Flex Demo software for 96kHz.
It should therefore be identical to the signal Amir is using, except for the sampling frequency. It has exactly the same crest factor, frequencies and phases..)
Don't worry about frequencies below 100Hz.
Ok, this is not as clean as a standard DAC.
(Look at vertical scale, reduced to an 100dB range. Usually, we use a much wider range, over 150dB or 200dB)
We also see strong harmonics above 20kHz.
That's not too bad, though.
(Partial) Conclusion - TX mode
As a Bluetooth Transmitter, the Fiio BTA30 pro does a pretty good job.
One may object that it is (slightly) outperformed by a Smartphone, but this is only when you deep dive into the smartphone development parameters that you'll be able to force it to use the best CODEC. Most of the time, this is quite random.
You have much more direct control on the CODEC selection with the Fiio BTA30 pro.
The BTA30 Pro's LED indicator also tells you which CODEC is used.
Also, the Fiio BTA30 Pro works very well from a PC, a TV, or any device with an SPDIF output, which is very convenient.
UPDATE:
A user below complains about the abrupt muting for all CODECs but LDAC below -54dBFS.
This is a low level, but I understand this may be unpleasant in some circumstances.
I mentioned the fact in the dynamic range chapter, but highlighting this may be important, indeed.
If you use LDAC only, this is of no consequence.
But if you plan to use other CODECs, you'd better be aware of this behaviour.
Here is a review of a special device:
This device is a Bluetooth Audio Transmitter, Receiver and DAC.
This is the Fiio BTA30 Pro.
The BTA30 Pro is about half the dimension of the (1U / half 19") RME ADI-2 Pro fs R in all directions:
Half width, half height (without the antenna), half depth.
There is a switch to select mode:
RX (Bluetooth receiver), TX (BT transmitter) or DAC.
There is also an input selector, for TX or DAC mode, and a BT Codec selector (TX mode). The LED has a different color according to active Codec.
It supports following CODECs
For Transmission:
SBC, aptX, aptX HD, aptX LL, LDAC
For Reception:
SBC, AAC, aptX, aptX HD, LDAC
It may also act as a DAC
Inputs are USB-C, SPDIF Optical or Coaxial; Output are SPIF Optical or Coaxial and a pair of Analog RCA
The USB-C also provides power (NB: The device does not seem to be Power-delivery compatible)
The device costs around 140€ ($120)
It has been kindly lent to me by Audiophonics (@Audiophonics - France).
PART I : Fiio BTA30 Pro as a Bluetooth Transmitter
To test it, I used a Topping BC3 (also lent by Audiophonics) connected to my RME ADI-2 Pro fs R with TOSLink (optical SPDIF).
That's a purely digital connection.
Measurements are performed with Virtins Multi Instrument 3.9.6.2.
Validating measurement chain
So, let's start by validating the Topping BC3 receiver by performing some measurements on it.
It should be easy to validate them, since Amir tested the device (see here)
I used my Samsung Note 9 to send a test signal in LDAC mode to the BC3.
The BC3 is connected to the RME through its optical output (no DAC is involved).
The RME displays the input sampling frequency and bit rate.
For LDAC, it remains at 96kHz 24 bits.
So, first, I tested with a Test signal at 1kHz 96kHz 24 bits at 0dBFS.
Validating Topping BC3, signal sent from Smartphone, SINAD
Obviously, there is some saturation here.
Let's try -1dBFS
Validating Topping BC3, signal sent from Smartphone, SINAD (-1dBFS)
Much better
And close enough to Amir's 112.7dB SINAD
What about 16 bits (24 bits signal) ?
Validating Topping BC3, signal sent from Smartphone, SINAD (16 bits mode)
Again, we are very close to Amir's figure (97.8dB SINAD)
So the Topping BC 3 receiver measures as it should.
We may now proceed to the Fiio BTA30 Pro measurements.
Fiio BTA30 pro as a Bluetooth Transmitter
Measurement chain is as follows:
Virtins Multi Instrument (PC) - (USB) > RME ADI-2 Pro fs R - (SPDIF Optical Out) > Fiio BTA30 Pro - (BT) > Topping BC3 - (SPDIF Optical Out) > RME ADI-2 Pro fs R - (USB) > PC
(For those who wonder, the results with a direct USB connection out of the PC are just identical. I used the RME output since I couldn't get MI to work with Fiio ASIO driver.)
All CODEC except LDAC were tested at 48kHz sampling frequency 24 bits
First, SINAD dashboard
aptX Codec
aptX LL
NB: I have a hard time understanding the difference between aptX and aptX LL. All measurements seem the same, to my eyes.
aptX HD
That's better
SBC
LDAC (@96kHz, -0.2dBFS)
As we know already that the BC3 does saturate at 0dBFS, I played a bit with the level, and maximum I could go is -0.2dBFS.
As seen above, this is a bit shy of the 112dB SINAD that I could get with the Smartphone.
However, this is another use case here, since the signal may directly be sent from the PC.
Very good result, anyway.
Attempt to measure Dynamic range
I tried to measure noise and dynamic range.
As per AES, a -60dBFS signal is to be used, and then you measure the remaining SNR and add the level difference to 0dBFS.
With all Codecs but LDAC, it seems the signal is completely muted below -54dBFS.
There is simply no signal.
EDIT (2): I re-tested with the smartphone sending a test signal at -60dBFS to the Topping BC3 receiver, and it worked.
So the Fiio BTA30 pro seems to be muting its output when the level is below -54dBFS, for all CODEC but LDAC.

So I used -54dBFS as a level to measure the dynamic range for each CODEC (except for LDAC).
aptX (identical to aptX LL)
aptX HD
SBC
Now we see the difference between aptX and SBC: The later seems to favor the noise reduction, while the former has lower distortion.
LDAC (Test signal at -60dBFS)
Now we are speaking !
(Even if we should decrease this by 0.2dB, since we know the signal chain saturates above -0.2dBFS)
Note, first, that this is a purely digital chain. No DAC is involved.
Also, all those CODECs play with the level and frequencies somehow.
So this should not, in my opinion, be compared with a "normal" DAC Dynamic range.
Still, we have an interesting result.
(The BC3 from smartphone gives a similar result)
Attempt to measure Frequency response
NB: Following measurements are using LDAC Codec only.
My "normal" measurement method implies using a signal which is synced between Output and Input.
Unfortunately, the clock in seems to be quite shifting versus the clock out, so the signal is not perfectly in sync, and the measurement is therefore not stable.
In practice this is no problem (you only listen to the output), but for my measurements it makes it more complex.
We see quite a few measurement artifacts.
At 48kHz sampling frequency
At 96kHz
I therefore used a sweep from REW to measure frequency response
Similarly, the response around 20kHz is very weird.
This should not be a problem in practice, though.
We see a -2dB cut at 20kHz.
32 tones
32 tones is also requiring a good sync between Out and In signals.
So I couldn't use the "Rectangle (=No) windowing function for FFT I normaly use
And the low frequencies are therefore mixed.
Nevertheless, here it is
(The test signal was re-generated using Audio Precision's APX500 Flex Demo software for 96kHz.
It should therefore be identical to the signal Amir is using, except for the sampling frequency. It has exactly the same crest factor, frequencies and phases..)
Don't worry about frequencies below 100Hz.
Ok, this is not as clean as a standard DAC.
(Look at vertical scale, reduced to an 100dB range. Usually, we use a much wider range, over 150dB or 200dB)
We also see strong harmonics above 20kHz.
That's not too bad, though.
(Partial) Conclusion - TX mode
As a Bluetooth Transmitter, the Fiio BTA30 pro does a pretty good job.
One may object that it is (slightly) outperformed by a Smartphone, but this is only when you deep dive into the smartphone development parameters that you'll be able to force it to use the best CODEC. Most of the time, this is quite random.
You have much more direct control on the CODEC selection with the Fiio BTA30 pro.
The BTA30 Pro's LED indicator also tells you which CODEC is used.
Also, the Fiio BTA30 Pro works very well from a PC, a TV, or any device with an SPDIF output, which is very convenient.
UPDATE:
A user below complains about the abrupt muting for all CODECs but LDAC below -54dBFS.
This is a low level, but I understand this may be unpleasant in some circumstances.
I mentioned the fact in the dynamic range chapter, but highlighting this may be important, indeed.
If you use LDAC only, this is of no consequence.
But if you plan to use other CODECs, you'd better be aware of this behaviour.
Attachments
Last edited: