MTC Sound: controlling BD37xxx Sound Processors in MTCB Head Units (RK3066/3188)

Search This thread

warata

Senior Member
Apr 25, 2016
384
72
Tsu
Model: JY-UQ128
Malaysk ROM installed

MTC sounds is updated to 1.8 and also xposed is to latest version, i think 2.71 experimental.

Here are my logs:
- on cold boot sounds works but i cant set volume (coldboot.log)
-after reboot sound dissapear (reboot.log)

So what should i do now?

"The Sound Control Status is: mcu,Error in write() 11 (no response from i2c slave)"

This is from log you uploaded and situation of your HU and 7floor wanted to know.Sorry I can't analysis anymore I am not real developer:p
 

chipyy94

Senior Member
Oct 8, 2014
169
17
"The Sound Control Status is: mcu,Error in write() 11 (no response from i2c slave)"

This is from log you uploaded and situation of your HU and 7floor wanted to know.Sorry I can't analysis anymore I am not real developer:p


Np

Today i started my car again and when was cold boot it was all working fine. (working.log) Then i turn off car and go to store after 10 min i came back , meanwhile radio just go to sleep and when i turn back my car sound was working but control of sound wasnt working. (controlnotworking.log) . Then i reboot head unit and then again sound muted :( (afterreboot.log)
@7floor if u could take some time and give me any advices ;)
 

Attachments

  • working.log
    17.5 KB · Views: 17

dafior01

Member
Nov 15, 2013
34
1
I have changed wires and now I have shielded wires. Noises are much lover then before. Perhaps if I connect shield to ground (case?), it would be better.
But still problem with no sound and have to reboot device.
 

chipyy94

Senior Member
Oct 8, 2014
169
17
I have changed wires and now I have shielded wires. Noises are much lover then before. Perhaps if I connect shield to ground (case?), it would be better.
But still problem with no sound and have to reboot device.
check soldering mybe is somewhere near the contact or take it to some electrician ;)
 

7floor

Senior Member
Jul 20, 2006
236
179
Strange things are happening.

Some people have no sound after cold boot and sound restores after reboot. Others have sound on cold boot, but it disappears after reboot, or random.
Three reports for now:
1. @narkusoid - KLD S07 with booroondook ROM- cold=fail, reboot=ok
2. @dafior01 - KLD S07 with malaysk ROM - cold=fail, reboot=ok
3. @chippy94 - JY-UQ128 with malaysk ROM - cold=ok, reboot=fail - but he said that issue is pretty random
4. @natalic - had some issues, but no details, reported here http://forum.xda-developers.com/showpost.php?p=66190210&postcount=287

Me:
Some JY model, even don't know the exact model, but the pcb looks exactly as for JY-UQ128 here http://forum.xda-developers.com/showpost.php?p=65587419
Booroondook ROM: DIY_HA_FUSE_AllCPU_KK444_AllRes_151204_root_mod_boo_2015-12-27_v1.0.0
NEVER EVER experienced "no sound" issue.

@chippy94, you have other errors in log that I don't understand why they happen. It's about interception of start/stop recording for "mute on record" function. I guess it doesn't work for you, does it? But anyways, it is not related to "no sound at boot" issue.
Also, when you lose volume control, it is also unrelated, this sometimes happens to people and it was discussed elsewhere - people were losing ability to use volume knob but volume was still adjusted from e.g. steering wheel buttons.

So my current guess is that KLD units may have some nuances during cold boot (electronic or maybe MCU-related who knows) because two people with KLD reported very similar and stable issue occurrences.
But this may be just a coincidence, 2 people is too little for statistical significance. JY-UQ128 definitely has no such problems, as I own one and I'm fine. So I suspect @chippy94 has some sort of soldering issue, especially his issues are pretty random.

---

Guys, do you have any pictures of how you done HW mod maybe? I would like to look at them if any. Too long wires? Inaccurate soldering?

