• 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!

(Unofficial) Review of JCALLY JM20 MAX: USB-C Headphone Dongle with High Unbalanced Output Power

Yes, as HissingFree wrote in the thread "On the Distortion of Cirrus Logic CS431xx-Based Devices: A Comparative Review" - KA11 and JM20 Max seem to use the same SA9312L USB bridge.
As for the BravoAudioHD asio driver, I naturally tried it before reflashing, but foobar2000 gave an error. That's why I decided to reflash.
Ok, that's a strange error, i just made a brief test on my standard JM20 that is the same hardware than Max except the SGM op-amp, it plays flawless in foobar2000 with BravoHD driver:
Immagine 2026-02-11 155556.jpg
 
Ok, that's a strange error, i just made a brief test on my standard JM20 that is the same hardware than Max except the SGM op-amp, it plays flawless in foobar2000 with BravoHD driver:
View attachment 510379
Since, as we read earlier, the JM20 Max and FiiO KA11 have the same DAC, amplifier, and bridge (SA9312L USB bridge), in theory, the KA11 should also start up on the BravoAudioHD ASIO driver from Savitech Corp. But instead of starting, both before and after reflashing, I got the same message in Foobar2000: Unrecoverable playback error. The BRAVO-HD Audio CPL device was not visible, the panel was empty.

After installing the driver from FiiO and reflashing to KA11, everything worked fine.

Now take a close look at the screenshot. Two DACs are connected to the laptop: JM20 Max, reflashed to KA11 and activated in Foobar2000, and Sabaj Da3, activated in AlbumPlayer 2.114. Both players simultaneously play two different SACD ISOs. :) At the same time, Sabaj has an XMOS USB bridge installed - XCore200XU208. Compare their Control Panels carefully. They are identical and are typical XMOS driver panels. So, is it possible that JM20 Max does not have a Savitech bridge?

Now a little about BravoAudioHD ASIO. I had a Fosi DS2-2024 for a short time, with a Savitech USB bridge. In principle, it's a good DAC, but I was annoyed by its driver control, especially when compared to XMOS drivers. Actually, that was the main reason why I sold it.
FiiO-2.jpg
 
Since, as we read earlier, the JM20 Max and FiiO KA11 have the same DAC, amplifier, and bridge (SA9312L USB bridge), in theory, the KA11 should also start up on the BravoAudioHD ASIO driver from Savitech Corp. But instead of starting, both before and after reflashing, I got the same message in Foobar2000: Unrecoverable playback error. The BRAVO-HD Audio CPL device was not visible, the panel was empty.

After installing the driver from FiiO and reflashing to KA11, everything worked fine.

Now take a close look at the screenshot. Two DACs are connected to the laptop: JM20 Max, reflashed to KA11 and activated in Foobar2000, and Sabaj Da3, activated in AlbumPlayer 2.114. Both players simultaneously play two different SACD ISOs. :) At the same time, Sabaj has an XMOS USB bridge installed - XCore200XU208. Compare their Control Panels carefully. They are identical and are typical XMOS driver panels. So, is it possible that JM20 Max does not have a Savitech bridge?

Now a little about BravoAudioHD ASIO. I had a Fosi DS2-2024 for a short time, with a Savitech USB bridge. In principle, it's a good DAC, but I was annoyed by its driver control, especially when compared to XMOS drivers. Actually, that was the main reason why I sold it.
View attachment 510550
You're right, Fiio driver panel closely resembles the Tehsycon panel for Xmos, I know it well owning a Khadas Tone board with Xmos bridge.
But Fiio itself advertises SA9312L for the KA11 as for this picture taken from jade audio KA11 official page

kwcn.jpg


So, I don't really know :p
 
You're right, Fiio driver panel closely resembles the Tehsycon panel for Xmos, I know it well owning a Khadas Tone board with Xmos bridge.
But Fiio itself advertises SA9312L for the KA11 as for this picture taken from jade audio KA11 official page

kwcn.jpg


So, I don't really know :p
Funny, look at two more screenshots. The same version of the same source file from Thesycon. However, I couldn't find anything to confirm that TUSBAudio supports Savitech's USB bridge. Maybe I didn't look hard enough :)
FiiO-3.jpg
FiiO-4.jpg
 
Hi guys,
I got this dongle today and I noticed that whenever a song ends or I pause it there is a static noise. It is not loud but it is noticeable. Is the dongle faulty or do I have to change a setting in Windows (11)
 
Update
I've managed to flash the ka11 firmware and that issue is gone. However every now and then the audio will cut out momentarily. I looked it up and there are people with the KA11 that have this issue. Any ideas?
 
Update
I've managed to flash the ka11 firmware and that issue is gone. However every now and then the audio will cut out momentarily. I looked it up and there are people with the KA11 that have this issue. Any ideas?
Not enough information. Is the KA11 driver installed? What player is used for playback? What type of audio file is it? Are any programs running simultaneously with playback?
 
