[MOD][DSP] simpleDSP installation into MTCD/E inside (ImprovedSound) - MTCD Hardware Development
simpleDSP installation into MTCD/E inside (ImprovedSound)
after in the summer of 2017 I disasseble the MTCB/C MCU firmware, I decided to try to improve the sound of these head units and bought a DSP test card based on the low-cost ADAU1401/1701 chip and started experiments with it to solve all the flaws in the sound settings of the Chinese head units.
In February 2018, Chinese vendors began the first sales of MTCE head units with internal DSP modules installed based on the ADAU1701 chip. A detailed analysis showed that the new hardware version of the head unit does not differ much from the previous one based on the sound processor BD3702, so I can try adding this module to me myself, because the Chinese refused to separately sell the DSP module for me.
[fig.1] photo of the main board of the new MTCE head unit with built-in DSP module
View attachment 4561586
[fig.2] photo of the main board of a typical MTCD/E head unit with a sound processor
View attachment 4561611
[fig.3] screenshot of the fake 9-band EQ of a typical MTCD/E head unit with a sound processor
View attachment 4561612
[fig.4] electrical circuit schematic of the sound processor of a typical MTCD/E head unit
View attachment 4561619
[fig.5] electrical circuit schematic of the sound switch of a typical MTCD/E head unit
View attachment 4561621
[fig.6] photo of the PX3(1GB) CPU coreboard of a typical MTCD/E head unit
View attachment 4561630
[fig.7] photo of the PX3/PX5 CPU coreboard of a typical MTCD/E head unit
View attachment 4561637
[fig.8] sigmaDSP ADAU1701 LQFP48 pinout
View attachment 4561645
[fig.9] sigmaDSP ADAU1401/1701 test board
View attachment 4561646
[fig.10] electrical circuit schematic of the ADAU1701 test board
View attachment 4561651
[fig.11] chinese built-in DSP ADAU1701 sub board
View attachment 4562327
As a result of comparing the MCU firmwares of the head units with the sound processor and with the integrated DSP module, we see that the same firmware is used.
When analyzing the behavior of the MCU firmware, it is found that after the start, it first polls the I2C bus on the sound processor chip and if it answers its own address, the head unit operates normally. If there is no sound processor, i.e. it does not respond to its own address, then the DSP chip is polled. If the DSP chip responds to its own address, then the head unit is already operating in the mode of improved sound with a real 15-band equalizer.
The sound processor chip BD37033 is powered by a 9-volt voltage source, and the AMS1117-3.3 stabilizer is used on the sigmaDSP test board, which allows operation from a voltage of up to 15 volts, so connect the DSP test board to the voltage of the sound processor chip on the main board. Disconnect from the I2C-bus of the MCU chip of the sound processor BD37033 and instead connect to the DSP chip ADAU1401/1701.
A real check showed that the software support of the DSP is in the MCU firmware from version 2.72 and higher and in Android builds versions 6.0.1, 7.1.2 and 8.0 and this mod is compatible with most MTCD/E head units
[fig.12] screenshot of the real 15-band EQ of a modified MTCD/E head unit with a DSP inside
View attachment 4562339
Since there is no electrical circuit schematic of the Chinese DSP module, then compare visually the board of the Chinese embedded DSP module with the DSP test board. The test board uses a onboard 12.288MHz crystal oscillator for clocking, and there is no resonator on the Chinese board and uses an 11.296MHz external clock from the CPU coreboard (I2S bit clock frequency for the sampling rate frequency of 44.1kHz).
Unsolder the crystal oscillator from the DSP test board, find the output of the clock signal on the CPU coreboard and provide a master clock signal to the 32-pin chip of the DSP chip ADAU1401/1701.
I and most my friends in the car listen only digital sounds from Android and analog sound from the FM radio tuner, so in the simplest version of the upgrade can do without using an analog audio switch that will simplify the finalization of the head unit.
On the new PX3/PX5 coreboards there are an additional 4 pins on which the I2S digital audio signals are output. These signals are connected to the DSP test board (the MCLKI signal of the external clock was already connected a little earlier).
[fig.13] digital I2S sound output from CPU coreboard
View attachment 4562387
On the older PX3(1GB) coreboars not are an additional pins for external output, but the I2S digital audio output can be founded on the onboard Wolfson audio codec chip pins. However, I have not connected such a coreboard yet and I do not know about real software compatibility with the Android build of version 5.1.1, but I suppose that this should be possible without much additional effort, but need to try...
[fig.14] digital I2S sound output from CPU to Wolfson audiocodec on coreboard
View attachment 4562396
Digital signals from Android sources must be connected to ADAU1401/1701 as follows:
-- Master CLOCK to 32 pin (MCLK) throu 100 Ohm resistor;
-- SDATA to 11 pin (MP0);
-- BLCK to 9 pin (MP5);
-- LRCLK to 8 pin (MP4)
The DSP chip has two built-in ADCs, so the analogue sound from the FM radio tuner can be connected to the sound processor pins as follows:
-- FM-R (pin 10) to 2 pin (ADC0);
-- FM-L (pin 11) to 4 pin (ADC1)
The DSP chip has four built-in DACs, so analog audio output can be connected for the power amplifier input to the sound processor pins as follows:
-- FR (pin 23) to 46 pin (DAC3);
-- FL (pin 22) to 45 pin (DAC2);
-- RR (pin 21) to 44 pin (DAC1);
-- RL (pin 20) to 43 pin (DAC0)
If do not need an additional output for an external subwoofer, then this is enough to enjoy improved sound due to the presence of a full 15-band equalizer, the ability to set delays, etc. (see screenshots at the end of this post), else if need to connect the external subwoofer, need to add the I2S DAC chip ES7144LV and connect it as follows:
-- Master CLOCK to pin 4 (CLKIN);
-- SDATA (MP6 pin 15) to pin 1;
-- SCLK (MP11 pin 19) to pin 2;
-- LRCLK (MP10 pin 16) to pin 3
[fig.15] electrical cuircuit schematic of the I2S DAC
View attachment 4562429
[fig.16] wire connections
View attachment 4564796
Verification showed that the improved sound is excellent
[fig.17]
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
[fig.18]
[fig.19]
[fig.20]
reserv1
reserv2
You are missing some pics there
[11]
[12]
[13]
in the process of filling information
[digital I2S sound output from CPU to Wolfson audiocodec on coreboard]
[digital I2S sound output from CPU coreboard]
[screenshot of the real 15-band EQ of a modified MTCD/E head unit with a DSP inside]
[...]
Xorit said:
You are missing some pics there
Click to expand...
Click to collapse
I did not forget these pictures, I just did not have time to cook them for posting in the thread -- coming soon...
cs-x(RU) said:
As a result of comparing the MCU firmwares of the head units with the sound processor and with the integrated DSP module, we see that the same firmware is used.
When analyzing the behavior of the MCU firmware, it is found that after the start, it first polls the I2C bus on the sound processor chip and if it answers its own address, the head unit operates normally. If there is no sound processor, i.e. it does not respond to its own address, then the DSP chip is polled. If the DSP chip responds to its own address, then the head unit is already operating in the mode of improved sound with a real 15-band equalizer.
Click to expand...
Click to collapse
Please correct me
The 7floor mod just re-routes and cuts some traces to control the in-build DSP directly and if i got it correct, people got full access to the DSP after.
You say that in the boot process the MCU polls it's hardware interfaces and if it detects the internal DSP it operates in "normal" mode.
Could this normal mode be modified to remove the config restriction and fully control the internal DSP? Or instead boot in "improved" mode?
// In my car (Opel Astra J) the HU is heavily mounted inside the dash and it's not fun to rip the whole thing apart every time.
Also I have a DVD drive installed and the space inside the silverbox is super limited due to that.
Or is this a "prove of concept" for people who don't have an in-built DSP and just a "stage" before you come up with a software solution? (You mentioned that in the other thread)
Xorit said:
Please correct me
The 7floor mod just re-routes and cuts some traces to control the in-build DSP directly and if i got it correct, people got full access to the DSP after.
You say that in the boot process the MCU polls it's hardware interfaces and if it detects the internal DSP it operates in "normal" mode.
Could this normal mode be modified to remove the config restriction and fully control the internal DSP? Or instead boot in "improved" mode?
// In my car (Opel Astra J) the HU is heavily mounted inside the dash and it's not fun to rip the whole thing apart every time.
Also I have a DVD drive installed and the space inside the silverbox is super limited due to that.
Or is this a "prove of concept" for people who don't have an in-built DSP and just a "stage" before you come up with a software solution? (You mentioned that in the other thread)
Click to expand...
Click to collapse
English is not native to me, so I apologize if I misunderstood you, but head units now have two options - with a sound processor and with a built-in DSP.
All the features of the sound processor are determined by the specific chip BD3702 / 37534/37033, etc, soldered on the HU mainboard. Since some of the audio presets are fixed in the MCU firmware, some do not like this sound and they want to customize it to their preferences. This can be achieved either by modifying the MCU firmware, or by direct control of the sound processor, for example, as in 7floor mod, but the audio capabilities are still low functional and are limited by the sound processor chip itself.
The possibilities of DSP for sound are very huge and diverse, but the Chinese sellers do not sell it separately for MTCD/E head units, so I suggested an alternative option by purchasing an affordable low-cost inexpensive DSP test board on Aliexpress and installing it inside the head unit to get a very improved sound, because all the software support has already been present and verified in the Android builds of versions from 6.0.1 to 8.0 and only need to connect the electrical circuits to the main board correctly.
I did it in practice and checked that it really works and it improves the sound very much, sorry, but if I did not answer your questions, please clarify them again for my understanding (my English is very pour)
cs-x(RU) said:
English is not native to me, so I apologize if I misunderstood you, but head units now have two options - with a sound processor and with a built-in DSP.
All the features of the sound processor are determined by the specific chip BD3702 / 37534/37033, etc, soldered on the HU mainboard. Since some of the audio presets are fixed in the MCU firmware, some do not like this sound and they want to customize it to their preferences. This can be achieved either by modifying the MCU firmware, or by direct control of the sound processor, for example, as in 7floor mod, but the audio capabilities are still low functional and are limited by the sound processor chip itself.
The possibilities of DSP for sound are very huge and diverse, but the Chinese sellers do not sell it separately for MTCD/E head units, so I suggested an alternative option by purchasing an affordable low-cost inexpensive DSP test board on Aliexpress and installing it inside the head unit to get a very improved sound, because all the software support has already been present and verified in the Android builds of versions from 6.0.1 to 8.0 and only need to connect the electrical circuits to the main board correctly.
I did it in practice and checked that it really works and it improves the sound very much, sorry, but if I did not answer your questions, please clarify them again for my understanding (my English is very pour)
Click to expand...
Click to collapse
Nah you got me completly right there and I fully understood what you wrote. (not a native english myself )
So basically this MOD provided by you is an alternative method of "super-improving" the sound with a standard car sound system (speaker connected to the radio directly).
This, because if you have a factory amp like bose preinstalled or you have already upgraded the sound system with a DSP/amp you don't want to have the audio processed in the HU, but rather have clean signals to your installed DSP in the car.
Let me shortcut:
version 1: add DSP board for standard sound system to be improved (THIS THREAD)
version 2: have full control of the standard sound processor already present to get rid of the MCU presets. (MY IDEA)
For me personally it would be super great to just have the 7floor mod in software. My factory amp does all the audio magic, but I need more control of the HU output and it would totally be enough to control the TDA7388 PDF file
This is my Witson seller MX HU W2-V5754
cs-x(RU) Could you share a picture of the installed ADAU1401/1701 chip in your unit, give us an idea what were looking at?, It all makes sense to me now.
Also in there a new amplifer.apk with the 15 band eq that you show in fig. 17 to fig. 20?
Octane70 said:
cs-x(RU) Could you share a picture of the installed ADAU1401/1701 chip in your unit, give us an idea what were looking at?, It all makes sense to me now.
Also in there a new amplifer.apk with the 15 band eq that you show in fig. 17 to fig. 20?
Click to expand...
Click to collapse
In the summer of 2017 I bought this DSP test board for experimentation and subsequent installation in my MTCC head unit, but a significant software change was needed, so I suspended these works before the New Year 2018, and put a test card in the garage.
In April 2018 I decided to go back to the experiments to connect the test board to the MTCE head unit, but for a long time I could not find the card in the garage and was able to find it only last week. Immediately my friend asked me to install this DSP test board in his head unit, so I lasted all last Saturday and checked it on his head unit, but did not do the photo, and on Sunday he installed in the car and now I can not take the photo. Therefore, I can only sketch and specify the soldering points on the main board, but I'm going to do the next modification with the sound switch and ordered another DSP test board on Aliexpress.
A new apk with the 15 band eq that shown in fig. 17 to fig. 20 already present in the original Chinese Android build versions from 6.0.1 to 8.0 for MTCE head units and do not need to add anything yourself, since to activate the improved equalizer mode, it is sufficient only that the MCU firmware detects a DSP chip on the I2C bus and sends the command to the Android device
Xorit said:
This, because if you have a factory amp like bose preinstalled or you have already upgraded the sound system with a DSP/amp you don't want to have the audio processed in the HU, but rather have clean signals to your installed DSP in the car.
For me personally it would be super great to just have the 7floor mod in software. My factory amp does all the audio magic, but I need more control of the HU output
Click to expand...
Click to collapse
I have plans to try to make a completely software solution similar to 7floor, but without soldering, but so far there is no time for such experiments, becouse need to debug everything well
For your case, can do it simply - set the zero frequency response and prevent it from changing, and only your external amplifier with DSP can control any frequency response (very small changes in the MCU firmware code needed and not need in Android build)
cs-x(RU) said:
I have plans to try to make a completely software solution similar to 7floor, but without soldering, but so far there is no time for such experiments, becouse need to debug everything well
For your case, can do it simply - set the zero frequency response and prevent it from changing, and only your external amplifier with DSP can control any frequency response (very small changes in the MCU firmware code needed and not need in Android build)
Click to expand...
Click to collapse
Would you maybe provide a version to test in the other thread? Would be happy to try!
No need to rush things tho!
Many thanks!
Will this mod work on an Intel Sofia mtcd unit? Thanks in advance
brickbeats said:
Will this mod work on an Intel Sofia mtcd unit? Thanks in advance
Click to expand...
Click to collapse
I do not know, because I do not have Intel Sofia and can not test -- tested only on Rockchip PX5 with Android 8.0 and on Rockchip PX3 with Android 7.1.2 and on Rockchip PX5 with Android 6.0.1, not tested on Rockchip PX3 with Android 5.1.1
Octane70 said:
cs-x(RU) Could you share a picture of the installed ADAU1401/1701 chip in your unit, give us an idea what were looking at?, It all makes sense to me now.
Click to expand...
Click to collapse
added wire connection (see fig.16) in the first post of the topic
P.S.
the chip of the sound processor can not be removed from the main board, but then you must unsolder its SDA and SCL pins (26 and 25 pin of the BD37033)
This looks very interesting. Out of interest is there a solution to get additional analogue audio? I use the aux input as well?
I use dab most of the time so could potentially do without fm if there was not an option to switch the analogue audio as well
Ben.suffolk said:
This looks very interesting. Out of interest is there a solution to get additional analogue audio? I use the aux input as well?
I use dab most of the time so could potentially do without fm if there was not an option to switch the analogue audio as well
Click to expand...
Click to collapse
in the current implementation there is one digital input for sounds from Android applications and one analog input for other sounds without a switch. Since I and my friends are listening to FM radio, I made the connection just for it. If you need another analog source, then instead of FM radio you can connect either AUX-input or DAB-radio according to your desire.
I ordered another same DSP test board on Aliexpress and in the next implementation I plan to add an analog audio switcher for the possibility of programmatically selecting any of the sound sources
cs-x(RU) said:
in the current implementation there is one digital input for sounds from Android applications and one analog input for other sounds without a switch. Since I and my friends are listening to FM radio, I made the connection just for it. If you need another analog source, then instead of FM radio you can connect either AUX-input or DAB-radio according to your desire.
I ordered another same DSP test board on Aliexpress and in the next implementation I plan to add an analog audio switcher for the possibility of programmatically selecting any of the sound sources
Click to expand...
Click to collapse
Ok great,
I assume that there must be a switcher built into the MTCE units with DSP, and I see your schematic for a switcher in the first post, but I will wait until you have figured out what it connects to so it works to switch the sources.
As it happens DAB is USB, so will be audio via the Android card (Digital), so I can use Aux and Digital, just meaning I don't have a fall back to FM if I loose DAB. Thats ok for the moment, and I'll upgrade to switched later.
Thanks for this mod.
Mind posting some pics of the board installed?
Thankyou so much for posting this, this is exactly what I have been looking for to improve sound quality of my unit. I have already ordered an ADAU1401 eval board.
I just wanted to confirm, if I add the ES7144LV as described, will I be able to control the sub channel selerately using the amp app on the unit without any additional modification?
Also, I am correct in thinking that if I make the correct electrical modifications the app will automatically identify the changes and I will not need to make any software changes?
Would it be possible to get a higher quality picture of where to connect the pins? I am finding the text hard to read in certain areas.
Thanks again!
Related
[Q] Routing GSM module's sound
Dear all, I'm working on custom hardware built on Amlogic AML8726-MX SoC. I have the board working with Android 4.2.1 compiled with telephony support. We use standalone GSM module from Telit and I successfully implemented RIL and I'm able to make or receive calls. Unfortunately I'm stucked with routing the audio. The module has digital i2s interface and I connected it through I2S<->USB Audio converter to the SoC. So now I have two Alsa devices - one is dedicated to analog interfaces (speaker, headphones, microphone) and is working in android applications. The second one represents USB audio and I'm able to use that on kernel level with command line interface. Now I need to to connect these two together to be able to play the voice call using analog interface. Is there please anyone who can point me into right direction? I'm experienced in kernel development, but going into higher levels is new for me. Can such thing be done just by altering audio_policy.conf and related files or the issue is much more complicated that I expected? best regards Jan
MTC Sound: controlling BD37xxx Sound Processors in MTCB Head Units (RK3066/3188)
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: { "lightbox_close": "Close", "lightbox_next": "Next", "lightbox_previous": "Previous", "lightbox_error": "The requested content cannot be loaded. Please try again later.", "lightbox_start_slideshow": "Start slideshow", "lightbox_stop_slideshow": "Stop slideshow", "lightbox_full_screen": "Full screen", "lightbox_thumbnails": "Thumbnails", "lightbox_download": "Download", "lightbox_share": "Share", "lightbox_zoom": "Zoom", "lightbox_new_window": "New window", "lightbox_toggle_sidebar": "Toggle sidebar" } 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 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 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
I think I fully understand what you are trying to do now. I will try to attempt this this weekend if I can find the time. It would be helpful if you at least called out the resistor numbers, but I think that was brought up in the main HU thread. I will try to post good pictures as I go. This doesn't seem all that bad now that you have a well-worded explanation (or maybe you already had this explanation before and I never noticed). The goal is to have the sound processor be controlled by the android processor, not the MCU. Makes sense now
Hisma said: It would be helpful if you at least called out the resistor numbers Click to expand... Click to collapse They are different on different Head Unit brands. My unit does not have any component numbers on the PCB at all. Hisma said: This doesn't seem all that bad now that you have a well-worded explanation (or maybe you already had this explanation before and I never noticed). Click to expand... Click to collapse These explanations were spread over a number of my posts in the general discussion thread, as answers to people's questions. So I've decided to gather them to this thread.
A suggestion to refine the instructions "• mcu,Error in write() 110 (no response from i2c slave) – same as above." - can you add a note whether the connections/wires are the wrong way around?
dazza007 said: A suggestion to refine the instructions "• mcu,Error in write() 110 (no response from i2c slave) – same as above." - can you add a note whether the connections/wires are the wrong way around? Click to expand... Click to collapse Done But dont ask me to list every single mistake one can make soldering just two wires - there's so much possibilities! By the way, could you please copy your post with photos of how you done the HW mod from general thread to this one? It would be helpful for others for sure.
so here are some images of the 7 floor modification and some less technical descriptions of what to do The following is for a WM8731S and BD37033FV You need 2x 1k ohm resistors, a good quality clean soldering iron, solder, flux and a steady hand! On the android board - Solder wire to resistor R268 and R49 that connects to the WM8731S these are pin 23/4 View attachment 3520439 View attachment 3520440 On the main board find the resistors r70/1 and remove them these connect to the mcu chip and you are removing the connection to the mcu but the pin out furthest away from the label has a connection to the BD37033FV sound processor pins 25/6 View attachment 3520441 solder a connection onto the pinouts furthest away from to the label. Ensure that there is no connection between pinouts where you removed the resistor and soldered in the new wire connect the wire you have just soldered to the original wire you solder using a 1k ohm resistor (to replace the resistors you removed) Ensuring that you have the following connections: R268 - R71 R49 - R70 Using a multimeter ensure that you have nearly 2 k ohms resistance through the resistor R268 to connection R71 and through R49 and R70 Ensure you have 2k resistance through the resistor R268 to connection to the chip BD37033FV and R49 too to the other pin on the chip the pins 25/6 on the sound processor are the third and fourth in from the top left.
@7floor, may I know GPS switch/mix features work on waze? I just done the mod back to orig on yesterday & can't test it.
lysiong said: @7floor, may I know GPS switch/mix features work on waze? I just done the mod back to orig on yesterday & can't test it. Click to expand... Click to collapse I don't even know what's waze is OK, I'll check it and tell if it works.
@7floor, if the GPS switch/mix features working, will I be able to adjust the mixing ratio or just the GPS voice switch over only?
lysiong said: @7floor, if the GPS switch/mix features working, will I be able to adjust the mixing ratio or just the GPS voice switch over only? Click to expand... Click to collapse So I confirm that it works for Waze, and it works just like in stock, i.e. you may use swith option, or you may use variable-level mixing option.
7floor said: So I confirm that it works for Waze, and it works just like in stock, i.e. you may use swith option, or you may use variable-level mixing option. Click to expand... Click to collapse @7floor, where do I set which application will have the GPS switch/mix features? is it still the same place in setting > GPS? or it is determine by your EQ application? the mixing option also set in setting > GPS or in your application? if HU detect a reverse signal, will it be able to mute or set attenuation as stock?
@lysiong, it uses stock config
7floor said: @lysiong, it uses stock config Click to expand... Click to collapse @7floor, great [emoji2] . will try to mod back. confirm also the reverse mute features right? Sent from mobile
lysiong said: [MENTION=322215]also the reverse mute features right? Click to expand... Click to collapse Not implemented yet, but planned.
7floor said: Not implemented yet, but planned. Click to expand... Click to collapse @7floor, i will wait for it before mod it....as reverse mute is quite important also Sent from mobile
lysiong said: @7floor, i will wait for it before mod it....as reverse mute is quite important also Sent from mobile Click to expand... Click to collapse As you wish. Looks like the sound quality is the last thing that is important to you, isn't it?
7floor said: As you wish. Looks like the sound quality is the last thing that is important to you, isn't it? Click to expand... Click to collapse @7floor, although I do like sound quality but I prefer safety feature(reverse mute) 1st than sound quality. [emoji2] I been change from orig to your mod & back to orig quite few times after found up some essential feature not available [emoji26] . Anyhow, I really appreciate your work
7floor, looking at the sound processor specs (at http://www.rohm.com/web/global/search/parametric/-/search/Analog Audio Processors ) I see that there's a single 3-band parametric EQ in the chip. How are you going to create different EQ parameters for the radio, system, etc., as these are all different audio inputs? ---------- Post added at 10:14 PM ---------- Previous post was at 10:08 PM ---------- Guys, in which areas of the world exists this "reverse mute safety" thing? In my area, no such thing exists. Actually, this is the first time I hear about this... sound muting when gear in reverse? What does going in reverse having to do with sound?
robertut said: 7floor, looking at the sound processor specs (at http://www.rohm.com/web/global/search/parametric/-/search/Analog Audio Processors ) I see that there's a single 3-band parametric EQ in the chip. How are you going to create different EQ parameters for the radio, system, etc., as these are all different audio inputs? Click to expand... Click to collapse English is not my mother's language, but I'm not "going to", it just works already. It has nothing to do with the chip specs. I just hold the parameters per input in software and apply them to the chip on input change, because I intercept these events and know when it happens. robertut said: Guys, in which areas of the world exists this "reverse mute safety" thing? In my area, no such thing exists. Actually, this is the first time I hear about this... sound muting when gear in reverse? What does going in reverse having to do with sound? Click to expand... Click to collapse Never thought about this feature as about something regulated by laws. This may be useful, for example, to make the parking sensors audible (if installed). But I personally don't have those, so I never enabled this feature. Maybe people also want to hear pedestrians' screams once they hit 'em, not really sure Anyways, I don't consider this feature a highly critical one - one can press mute before going backward, so that it is just a matter of comfort, nothing more. I will implement it though, just because I am a perfectionist. Just need to fight my laziness
[/COLOR]Guys, in which areas of the world exists this "reverse mute safety" thing? In my area, no such thing exists. Actually, this is the first time I hear about this... sound muting when gear in reverse? What does going in reverse having to do with sound?[/QUOTE] @robertut My car is equipped with reverse sensor buzzer. It is better radio sound mute abit when reverse in case you hit something. You wont know it if your radio sound is loud. ---------- Post added at 11:19 AM ---------- Previous post was at 11:08 AM ---------- Never thought about this feature as about something regulated by laws. This may be useful, for example, to make the parking sensors audible (if installed). But I personally don't have those, so I never enabled this feature. Maybe people also want to hear pedestrians' screams once they hit 'em, not really sure Anyways, I don't consider this feature a highly critical one - one can press mute before going backward, so that it is just a matter of comfort, nothing more. I will implement it though, just because I am a perfectionist. Just need to fight my laziness [/QUOTE] @7floor, Thanks for your understanding. maybe I need to install a switch so that I can switch between your mod & stock for the EQ setting so that no need to do soldering again as it is not easy to solder back the 1K SMD resistor. I might spoil the resistor if do solder so frequently.
Any way of adding an audio input to mix/play with the rest of the android sound?
The KLD2 I have has an AV input but one has to switch the MCU specifically to the AV input in order to listen. What I am looking for is to have an audio input which mixes/plays full time with the rest of the android apps without having to explicitly switch to it. Has anyone done this? Do any usb devices exist (with android driver support) which implement an audio input and play real time what's coming in?
Yes, people have used a USB DAC, you need to search the original Q&A thread here : https://forum.xda-developers.com/showthread.php?t=2660662 and maybe the MTCB Hardware Development forum. Try this first, its shorter !
Ok, I'll search that thread. DAC (Digital to Analog Converter) are used for the opposite thing though - to output sound from the MTC unit to an external amplifier or some other device. I am looking for the opposite (ADC) - to bring sound from external analog device into the MTC (and have the MTC mix/play it along). I've searched for USB ADC in the past but haven't found any interesting info yet.
shtirlitz111 said: Ok, I'll search that thread. DAC (Digital to Analog Converter) are used for the opposite thing though - to output sound from the MTC unit to an external amplifier or some other device. I am looking for the opposite (ADC) - to bring sound from external analog device into the MTC (and have the MTC mix/play it along). I've searched for USB ADC in the past but haven't found any interesting info yet. Click to expand... Click to collapse Doh, stupid me, but maybe an ADC will work in a similar way, via USB etc, so DAC posts may still help ? A seatrh for DAC should bring something up, btw, sometimes it works better to use google to search threads on XDA.
You are looking for something called an audio interrupt device. They used to be more popular when GPS nav units came out and people wanted voice nav over their stereo. They can connect by various means but you'll need to do some research to be sure it will work with your car and stereo setup.
Pixel 2 or 3 USB audio control
Purpose: To reduce the distortion and better control the audio DAC of the Pixel 2 XL. Edit 11/25/18 Please see this post for the version supporting the Apple Dac. In addition the new version incorporates a mod for 50 steps of volume rocker control. I redid the volume limits in the app to 50, so you will have issues using the new app with 25 steps only. Introduction: The new Pixel 2 differs from the original Pixel in a major way. The lack of a headset jack offloads the headset out capability to a USB Dac in the supplied dongle (or any USB Dac you are using). Although at first glace this is a disappointment to most, on further thought it has some advantages. No longer will you need to upgrade a phone because the audio is better on a newer model, just upgrade the dongle instead. Or, have a range of dongles to suit your purpose (power, low distortion, impedance, form factor, etc). But, unfortunately, the folks who designed the software, did not (IMO), properly adjust the digital gain of the dongle Dac or aftermarket devices like the Dragonfly red. So the Dragonfly can put out 2.1 V, but the stock Pixel 2 will only max out at 55 mV. Worse, the supplied dongle (which has very nice electrical/audio specs), is set to have maximal Dac digital gain, resulting in higher distortion. Now you may say, what about the good Gsmarena tests. They test all devices at max output, so the distortion bands will not appear so significant. But, you listen at perhaps one hundredth of that voltage, making the comparison invalid. By cutting the digital gain of the dongle, we can approach Dragonfly red specs in regards to distortion. The dongle has very low impedance, excellent crosstalk and power is there, if needed. The goal of this project is to enable Dac digital gain adjustment, report the gain numbers and if so desired, track listening Spl to help protect your hearing. It is not an equalizer, effects module and the goal is audio quality/accuracy. It does need root. Requirements: Root with Magisk, Tested on stock 8.0. At this time the only dongles working are the supplied Google unit, and the Dragonfly red. More to follow. Each needs to be set in the software backend. App will work with Spotify, Google music, Neutron player, maybe others. Download the tinymix file, unpack tinymix and place it in your sdcard/Download. If using the the tinymix32 file make sure you rename it to just tinymix, no extension. Note, the version of tinymix for the U11 must be the 32 bit one. Unzip the tinymix32, rename it to tinymix and place in the Download folder, then reboot the phone. The version for the Pixel 2 XL is the 64 bit version posted as just "tinymix.rar" Download and install the apk. Open the apk, it will ask for root permission, say yes. Reboot your phone. The app will automatically copy tinymix to sbin. Insert the dongle with headphones attached-- the phone does not register the dongle properly unless the headset is plugged into it. The Dragonfly does not have this issue. The app will automatically open and the following screen appears: { "lightbox_close": "Close", "lightbox_next": "Next", "lightbox_previous": "Previous", "lightbox_error": "The requested content cannot be loaded. Please try again later.", "lightbox_start_slideshow": "Start slideshow", "lightbox_stop_slideshow": "Stop slideshow", "lightbox_full_screen": "Full screen", "lightbox_thumbnails": "Thumbnails", "lightbox_download": "Download", "lightbox_share": "Share", "lightbox_zoom": "Zoom", "lightbox_new_window": "New window", "lightbox_toggle_sidebar": "Toggle sidebar" } For now do nothing, it will go away in 10 secs. Start playing music and the following notifications should appear: Lets look at USB Gain first. Pull down the notification and the Dac Up, Dac Down, Sliders appear. The Up/Down will increment the digital gain by about 1 dB per click. The sliders will bring up the following: The left controls the android volume, the right side control the Dac. You generally want the android vol near max and the Dac gain low. Since you can still adjust the android volume with the standard volume rocker (2.4dB per click), I would find a comfortable net volume out with the android Vol about 22 with a Dac gain to fill up the difference. The initial settings are some safe defaults I put in and we can change that as noted below. The gain numbers on the slider go from 1 to 64(Dragonfly defaults- 1 dB per tick), but the Google dongle has a range of 1 to 175 (don't ask me why). I have converted this so the spinner reads 1 to 64, but below it is the actual file output. The 3 dot menu on the top right will bring you back here: The headphones screen transfers to form entry to set up various headphones you may own. If you know the specs, the app will calculate the Spl (but there is an issue with the Google dongle calculation, it's off by a few dB, Dragonfly is spot on). More importantly the initial Dac gain (in percent) and android volume can be entered, so when you replug, the app will start with those settings. It remembers the last applied headset setting on reboot. So if you liked a dongle gain of 32 of 64 (same as 87 of 175), that's 50 percent. Sorry about the lack of uniformity, but the dongles all have different gain numbers. The list of headphone entries lies below. A single click chooses the parameters for the listening session(start vol, gain, etc) and will remain for the next Usb insertion as well. To delete an entry, long press on it. The headphone sensitivity numbers published are either dB/V or dB/mw. The program uses dB/V, but will autoconvert if dB/mw is entered. Be extra careful which headphone sensitivity units are used--either dB/V or dB/mw. Enter either one but not both. The website of the manufacturer should have the specs. Note: Shure is in dB/mw and Sennheiser is dB/V. The visualizer button will engage the java android visualizer that actually calculates RMS and Peak signal, making the Spl more accurate. Some details from my old app. Lastly, the Spl Graph option will allow you to view the current session of dongle use or previous, it use the Google Chart api. To be extra cautious initially-Make sure you do not put the headset on and play - keep it off the ear then insert--a high sound volume can damage your hearing. Many thanks to @chdloc for continued help in android audio, acoustics and of course friendship.
A few comments on excessive Dac digital gain. The Dragonfly red is felt to be one of the top Usb Dacs in that price range. But how would it look if the digital gain was set at max (like Google does with it's dongle). Here it is, android volume down, digital gain at max: Not much different from the Google Usb dongle. But, digital gain turned down, android vol high - much better: I did measure the output voltage of the Dragonfly at max gain/max android vol, it is 2.1 volts - as advertised.
Reserved.
I do have a schiit dac that I can confirm is working as well. Thanks for your work on this!
I don't think I am ready to root the device yet (Android Pay one of the major reasons). Is there any way that this can be installed/enabled via ADB? I do have Dragonfly Black and love the sound coming out of it, but would prefer if I can get semi-decent sound out of the supplied dongle, mainly due to its size and convenience.
jasenko said: I don't think I am ready to root the device yet (Android Pay one of the major reasons). Is there any way that this can be installed/enabled via ADB? I do have Dragonfly Black and love the sound coming out of it, but would prefer if I can get semi-decent sound out of the supplied dongle, mainly due to its size and convenience. Click to expand... Click to collapse Believe me, I explored non root options and couldn't find one that can work. The supplied Google dongle approaches the Dragonfly in quality with the proper settings.
Hey @bjrmd Thanks for the detailed research I just tried this, but however , couldn't notice difference in sound while changing the DAC slider. Noticed that the sound volume levels change as expected while moving the left slider . How would be the expected behaviour ? Thanks again for your work ! Best regards Ash
Ashray_Vk said: Hey @bjrmd Thanks for the detailed research I just tried this, but however , couldn't notice difference in sound while changing the DAC slider. Noticed that the sound volume levels change as expected while moving the left slider . How would be the expected behaviour ? Thanks again for your work ! Best regards Ash Click to expand... Click to collapse That means that something went wrong with the tinymix calls to the Dac. Did you place tinymix (extracted) in Download folder? If so check sbin folder with a root capable file explorer and make sure tinymix is there. The app should have asked for root on first opening as well. On reboot, tinymix gets copied from the Download folder to sbin and run permissions granted.
bjrmd said: That means that something went wrong with the tinymix calls to the Dac. Did you place tinymix (extracted) in Download folder? If so check sbin folder with a root capable file explorer and make sure tinymix is there. The app should have asked for root on first opening as well. On reboot, tinymix gets copied from the Download folder to sbin and run permissions granted. Click to expand... Click to collapse You are spot on. I had extracted the contents to scard/ and not in downloads ( in the XDA mobile version, the download word is in the next line in my device and hence, missed that. Only saw sdcard/ . My bad ) It works now, thank you much! Ash
Ashray_Vk said: You are spot on. I had extracted the contents to scard/ and not in downloads ( in the XDA mobile version, the download word is in the next line in my device and hence, missed that. Only saw sdcard/ . My bad ) It works now, thank you much! Ash Click to expand... Click to collapse Can you notice the difference in sound (not just the volume)?
@bjrmd Great work, thanks bro.:good:
@bjrmd Hey Really cool thing you granted us access to. I also do use a dragonfly red. However your app doesn’t seem to like it at all. When I plug it in the toast message says. Error invalid mixer control. I’m not able to adjust the dac gain. Your app should be installed correctly as the Google dongle is working fine. Can I get you some logs are anything so we can make it work? With kind regards
That is strange, I have the same model Dragonfly and it works fine. With the Dragonfly inserted could you please run, cat /proc/asound/card1/stream0 in a terminal (Termux) and post the output. It's possible that your Dragonfly revision has a slightly different name of device. Thanks
bjrmd said: That is strange, I have the same model Dragonfly and it works fine. With the Dragonfly inserted could you please run, cat /proc/asound/card1/stream0 in a terminal (Termux) and post the output. It's possible that your Dragonfly revision has a slightly different name of device. Thanks Click to expand... Click to collapse Here you go. I think I updated the dragonfly at one point via PC if I remember correctly.
Freak07 said: Here you go. I think I updated the dragonfly at one point via PC if I remember correctly. Click to expand... Click to collapse Thanks (it is a bit different, not sure yet if it matters) Now please try in the same terminal window with Dragonfly attached: Tinymix -D 1 and note the output.
bjrmd said: Thanks (it is a bit different, not sure yet if it matters) Now please try in the same terminal window with Dragonfly attached: Tinymix -D 1 and note the output. Click to expand... Click to collapse Figured I needed to do lowercase.
Freak07 said: Figured I needed to do lowercase. Click to expand... Click to collapse Thanks, it should have been working. When you plug in the Dragonfly, do you see the following toast messages: "Reading Device" then "Dragonfly" and get the Menu screen that stays for 10 sec Also can you try in the terminal window: tinymix -D 1 "PCM Playback Volume" 32 if it does not error, while playing music and your android volume low, run the same command but vary the number (ie 32) from 1 to 64, the volume should change--be careful--64 is full 2.1 volts at max android volume
bjrmd said: Thanks, it should have been working. When you plug in the Dragonfly, do you see the following toast messages: "Reading Device" then "Dragonfly" and get the Menu screen that stays for 10 sec Also can you try in the terminal window: tinymix -D 1 "PCM Playback Volume" 32 if it does not error, while playing music and your android volume low, run the same command but vary the number (ie 32) from 1 to 64, the volume should change--be careful--64 is full 2.1 volts at max android volume Click to expand... Click to collapse No. In fact it showed reading device. Afterwards it showed the invalid mixer file toast and then google dongle detetected. So I just deleted the tinymix file from sbin. Deleted the app and set it up new again without ever plugin the Google dongle in. Now it shows this in the notification area. It says reading device and closing in ten seconds. But the toast never says dragonfly detected. The other two commands I did again. But setting the gain manually works! Via the last two commands.
Freak07 said: No. In fact it showed reading device. Afterwards it showed the invalid mixer file toast and then google dongle detetected. So I just deleted the tinymix file from sbin. Deleted the app and set it up new again without ever plugin the Google dongle in. Now it shows this in the notification area. It says reading device and closing in ten seconds. But the toast never says dragonfly detected. The other two commands I did again. But setting the gain manually works! Via the last two commands. Click to expand... Click to collapse I am not 100% sure why it didn't work but I made a change in the syntax for recognition and try the version below if you can. It also has a few bug fixes and if it does work for you and you are interested, the Spl is now quite accurate for both devices.
bjrmd said: I am not 100% sure why it didn't work but I made a change in the syntax for recognition and try the version below if you can. It also has a few bug fixes and if it does work for you and you are interested, the Spl is now quite accurate for both devices. Click to expand... Click to collapse Hello, thanks for the test however it still isn't working. I deleted tinymix binary and the app again before updating. When I plug in the dragonfly the window pops up. It says reading device but it never says dragonfly. what may give a clue. When I never put in the google dongle before using the dragonfly I cannot bring up the slider/gain screen. I attached a screenshot with the logcat lines hitting the slider button in statusbar 2 times. I also ran the commands you gave me again.
Android USB Multichannel Audio Routing
Hi All, I have been searching about this topic for months I cannot find a method to use 6 channel usb dac or HDMI Audio output on Android. I dont want surround sound at all, but I would like to use my phone as the infotainment engine. However I should be able to route notification/phone audio to a specific channel lets say front left. I checked android hal service for related interfaces but configuration files doesnt really show clearly how can I implement this. Are there any kind of example of this? Can you please advice me how can I do it. Even if I can manage to make one stereo pcm output for media + mono pcm output for notifications and calls that should be enough too. I can do the rest with a microcontroller. One more question I heard few times androids audio mixer layer is so crappy that makes jitter on pcm signals, how is your experiences? For instance qualcomm based socs have integrated dsp why phone developers gets benefit from it? Thanks
Hi, mbt28 did you manage to find a solution for this? I'm searching for exactly the same solution, to somehow output digital stream (containing multiple audio tracks) to a DAC, which will then convert it to multiple analog tracks. Kasparas
I've got multichannel analog output working on my H96 Max V58 tvbox, with a Startech 7.1 channel USB soundcard. It's got Android TV OS 12. I had to edit /vendor/etc/usb_audio_policy_configuration.xml to add the necessary info. I'm attaching a diff with my changes. The changes are just based on what I saw for the HDMI policy. I haven't tried to get the digital channels working on this device yet but that might be nice to try later too. The reason I deleted some text from the header comment was to keep the overall filesize the same as the original. On my box /vendor is mounted from /dev/block/dm-1 and even though it's an ext4 filesystem, you can't edit any files on it because the FS has no free blocks left. So I had to overwrite the file by finding its byte offset in the block device image instead. If you can edit the policy file on your box, you can ignore that part of the diff. PS: this is the USB soundcard I used https://www.amazon.com/StarTech-com-7-1-USB-Sound-Card/dp/B002LM0U2S It works OK except its USB jack is flaky, doesn't always get a good connection. I have to jiggle the cable sometimes to get it to power on, but then it works. PPS: I just checked, the SPDIF out works as-is, carrying the front left/right audio.