Also, guys who done the mod and NEVER had any issues with "no sound after boot" (or had very rarely) - please report here your HU model, MCU and ROM versions. Maybe this could help in making assumptions about circumstances how/when/why this weird bug is happening to others.

Here's what: download and install attached file. This is a special build that will log some details to android system log. Please send me logs when the "no sound" issue occurs, and also when it was fine. Logs can be viewed with apps like CatLog (free in play store). You will need to filter by "mtcsound" (without quotes).
 

Attachments

  • mtcsound-release-1.8.1.apk
    389.4 KB · Views: 35
Last edited:

chipyy94

Senior Member
Oct 8, 2014
169
17
Strange things are happening.

Some people have no sound after cold boot and sound restores after reboot. Others have sound on cold boot, but it disappears after reboot, or random.
Three reports for now:
1. @narkusoid - KLD S07 with booroondook ROM- cold=fail, reboot=ok
2. @dafior01 - KLD S07 with malaysk ROM - cold=fail, reboot=ok
3. @chippy94 - JY-UQ128 with malaysk ROM - cold=ok, reboot=fail - but he said that issue is pretty random
4. @natalic - had some issues, but no details, reported here http://forum.xda-developers.com/showpost.php?p=66190210&postcount=287

Me:
Some JY model, even don't know the exact model, but the pcb looks exactly as for JY-UQ128 here http://forum.xda-developers.com/showpost.php?p=65587419
Booroondook ROM: DIY_HA_FUSE_AllCPU_KK444_AllRes_151204_root_mod_boo_2015-12-27_v1.0.0
NEVER EVER experienced "no sound" issue.

@chippy94, you have other errors in log that I don't understand why they happen. It's about interception of start/stop recording for "mute on record" function. I guess it doesn't work for you, does it? But anyways, it is not related to "no sound at boot" issue.
Also, when you lose volume control, it is also unrelated, this sometimes happens to people and it was discussed elsewhere - people were losing ability to use volume knob but volume was still adjusted from e.g. steering wheel buttons.

So my current guess is that KLD units may have some nuances during cold boot (electronic or maybe MCU-related who knows) because two people with KLD reported very similar and stable issue occurrences.
But this may be just a coincidence, 2 people is too little for statistical significance. JY-UQ128 definitely has no such problems, as I own one and I'm fine. So I suspect @chippy94 has some sort of soldering issue, especially his issues are pretty random.

---

Guys, do you have any pictures of how you done HW mod maybe? I would like to look at them if any. Too long wires? Inaccurate soldering?

Also, guys who done the mod and NEVER had any issues with "no sound after boot" (or had very rarely) - please report here your HU model, MCU and ROM versions. Maybe this could help in making assumptions about circumstances how/when/why this weird bug is happening to others.

Here's what: download and install attached file. This is a special build that will log some details to android system log. Please send me logs when the "no sound" issue occurs, and also when it was fine. Logs can be viewed with apps like CatLog (free in play store). You will need to filter by "mtcsound" (without quotes).

Mybe is my issue realy soldering because i solder really strange. But it still weird that it works but on reboot or turn off just stops...
And how you mean mute on record? When sound is and i cant control it and if i press mute it doesnt work.
I will post picture and test it tommorow.
 
Last edited:

Airwin13

Member
Jan 14, 2016
21
7
Also, guys who done the mod and NEVER had any issues with "no sound after boot" (or had very rarely) - please report here your HU model, MCU and ROM versions. Maybe this could help in making assumptions about circumstances how/when/why this weird bug is happening to others.

HU: JY-VQ121
Modelnumber: 9813WH J1126
MCU: MTCB-JY-V2.73
ROM: booroondook and malaysk mixed with all type of versions.

Never had any sound issues with any rom.
So again, thanks 7floor for the great work.
 

chipyy94