Not enough information. Is the KA11 driver installed? What player is used for playback? What type of audio file is it? Are any programs running simultaneously with playback?
I have installed the 5.74.3 driver. Happens in both Spotify and Potplayer. The file I tried with Pot is a .flac. As for programs, what kind do you mean? If audio related then no. Is it possible that I haven't flashed the firmware properly? I ran the V0.08 exe and the first time it said that it couldn't write to the eeprom. Then the dac showed up as another device in usbtree and I was able to flash it. I did not change any of the IDs.
Also happens when watching Youtube videos.
Here is how the fiio control panel is configured:
1771172045616.png
1771172067374.png
1771172094977.png
1771172115108.png
 
Last edited:
I have installed the 5.74.3 driver. Happens in both Spotify and Potplayer. The file I tried with Pot is a .flac. As for programs, what kind do you mean? If audio related then no. Is it possible that I haven't flashed the firmware properly? I ran the V0.08 exe and the first time it said that it couldn't write to the eeprom. Then the dac showed up as another device in usbtree and I was able to flash it. I did not change any of the IDs.
Also happens when watching Youtube videos.
Here is how the fiio control panel is configured:
View attachment 511273View attachment 511274View attachment 511275View attachment 511276
For the firmware, I only needed to change the PID value in the firmware program to the current JM20 Max value. After flashing, the VID and PID changed to values corresponding to KA11 (the same as in your screenshot).
On my Windows 10 laptop, I mainly listen to lossless and hi-res audio in foobar2000 or Albumplayer with the appropriate settings. In addition, the Buffer Settings in the driver are set to 2048 samples. The sound does not disappear; I am currently listening to the fifth track and there have been no dropouts.
Have you tried checking the CPU and memory load in Task Manager when the sound disappears?
 
For the firmware, I only needed to change the PID value in the firmware program to the current JM20 Max value. After flashing, the VID and PID changed to values corresponding to KA11 (the same as in your screenshot).
On my Windows 10 laptop, I mainly listen to lossless and hi-res audio in foobar2000 or Albumplayer with the appropriate settings. In addition, the Buffer Settings in the driver are set to 2048 samples. The sound does not disappear; I am currently listening to the fifth track and there have been no dropouts.
Have you tried checking the CPU and memory load in Task Manager when the sound disappears?
Can you send me the PID so I can try again?
I am using a 9800x3d with 32gb ram. Never had an issue with the built-in audio solution or with apple's dongle.
 
Can you send me the PID so I can try again?
I am using a 9800x3d with 32gb ram. Never had an issue with the built-in audio solution or with apple's dongle.
Nice processor :)
You don't need my PID. Follow the instructions carefully (I just tried it twice in a row and it worked both times).
1. Exit the FiiO USB driver. Right-click on the system tray and select Exit.
2. Connect the JM20 MAX to the USB port.
3. Run FIIO KA11_V0.08.exe
4. Fill in the fields. In VID:2972, PID:0081 (as in the screenshot)
5. Click “Write EEPROM.” A second window will appear: “Please re-plugin USB device...”. Without pressing anything, remove the JM20 MAX from the USB port and plug it back in. Then click OK.
6. The firmware update will start and will end with the message “Write to EEPROM OK!”
7. Remove and plug the "KA11" into the USB port again and restart the FiiO USB driver.
FiiO-5.jpg
FiiO-6.jpg
 
Nice processor :)
You don't need my PID. Follow the instructions carefully (I just tried it twice in a row and it worked both times).
1. Exit the FiiO USB driver. Right-click on the system tray and select Exit.
2. Connect the JM20 MAX to the USB port.
3. Run FIIO KA11_V0.08.exe
4. Fill in the fields. In VID:2972, PID:0081 (as in the screenshot)
5. Click “Write EEPROM.” A second window will appear: “Please re-plugin USB device...”. Without pressing anything, remove the JM20 MAX from the USB port and plug it back in. Then click OK.
6. The firmware update will start and will end with the message “Write to EEPROM OK!”
7. Remove and plug the "KA11" into the USB port again and restart the FiiO USB driver.
Thank you. I tried it again and even tried 0.06 but I still have the same issue. Some people managed to "fix" it by changing the UAC to 1 instead of 2. Sadly the setting isn't saved on the jm20max when I tried it even though it gets recognized properly by the app.
 