Senior Member
Oct 8, 2014
169
17
Today on cold boot everything was working again and i installed sound 1. 81 log named (ok.log). I will update and reupload new logs through day
This was status from ok.log : The Sound Control Status is: i2c,Channel 4
java.lang.SecurityException: Package android does not belong to 10025
 

Attachments

  • Ok.log
    41.4 KB · Views: 15
Last edited:

7floor

Senior Member
Jul 20, 2006
236
179
I asked you to include the other log, not that from Xposed, but from Android. See my explanation in message where I attached version 1.8.1.
 

chipyy94

Senior Member
Oct 8, 2014
169
17
I asked you to include the other log, not that from Xposed, but from Android. See my explanation in message where I attached version 1.8.1.
Ok we missunderstood, tnx for your patience ;)
Under are also my pictures of soldering. I didnt solder on the capicators because i screw up so i solder 1 hole or 1 step before this capicator when 25 and 26 pin start. and also i solder 1k ohm resistor on wires because i lost original.
update @floor: in this case sound doesnt work. It was cold boot. Here is my log only for keyword "sound" i also searched for "mtcsound" but here are better results:

W/PackageManager( 547): Unknown permission android.permission.MANAGE_SOUND_TRIGGER in package com.google.android.gms
W/PackageManager( 547): Unknown permission android.permission.MANAGE_SOUND_TRIGGER in package com.google.android.gms
D/alsa_route( 114): route_info->sound_card 0, route_info->devices 0
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$14.afterHookedMethod(Module.java:255)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$16.afterHookedMethod(Module.java:282)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$16.afterHookedMethod(Module.java:282)
D/alsa_route( 114): route_info->sound_card 0, route_info->devices 0
D/alsa_route( 114): route_info->sound_card 0, route_info->devices 0
D/alsa_route( 114): route_info->sound_card 0, route_info->devices 0
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$14.afterHookedMethod(Module.java:255)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$16.afterHookedMethod(Module.java:282)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$16.afterHookedMethod(Module.java:282)
D/alsa_route( 114): route_info->sound_card 0, route_info->devices 0
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$14.afterHookedMethod(Module.java:255)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$16.afterHookedMethod(Module.java:282)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$16.afterHookedMethod(Module.java:282)
D/alsa_route( 114): route_info->sound_card 0, route_info->devices 0
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$14.afterHookedMethod(Module.java:255)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$16.afterHookedMethod(Module.java:282)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.service.IMtcSoundService$Stub$Proxy.onRecording(IMtcSoundService.java:199)
I/Xposed ( 1209): at com.sevenfloor.mtcsound.xposed.Module$16.afterHookedMethod(Module.java:282)

Update 2: i repair soldering of one wire atm is working great. So i guess it was my mistake, we will see in few days.
 

Attachments

  • IMG_20160615_153733.jpg
    IMG_20160615_153733.jpg
    267.9 KB · Views: 217
  • IMG_20160615_153535.jpg
    IMG_20160615_153535.jpg
    278.5 KB · Views: 223
Last edited:

pamarakos

Senior Member
Jan 10, 2008
931
93
Hi all
Two days ago I've found this mod and I was so surprised...so today I went to an electronic repair shop so they made the hardware for me

It's a brand new out of the box Android 4.4. head unit

Everything seems fine but I get the error message

- mcu,Error in write() 110 (no response from i2c slave) – same as above.

in Xposed log

which is explained as

mcu,Error in write() 11 (no response from i2c slave) – programmatic access to i2c bus works well, but Sound Processor does not respond. Need to check soldering. Maybe there's no contact where is has to be, or you shortened something, or you messed with the wires making them wrong way around.

So I went back to the store and made them to check their connections and there isn't any short circuit for sure, the thing is that they don't measure 2k when measuring all the "path" and also when measuring the WM resistors they are not 1k but 0.09

I'm attaching the photo of my work and also the app says that it needs a patch or the harware modification if I'm helping

So now how can I proceed, is there any more I can test or this mod is just not working with my unit?
If you need anything more such as photos or model on the pcb or something please let me know, I've got it dismantled in front of me:)

Thanks a lot for your time

ImfzJmf.jpg
 
Last edited:

7floor

Senior Member
Jul 20, 2006
236
179
So I went back to the store and made them to check their connections and there isn't any short circuit for sure, the thing is that they don't measure 2k when measuring all the "path" and also when measuring the WM resistors they are not 1k but 0.09

That's normal that resistors at WM chip are not 1k but 100. They're marked 101 which is actually 100 ohm. I have the same.
So that each path should measure as something like 1100 ohm (1000 at BD + 100 at WM).

Check with this post, very detailed: http://forum.xda-developers.com/showpost.php?p=65587419
The wiring looks correct to me. You need to re-check with multimeter each of 2 paths, each from BD pin to WM pin. Resistors can be easily destroyed if overheated.
 
  • Like
Reactions: pamarakos

narkusoid

Member
May 20, 2014
16
0
Here's what: download and install attached file. This is a special build that will log some details to android system log. Please send me logs when the "no sound" issue occurs, and also when it was fine. Logs can be viewed with apps like CatLog (free in play store). You will need to filter by "mtcsound" (without quotes).

Yesterday installed version 1.8.1. Logs were taken after reboot and the sound was ok. I put in my post them just in case. This evening I take logs during cold boot.
My modification was made in the head unit this post http://forum.xda-developers.com/showpost.php?p=63520630 The wire has a length of 20-25 cm. I can not reduce the length of the wires because WM8731S and BD37033FV are located far from each other. I took the wire from the twisted pair. The wire is not shielded. Maybe that's the problem?
 

Attachments

  • logcat_sound_ok_20160615.txt
    665 bytes · Views: 15
  • xposed_log_sound_ok_20160615.log
    4.5 KB · Views: 17

pamarakos

Senior Member
Jan 10, 2008
931
93
That's normal that resistors at WM chip are not 1k but 100. They're marked 101 which is actually 100 ohm. I have the same.
So that each path should measure as something like 1100 ohm (1000 at BD + 100 at WM).

Check with this post, very detailed: http://forum.xda-developers.com/showpost.php?p=65587419
The wiring looks correct to me. You need to re-check with multimeter each of 2 paths, each from BD pin to WM pin. Resistors can be easily destroyed if overheated.

All re-done and measured just at 1.1kohm all the way through both paths, so nothing wrong there. Is there anything more I can try through software?

Thanks
 

7floor

Senior Member
Jul 20, 2006
236
179
The wire has a length of 20-25 cm. I can not reduce the length of the wires because WM8731S and BD37033FV are located far from each other. I took the wire from the twisted pair. The wire is not shielded. Maybe that's the problem?
Mine are not shielded, too, that's ok.
Let's wait and see what would appear in log when you get no sound.
 

7floor

Senior Member
Jul 20, 2006
236
179
All re-done and measured just at 1.1kohm all the way through both paths, so nothing wrong there. Is there anything more I can try through software?Thanks
This is not a software issue.
I've looked at your picture and it seems you've done it correctly. But still, can you confirm that you have paths as WM 23 - BD 26 and WM 24 - BD 25?
If everything is correct, then you've burned your BD chip.
As a last chance, you may try replacing 1k resistors at BD chip with 100 ohm ones, this should lower interference and noise in I2C communication line (but honestly I doubt it helps).
Only suggestion I can give in that situation - is to revert HW mod back and see if you get working stock.
 
Last edited:
  • Like
Reactions: pamarakos

chipyy94

Senior Member
Oct 8, 2014
169
17
This mod doesnt work on Lollipop i think Floor said. U can throw that resistor away i did it ( i lost it XD because they are so small) and i didnt even solder wire on that place but one step before this because on my plate is made bridge . when i solder wires i cut it on half and placed 1k ohm resistor on it and this is. But i did this on my JY-UQ128 : http://forum.xda-developers.com/showpost.php?p=65587419
 