Thank you. I tried it again and even tried 0.06 but I still have the same issue. Some people managed to "fix" it by changing the UAC to 1 instead of 2. Sadly the setting isn't saved on the jm20max when I tried it even though it gets recognized properly by the app.
UAC1.0 mode is designed for audio playback on game consoles. To activate it, you need an Android smartphone with the FiiO Control app installed. (https://manuals.plus/asin/B0CS6DXTJ2)
Does the sound get interrupted on your smartphone when using "KA11"? When interruptions occur on your computer, are you just listening to Spotify, or are you performing other operations? What type of internet connection are you using, mobile or fiber optic, and what is the speed and latency?
 
I couldn't test it for a long period as the phone was not mine. I am just listening to music and sometimes a stream is playing in the background. It isn't like the song is buffering. It is like the signal becomes weak and picks up again.My internet speed is 1Gbit/500Mbit. I ordered the fiio snowsky melody as a replacement.
 
I couldn't test it for a long period as the phone was not mine. I am just listening to music and sometimes a stream is playing in the background. It isn't like the song is buffering. It is like the signal becomes weak and picks up again.My internet speed is 1Gbit/500Mbit. I ordered the fiio snowsky melody as a replacement.
I sometimes experienced brief interruptions (more like fading) when I launched another program while listening, i.e., at the moment of launch. When simply listening, such problems did not occur. But it seems to me that the main purpose of devices such as the JM20 MAX or KA11 is to work with mobile devices—smartphones or tablets. For a laptop or desktop PC, something like the SMSL D10 or a combination of a stationary DAC and a headphone amplifier is more suitable. I had a set like this: Topping E30 + Topping L30. But alas, I had to sell it.
 
I sometimes experienced brief interruptions (more like fading) when I launched another program while listening, i.e., at the moment of launch. When simply listening, such problems did not occur. But it seems to me that the main purpose of devices such as the JM20 MAX or KA11 is to work with mobile devices—smartphones or tablets. For a laptop or desktop PC, something like the SMSL D10 or a combination of a stationary DAC and a headphone amplifier is more suitable. I had a set like this: Topping E30 + Topping L30. But alas, I had to sell it.
Snowsky Melody arrived today and everything works great. It also came with the latest firmware.
 
the KA11 should also start up on the BravoAudioHD ASIO driver from Savitech Corp. But instead of starting, both before and after reflashing, I got the same mes
Thank you. I tried it again and even tried 0.06 but I still have the same issue. Some people managed to "fix" it by changing the UAC to 1 instead of 2. Sadly the setting isn't saved on the jm20max when I tried it even though it gets recognized properly by the app.
Ordered a JM20 because it doesn't have ultrasonic imaging artifact like the Max, but got sent a JM20 Max somehow, now I am an accidental owner of newly flashed counterfeit KA11

I tried VID:2972 PID:0081 from FiiO KA11 firmware update document and it didn't work, this is how I got it to work:

On a Windows PC, click on search in lower left taskbar, type in Device Manager, scroll down to Sound, video and game controllers, double click to open up JM20 Max, go to Details Panel and look under Hardware Ids

You should see something like
TUSBAUDIO_ENUM\VID_2972&PID_0081&REV_0008&KS
but slightly different

Copy actual ID from your Jcally and follow the rest of the instructions in FiiO firmware flasher and you shall be good to go
 
Last edited:
1771618916493.png
since I originally intended to use JM20 as unamplified line source, and JM20 Max shows slightly elevated THD above 2.27V as shown in this graph from first post

upon flashing KA11 firmware there is now correlation between attenuation in dB and Windows volume control, thought I'd show that data here

-1dB of attenuation in FiiO control panel corresponds to 94% in Windows system volume, which should bring output voltage from 2.54V down to 2.54/1.122 = ~2.264V, just below 2.27V where distortion begins to rise, but bear in mind 2.27V is still hotter than your typical 2Vrms line out from consumer audio sources so check if it clips the receiver, or just attenuate 2.08dB to match the 2V standard

if you want to operate JM20Max as line out, I think 94~95% volume is a good place to start, also if you intend on driving long cables followed by a high impedance line-in, maybe consider building a little serial resistance to the amp output since output impedance is rather low, this thing should make a very good single ended line driver

more volume presets, I assume same should apply to stock JM20Max under Windows
-3dB is 82%
-6dB is 67%
-9dB is 55%
-12dB is 45%
-24dB is 19%
-48dB is 3%

I tested stock Jm20Max with sensitive IEMs and I found I need about -45dB of attenuation from max volume for it to sit at nominal listening level, which shaves close to 8 bits from 32bits, but ~24bits still plenty of precision to go around, it's not best in terms of gain staging but given how low noise it is, still very acceptable SNR
 
Last edited:
I flashed my JM20-Max to Fiio KA11 today. I appreciate the availability of ASIO drivers and the internal volume trim, but I did experience one brief audio dropout in the middle of a song that some other posters brought up. I'm sure it will happen again. That never happened with the old firmware. Let's hope there is a new ASIO driver that fixes it.
 
A quick update about the JM20 Max with Fiio KA11 firmware. The hardware volume control, or the impedance sensing circuit is partially broken by this firmware. I hooked up the JM20 Max to my phone and got audio on one side only. At first I thought that the IEMs I used were broken. Then I opened the Fioo app and looked at the volume control and it was all the way down to zero. I started adjusting the volume and the one side that was initially dead came back, but the L/R balance was all over the place. Resetting the USB connection temporarily fixed the volume, but when I disconnected the IEM from the dongle and inserted an impedance adapter, the volume and the balance went haywire again. I never had this issue with the original firmware.
I don't think the JM20 Max is 100% compatible with KA11. They use the same hardware, but it might not necessarily be configured with the same options. These ICs have pins that can be either shorted or loaded that enable certain functions, and I suspect they are configured differently on the JCally hardware than on the Fiio hardware. That's why things don't behave exactly the same.

Flash on your own risk.
 
Back
Top Bottom