Last edited:

pamarakos

Senior Member
Jan 10, 2008
931
93
This is not a software issue.
I've looked at your picture and it seems you've done it correctly. But still, can you confirm that you have paths as WM 23 - BD 26 and WM 24 - BD 25?
If everything is correct, then you've burned your BD chip.
As a last chance, you may try replacing 1k resistors at BD chip with 100 ohm ones, this should lower interference and noise in I2C communication line (but honestly I doubt it helps).
Only suggestion I can give in that situation - is to revert HW mod back and see if you get working stock.

Thank you very much for your response and help.
While I was at the repair shop I made them to revert all in stock and it was working fine, so they ve re-done evrything back to mod state.
Ok, I ll recheck maybe tonight the pins to.make sure they are correct and I ll let you know.
Can I upload a bigger photo tonight of all the pcb for you to check it out yourself so as to be sure?

Thanks again
 

Top Liked Posts

  • There are no posts matching your filters.
  • 30
    Direct control of Sound Processor for Microntek Head Units based on RK3066/RK3188 processors.
    HuiFei, KGL, KLD, JY, and similar, generally discussed here: http://forum.xda-developers.com/android-auto/mtcb-android-head-unit-general

    WARNING! The hardware modification described in this topic, while being simple enough, still requires you to have at least average soldering skills and appropriate soldering iron that allows soldering of very small SMD components. Sample of suitable soldering iron is shown on the photo:
    soldering-iron.jpg
    Also, you will need a multimeter, any cheap one with buzzer will be sufficient.
    There is an excellent post by @JEMShoe, a must read: http://forum.xda-developers.com/showpost.php?p=63661855&postcount=39

    The goal of the modification

    Microntek Car Head Units based on RK3066 / RK3188 processors have so called Sound Processor IC made by ROHM, the BD37xxxx family.

    This sound processor has the following functions:
    - Three-band parametric equalizer with adjustments of gain in range -20dB – +20dB, frequency and Q-factor of the filter in each band.
    - Configurable loudness module with gain in range from 0dB to +20dB, and adjustment of filter frequency and the level of high frequencies suppression.
    - Setting of subwoofer output, including selection of signal source, cut-off frequency, phase, and gain.
    For more detailed technical information please refer to the datasheet: View attachment 3520723

    In stock implementation, this IC is controlled by another 8051-based controller (called MCU) which controls all the onboard hardware, such as display, hardware buttons, BT module, video switch, etc. The way it controls the Sound Processor IC is very limited and in some aspects wrong:
    - Instead of 3-band parametric equalizer, we have a 9-band graphical one, with strange logic – each of three groups of three bands controls a single hardware band, averaging their values; and the adjustments range is only +-10dB.
    - Loudness compensation does not use a built-in hardware circuit, but just adds some bass and treble, which is a way not the same.
    - Subwoofer output is fixed and cannot be configured.

    The MTC Sound module allows for direct control of all the built-in function the Sound Processor directly from Android, overcoming limitations of stock implementation, and allowing to tune the sound quality to the best, with only minor hardware modifications.
    Besides of that, in stock implementation, equalizer presets apply to any input, be it System, Radio, DVD etc. My experience tells me that it is desirable to have a separate equalizer settings per input. The Radio sounds differently than Media Player or DVD, so it needs to be adjusted differently.
    In addition, a Preamp value that can be found in Factory settings was pulled for live adjustment. It is needed to equalize the volume of different inputs.

    The software part

    1.equalizer.jpg2.balance.jpg3.settings.jpg
    The software can be installed without hardware modification, but it will not work. It can be used for evaluation, though, to see how it looks like and what settings it has.
    Make sure you have a rooted device, the Xposed framework installed, and you have some file manager that allows for file manipulations in system folders. I recommend the "Root Explorer".
    Find the files mentioned below in this archive: View attachment system-files.zip
    1. Copy libjnidispatch.so to /system/lib and set permissions to 644.
    2. Check if you have files i2c-0 .. i2c-4 under /dev directory. If they exist (typical for RK3188) skip step 3 and proceed to 4; if they don't exist (typical for RK3066) proceed to step 3.
    3. Copy i2c-dev.ko to /system/lib/modules and set permissions to 644.
    4. Download MTC Sound plugin from the Xposed repository (http://repo.xposed.info/module/com.sevenfloor.mtcsound) and install it. It will appear in modules in Xposed Installer, enable it there and reboot.
    5. After reboot, go to Xposed Installer, and check its Log. Watch for line "The Sound Control Status is:" (see below for possible statuses).
    The software brings the new Equalizer which will replace the stock one, and also it will be launched by hardware EQ button (if your unit has one).

    The statuses that can be displayed in the Xposed log:
    - No patch detected – either module is not active in Xposed, or device was not rebooted after activation.
    - mcu,No device driver i2c-dev – you have device which requires i2c-dev.ko driver, and you forgot to copy it where needed or set permissions (see step 3 above).
    - mcu,Exception com/sevenfloor/mtcsound/I2cBus$CLib – you forgot to copy libjnidispatch.so or set permissions.
    - No access to /dev/i2c-?; <some additional info> - despite existence of driver, failed to access i2c bus programmatically. Normally should never happen, but if happened, contact me for further investigation.
    - mcu,Error in write() 11 (no response from i2c slave) – programmatic access to i2c bus works well, but Sound Processor does not respond. Need to check soldering. Maybe there's no contact where is has to be, or you shortened something, or you messed with the wires making them wrong way around.
    - mcu,Error in write() 110 (no response from i2c slave) – same as above.
    - i2c,Channel x (x is a number) – everything is good, enjoy your sound.

    Note
    Starting from version 1.9.0, due to massive re-implementation of initialization logic, the statuses mostly change their texts.
    But they still have the same meaning as above, thus can be understood easily.
    Additionally, initialization steps are logged in details to system log with tag 'mtcsound' (viewed with apps like CatLog).

    The hardware part

    circuit-en.jpg
    Please see the circuit diagram above.
    Basically what we need to do is to re-route the I2C control bus of Sound Processor from the MCU to the Android Board.
    Find a 28-pin IC marked BD37<whatever>. It has a key - small dot or circle near the 1st pin. Pins are counted from that key dot, counter-clockwise.
    So that find pins 25 and 26, and using a multimeter, trace resistors connected to these pins, somewhere around the chip.
    Unsolder these resistors - this way you'll break connection to the MCU that needs to be broken.
    Keep the resistors, or throw them away if you plan to use new ones (e.g. bigger, easier to manipulate - not only SMD resistors may be used but also those with wired pins).
    Now find a 28-pin IC marked WM8731S, and with multimeter, trace resistors connected to its pins 24 and 23. The same rule for pin counting applies.
    Don't unsolder these resistors. Solder wires to their opposite ends.
    Other ends of wires solder to the resistors that you unsoldered (or to others you had for replacement), and opposite pins of the resistors solder to the pads that are connected to the BD37xxx chip.
    So that you will have the following traces:
    WM8731S pin 24 - resistor - wire - resistor - BD37xxx pin 25
    WM8731S pin 23 - resistor - wire - resistor - BD37xxx pin 26
    After soldering, carefully check the circuit with the multimeter.
    WARNING! Later in this thread, users who already done the mod share their experience, photos, drawings, etc.
    When doing the mod yourself, ALWAYS read this my post and refer to the diagram above.
    Use pictures from others to get an idea where the components are located, but think yourself, don't blind-follow others work.

    Mini-FAQ

    Q: So will the sound be much better after this modification, is it worthly at all?
    A: It will not make your hardware parts like amplifier and other audio circuits any better. But it will allow you to fine tune the sound to the best that can be achieved with all the features of the Sound Processor, which is not available in the stock. Many people say they get "incredible sound". I would say that I managed to tune mine to be "much better" :)

    Q. Would your software be useful without the HW modification part?
    A. No. In future, such a possibility might become available. Other developer works on MCU patch, and when/if he finish his work, I will update my software to work thru his modified MCU, so that without a HW mod. As I see the picture, it will take not less than a couple of months.

    Q. Please help me with the HW modification for my device XXX / YYY / ZZZ
    A. I'm not familiar with other devices than mine, and, unfortunately, I've got not very helpful pictures of my work. So if you can't follow above instructions yourself, then please wait for more experienced users with units like yours, when they do modifications and share their photos.

    Q. I've done the HW mod, and the software gives me the status "i2c,Channel x", which indicates success. I have sound from the Radio, but not from the Android / Media player. What's wrong?
    A. Some people reported an issue with the resistors at the WM8731S chip. They're fragile and can be easily fried/broken when soldering wires to them. The WM8731S chip is the Audio Codec for Android and with broken I2C control circuit you'll get no sound from Android. Please check with the multimeter and replace one or both that are broken. Use 1 kOhm resistors suitable by size.

    Q. I've got the status as follows: mcu,No access to /dev/i2c-?; su exit code 1
    A. Have you installed the SuperSU or one of similar super user managers? SuperSU has the option to allow SU during boot - just enable it and reboot.

    Q. Why the feature X doesn't work exactly as it worked in stock unit, or doesn't work at all? When will you fix it?
    A. As the MCU does not control the Sound Processor anymore, I had to re-implement many stock features in my software from a scratch. Example is the GPS application sound switch/mix. There are some other stock features that were not implemented -- either they are impossible to implemented, or I was not aware of their existence, or I just don't want to implement them because consider them not important. Anyways, ask for a specific feature in this thread, and at least I'll answer, whether it will be implemented and how soon.

    Q. You said that some features are impossible to implement. What these features are?
    A. Anything related to Sound control by the MCU alone, before Android gets loaded, for sure. Not sure what this may include, maybe something related to parking sensors beeps? Did this ever existed in stock? Other features except that also may appear impossible to implement or too hard to ever try to do that.

    Q. Where on your Equalizer are the sound presets like Pop/Jazz/Rock? And why my hardware EQ button which was switching these presets earlier, now just executes the Equalizer app?
    A. This is a good example of a feature that I consider unimportant and will never implement. These presets are nothing than a marketing bu11$41t and have nothing in common with a quality sound. Period.

    Xposed Repository link

    http://repo.xposed.info/module/com.sevenfloor.mtcsound

    Links to how-to posts by users who have already made the mod.

    KLD by @dazza007
    http://forum.xda-developers.com/showpost.php?p=63520630

    JY by @JEMShoe
    http://forum.xda-developers.com/showpost.php?p=63712823

    JY-UQ128 by @JrFaust
    http://forum.xda-developers.com/showpost.php?p=65587419

    KGL by @Tutti-frutti:
    http://forum.xda-developers.com/showpost.php?p=64460726

    ---
    My other work:
    - Xposed Volume Bar: http://forum.xda-developers.com/showthread.php?t=3246360
    7
    Thanks, but you must work on your ego. Instead of talking about 0-30 you could have said volume knob to lowest setting 0 vs highest setting 30. Which would have been easier
    to understand.
    You're welcome, but taking my work for free, you must not tell me what I must to do.
    Instead, you must carefully read posts, where I'm trying to help you, and ideally, you must try to understand them. Just because if you don't understand, it's your problem, not mine.

    If you really need somebody to teach and to demand support from, I can recommend the Chinese seller who sold you your unit -- at least you paid him money. Go ahead, tell him about his ego.

    So, my congrats: you win the "No Support" prize.
    6
    Update:
    Version 2.0.0:
    - Now also works on Android Lollipop 5.1.1 on MTCB/MTCC/MTCD head units

    Special thanks to @kumarai for testing!
    6
    New version 1.6.0
    Added new setting "GSM via Android" for some Bluetooth types that route phone call sound via Android board (BC6B seems to do that)

    There are reports that the sound of phone call cannot be heard after the mod.
    Examples are:
    http://forum.xda-developers.com/showpost.php?p=63967019&postcount=88
    http://forum.xda-developers.com/showpost.php?p=66083203&postcount=253

    It turns out that some types of BT modules outputs the phone call sound via the Android board, not directly to the sound processor chip. Seems like BC6B module does like that.
    So for those who lost their phone function with my mod, this new setting should help.
    6
    I am a HW engineer and several of my skills include Printed Circuit Board (PCB) layout, soldering and I frequently review PCBA manufacturing facilities (we own our own electronics assembly plant).
    Just a few tips and observations:

    1) Static electricity (formally known as Electrostatic Discharge or ESD) will damage your electronics. You are taking a great risk soldering your PCBAs in areas that are not ESD safe. If you do not have such area but are insistent on handling your radio's electronics, you can reduce the amount of charge your body is carrying by first discharging yourself at a grounded fixture such as the metal screw holding the electrical outlet faceplate, any non-painted metal device (or area on that device) that is plugged in an outlet with a grounded plug (usually a third non-current carrying terminal), wearing non ESD generating clothing, do not work in carpeted areas, do not roll your chair around while handling your electronics, etc. People do not realize that some of their devices fail later due to latent ESD failure because they opened and handled their devices in a non ESD safe area.

    2) Because these devices are manufactured so that they can be sold ROHS compliant to places like Europe, they use lead free solder. Lead free solder requires more heat to melt but the components themselves are not necessarily more tolerant to heat. These parts were intended to be solder with a specific reflow profile which is never repeatable with a soldering iron. A part can be damaged in less than 10 seconds of applied heat (especially if the soldering iron is above 600C). The fastest way to get solder to melt so that a part can be removed is by adding some flux to the component pad prior to applying the soldering iron. It helps if you have a temperature controlled soldering iron and the proper tips for component removal (I actually have channel tips to simulateously heatup all the IC pins, allowing me to remove, say a 20-pin SOIC part, in about 5 seconds without damaging pads).

    3) It is better to buy and use new 0603 resistors (100 ohms, 1000 ohms, etc.) ahead of the modifications than reusing heated parts. When you heat the parts the conductive ends may not be free of contaminates due to over heating. Also the pads must be cleaned prior to putting the part on the board (new or reused). Failure to do this may required excessive heat to get the part to solder to the board.

    4) I have seen some photos on this thread and I can clearly see that there are some cold solder joints, some joints were disturbed while cooling, some did not use flux when soldering, some have the wire strewn across other components (Wires carrying I2C can induce noise into circuits the wire is laying across--SCL is the clock line and can run at speeds of 100kHz, 400kHz and even 3.4MHz), etc. I also saw unsecured wire...the radio is in a vehicle that experiences vibration and shock (sudden jarring movement with energy transferred through the medium) so if the wire is not well secured it could break loose then that energized wire could short something out inside your radio.

    5) During PCB layout, not all traces go out from the chip. Sometimes I route under the chip, through the board onto an internal layer, etc. Thoses 'pads' that were identified as alternative pickup points for SCL and SCK, those are VIAs. On this board, they are coated with soldermask. If you try to heat that via to make a wire stick you will be applying heat for a long time and risk damaging the via. If you improperly scrap the solder mask you also risk damaging the via. If that via is damaged you can render the board unrepairable if that via happens to be going to an inner layer trace that you can not see nor access. Best to use the larger component pads.

    6) Invest in good wire...don't just grab any wire you have around as a poor choice can reshape the signal and make the circuit misbehave. The wire should not be any longer than necessary (I2C is very sensitive to noise).

    That's all for now.