So I have 3 TinySine TSA6179A Bluetooth modules with the QCC3031 chip. I am wanting to make a multipoint 2.1 system where I have 2 wireless speakers for L and R and a wireless mono sub. I am trying to configure the master (sub) to automatically enter BA broadcast mode on power on and the slave (L/R) modules to automatically enter BA receiver mode. Can anyone provide the steps to do this? I believe it can be done by configuring the events in the ADK Config. Tool, but I have not been able to get anything to work.
Note: I am using Wondom JAB3 amplifiers with the ADAU1701. The audio routing will be taken care of in the DSP, so I do not need to worry about that in the QCC3031 configuration.
Note: I am using Wondom JAB3 amplifiers with the ADAU1701. The audio routing will be taken care of in the DSP, so I do not need to worry about that in the QCC3031 configuration.
I believe what you're looking for can be found here:Hello,
Anyone know how to change SPDIF output samplerate in QACT or ADK for QCC3031?
ADK Configuration Tool->Configuration Set->Audio->Features->Output sampling rate when routing wired audio sources.
Apologies for the double-post, but I've had a breakthrough with QACT. I found a QACT v7.28 download link and all the download links needed to get it to work. TinySine has a fantastic guide on how to get QACT to work and make changes in the DSP. So far, I've only tested the dynamic bass parameters on the QCC3031. I can confirm that the changes were audible and I was able to burn the parameter changes to the chip. I hope this helps others as much as it helped me. Cheers!
Here is the link-> https://www.tinysineaudio.com/blogs/news/how-to-change-the-qcc30xx-series-bluetooth-eq-settings
i did a schetch but it's so messy. I chenged the output method of the aliexpress seller and i used a MAX97220A You can take a look please?🙂)Cool man, I will for sure read your thoughts on that because I will also have to make a PCB with everything. Btw, I am not sure that you will be able to use SYS_CTRL with that, have in mind that you basically need to put this pin to high or low, and I don't know how to put VBAT into high logic level, but if you measure this pin on the BTM331 you will notice that there is no voltage so it is always low. As I said I am not really sure about what it does in this chip, but In the feasycom modules you control it with a button or an external GPIO of a microcontroller that works as a master. Probably taking a look at the development boards of feasycom may help you.
Attachments
Hi, I am trying to make custom firmware using MDE, for a QCC3031 TinySine board. I can connect to the device and everything, but after creating the project I can't build it because of this console error:
19:40:33: Running steps for project cur_cfg_filesystem...
BUILD STARTED for 'cur_cfg_filesystem/filesystem' in 'C:\Users\JavierGS\Documents\Qualcomm_MDE_Projects\JuanitoDSP_QCC3031\example1\apps\applications\sink\qcc512x_qcc302x\QCC3031-AA_DEV-BRD-R2-AA':
C:\qtil\ADK_Toolkit_1.2.16.22_x64\ubuild.bat -b build -k "C:\qtil\ADK_Toolkit_1.2.16.22_x64" -w "C:\Users\JavierGS\Documents\Qualcomm_MDE_Projects\JuanitoDSP_QCC3031\example1\apps\applications\sink\qcc512x_qcc302x\QCC3031-AA_DEV-BRD-R2-AA\sink.x2w" -p "C:\Users\JavierGS\Documents\Qualcomm_MDE_Projects\JuanitoDSP_QCC3031\example1\apps\applications\sink\qcc512x_qcc302x\QCC3031-AA_DEV-BRD-R2-AA\cur_cfg_filesystem.x2p" -c filesystem -x --verbose
Build with Python 2
19:40:33: The process "C:\qtil\ADK_Toolkit_1.2.16.22_x64\ubuild.bat" exited with code 1.
from builder.deploy import *
ImportError: No module named builder.deploy
Error while building/deploying project cur_cfg_filesystem (kit: ADK Toolkit 1.2.16.22 x64 - 1.2.16)
When executing step "Build Project"
19:40:33: FAILED to complete all steps
Any ideas?
19:40:33: Running steps for project cur_cfg_filesystem...
BUILD STARTED for 'cur_cfg_filesystem/filesystem' in 'C:\Users\JavierGS\Documents\Qualcomm_MDE_Projects\JuanitoDSP_QCC3031\example1\apps\applications\sink\qcc512x_qcc302x\QCC3031-AA_DEV-BRD-R2-AA':
C:\qtil\ADK_Toolkit_1.2.16.22_x64\ubuild.bat -b build -k "C:\qtil\ADK_Toolkit_1.2.16.22_x64" -w "C:\Users\JavierGS\Documents\Qualcomm_MDE_Projects\JuanitoDSP_QCC3031\example1\apps\applications\sink\qcc512x_qcc302x\QCC3031-AA_DEV-BRD-R2-AA\sink.x2w" -p "C:\Users\JavierGS\Documents\Qualcomm_MDE_Projects\JuanitoDSP_QCC3031\example1\apps\applications\sink\qcc512x_qcc302x\QCC3031-AA_DEV-BRD-R2-AA\cur_cfg_filesystem.x2p" -c filesystem -x --verbose
Build with Python 2
19:40:33: The process "C:\qtil\ADK_Toolkit_1.2.16.22_x64\ubuild.bat" exited with code 1.
from builder.deploy import *
ImportError: No module named builder.deploy
Error while building/deploying project cur_cfg_filesystem (kit: ADK Toolkit 1.2.16.22 x64 - 1.2.16)
When executing step "Build Project"
19:40:33: FAILED to complete all steps
Any ideas?
@Malatuni
Unfortunately I don’t have the answer to your question, but I am curious how you went about building the firmware. I am also working with the TinySine QCC3031 and I am trying to modify the existing firmware to include a custom audio prompt, but I am not sure where to start. I have the Qualcomm MDE, but I’m not sure where to start. Would you mind giving a brief explanation? I am not really looking to build custom firmware, just to modify the existing firmware to include my custom audio prompt. I have a fairly broad understanding of coding, but I am not an expert by any stretch. TIA.
Unfortunately I don’t have the answer to your question, but I am curious how you went about building the firmware. I am also working with the TinySine QCC3031 and I am trying to modify the existing firmware to include a custom audio prompt, but I am not sure where to start. I have the Qualcomm MDE, but I’m not sure where to start. Would you mind giving a brief explanation? I am not really looking to build custom firmware, just to modify the existing firmware to include my custom audio prompt. I have a fairly broad understanding of coding, but I am not an expert by any stretch. TIA.
@MalatuniHi, I am trying to make custom firmware using MDE, for a QCC3031 TinySine board. I can connect to the device and everything, but after creating the project I can't build it because of this console error:
19:40:33: Running steps for project cur_cfg_filesystem...
BUILD STARTED for 'cur_cfg_filesystem/filesystem' in 'C:\Users\JavierGS\Documents\Qualcomm_MDE_Projects\JuanitoDSP_QCC3031\example1\apps\applications\sink\qcc512x_qcc302x\QCC3031-AA_DEV-BRD-R2-AA':
C:\qtil\ADK_Toolkit_1.2.16.22_x64\ubuild.bat -b build -k "C:\qtil\ADK_Toolkit_1.2.16.22_x64" -w "C:\Users\JavierGS\Documents\Qualcomm_MDE_Projects\JuanitoDSP_QCC3031\example1\apps\applications\sink\qcc512x_qcc302x\QCC3031-AA_DEV-BRD-R2-AA\sink.x2w" -p "C:\Users\JavierGS\Documents\Qualcomm_MDE_Projects\JuanitoDSP_QCC3031\example1\apps\applications\sink\qcc512x_qcc302x\QCC3031-AA_DEV-BRD-R2-AA\cur_cfg_filesystem.x2p" -c filesystem -x --verbose
Build with Python 2
19:40:33: The process "C:\qtil\ADK_Toolkit_1.2.16.22_x64\ubuild.bat" exited with code 1.
from builder.deploy import *
ImportError: No module named builder.deploy
Error while building/deploying project cur_cfg_filesystem (kit: ADK Toolkit 1.2.16.22 x64 - 1.2.16)
When executing step "Build Project"
19:40:33: FAILED to complete all steps
Any ideas?
I just noticed you are using ADK Toolkit 1.2.16.22.
Try using ADK_QCC512X_WIN_6.4.2.26 instead.
Here’s the link from TinySine ->
http://www.tinyosshop.com/datasheet/ADK_QCC512x_WIN_6_4_Installer_6_4_2_26.zip
I installed this toolkit version because I couldn't connect to the QCC3031. I sent an email to TinySine and they told me that I needed this version for 303x versions of the chip. That solved the connection problem, and now on MDE, I am able to select any of the two toolkits for the project.@Malatuni
I just noticed you are using ADK Toolkit 1.2.16.22.
Try using ADK_QCC512X_WIN_6.4.2.26 instead.
Here’s the link from TinySine ->
http://www.tinyosshop.com/datasheet/ADK_QCC512x_WIN_6_4_Installer_6_4_2_26.zip
Still for some reason the v6.6.2.26 is x86 and i get an error message when I try to debug (play button) using this version:
This error doesnt appear when using the older toolkit, which was made for the 303x.
That said, I also get console errors when building with the newer ADK:
Generating GATT database
<command-line>: error: macro names must be identifiers
Assembler messages:
Fatal error: kas: preprocessing failed for : ..\..\sink_gatt_db.db
C:\qtil\ADK_QCC512X_QCC302X_WIN_6.4.2.26\tools/Makefile.rules:401: recipe for target 'PHONY_GATTDBGEN_..\..\sink_gatt_db.db' failed
make.exe: *** [PHONY_GATTDBGEN_..\..\sink_gatt_db.db] Error 1
make.exe: *** Waiting for unfinished jobs....
11 archivo(s) copiado(s)
11 archivo(s) copiado(s)
No se encuentra el archivo: *.txt
0 archivo(s) copiado(s)
01:08:44: The process "C:\qtil\ADK_QCC512X_QCC302X_WIN_6.4.2.26\tools\python27\python.exe" exited with code 1.
Error while building/deploying project sink (kit: ADK QCC512X QCC302X WIN 6.4.2.26 - 6.4.2)
When executing step "Build Project"
01:08:44: FAILED to complete all steps
01:08:44: Elapsed time: 00:37.
At this moment I am trying to fix any of the two ADKs to be able to build. Any ideas will be appreciated.
@Malatuni
That is odd. I am using ADK_QCC512X_WIN_6.4.2.26 and I am able to connect and configure the TSA6179A(QCC3031) without issue. Do you have the .SDB file from TinySine?
https://www.tinyosshop.com/datasheet/SDB_qcc3031.zip
Which version MDE are you using?
Edit: Here is MDE_WIN_2.3.2.136
https://www.dropbox.com/scl/fi/iqld...ey=xmgbozc37qqaq130gxbuhflzd&st=xiw7nf4j&dl=0
That is odd. I am using ADK_QCC512X_WIN_6.4.2.26 and I am able to connect and configure the TSA6179A(QCC3031) without issue. Do you have the .SDB file from TinySine?
https://www.tinyosshop.com/datasheet/SDB_qcc3031.zip
Which version MDE are you using?
Edit: Here is MDE_WIN_2.3.2.136
https://www.dropbox.com/scl/fi/iqld...ey=xmgbozc37qqaq130gxbuhflzd&st=xiw7nf4j&dl=0
Last edited:
@Malatuni I remember running into this problem a long time ago and don't remember all the details
Have a look at one of my posts on this thread: https://www.diyaudio.com/community/...ware-and-tons-of-csr-info.349336/post-7111864
See a few posts before and after that as well, may be it will give some ideas on how to solve this
Gist is if you are using a 64-bit version of windows both the MDE and ADK compiler versions will matter, You will need specific combinations of both
Have a look at one of my posts on this thread: https://www.diyaudio.com/community/...ware-and-tons-of-csr-info.349336/post-7111864
See a few posts before and after that as well, may be it will give some ideas on how to solve this
Gist is if you are using a 64-bit version of windows both the MDE and ADK compiler versions will matter, You will need specific combinations of both
Thank you @mahaju and @ntlagarde , it looks like MDE v2.8.0.37 is not compatible with this ADK version or something. Installing the 2.3 version solved the issue. @ntlagarde I don't know what this .SDB file is for, apart from changing the bluetooth name with the configuration app.
Now, I am not sure if the chip is actually running, because I can't see any register values. There is also a tag saying "unavailable" which I am not sure what that means. I am a bit lost with this IDE, I pushed the play button on PyDbg which I guess is some kind of Python debugger. This is what I have so far:
I am connected over USB only, but I have a CSR debugger, which maybe is necessary for real-time debugging?
Btw, I thought it may be a good idea to open a discord server for this topic, but I don't know if many of you would be into making custom firmwares for QCCs. I will be working with these for long because I need to make some specific features for a project. If you like the idea hit the like or give me some feedback.
Now, I am not sure if the chip is actually running, because I can't see any register values. There is also a tag saying "unavailable" which I am not sure what that means. I am a bit lost with this IDE, I pushed the play button on PyDbg which I guess is some kind of Python debugger. This is what I have so far:
I am connected over USB only, but I have a CSR debugger, which maybe is necessary for real-time debugging?
Btw, I thought it may be a good idea to open a discord server for this topic, but I don't know if many of you would be into making custom firmwares for QCCs. I will be working with these for long because I need to make some specific features for a project. If you like the idea hit the like or give me some feedback.
Ah you are correct. For some reason I was thinking it was required for USB connectivity.I don't know what this .SDB file is for, apart from changing the bluetooth name with the configuration app.
Are you able to connect to your device in NvsApp or QCC_Tool? Any time I’ve bricked my modules, I’ve been able to flash the firmware from TinySine or a default dump and get it back working. As for the debugging, I’m not sure. I have successfully run the debugger that is built into the MDE(2.3). I’ve also been able to get as far as building and deploying my own firmware, but when I flash it to the device, it bricks it. I haven’t been able to get it to work as I am a bit lost when it comes to this process.
I would definitely be interested in the Discord. I am currently working on a set of true wireless 2.1 bluetooth speakers (L, R, Sub) at the moment. I have the broadcast audio working beautifully, but I am hung up on building the firmware to include some custom audio prompts.
Yeah, those tools work good for me. I also bricked my TSA6179 a couple times, when I tried to burn on them other module's firmware. If this happens to you with NVSApp and also when you make a custom firmware in MDE, maybe it's a hardware issue.Are you able to connect to your device in NvsApp or QCC_Tool? Any time I’ve bricked my modules, I’ve been able to flash the firmware from TinySine or a default dump and get it back working.
What I mean is, if for instance you are using the TSA modules as I do, those include opamps for diff/single ended conversion, and other pieces of hardware for many other purposes, depending on the chip you are using. It is common that, when you burn a firmware which was designed for an specific PCB into another different PCB, you may for example put output GPIOs of the microcontroller to GND, causing the chip to shut down like if you made a short.
For your bricking problem, I think this could be the case, especially if you see that some firmwares burn fine while others don't. I would suggest to use plain BTM331 modules and wire them yourself with power and USB only for experimenting with MDE.
One time I tried to burn a BTM331 firmware on my TSA module and it was bricked to the point that I couldn't connect again to burn the old firmware. What I accidentally discovered is that, when bricked, touching certain pins with my fingers made the chip work again for a few seconds, which was enough to establish usb connection and push the original dump file.
@Malatuni
That makes sense. Thank you for the information. It would be nice if there was a way just clone the TSA6179 firmware and edit it in MDE to create a new, modified firmware that functions. I’m not sure if this is possible though. I think it would require TinySine to share their TSA6179 build files(?).
That makes sense. Thank you for the information. It would be nice if there was a way just clone the TSA6179 firmware and edit it in MDE to create a new, modified firmware that functions. I’m not sure if this is possible though. I think it would require TinySine to share their TSA6179 build files(?).
During my 2 years of experience as a firmware engineer I have never seen this and I don't think is possible. Basically when you compile the compiler interpets your human made code and generates the dump file that is pushed into the chip, at hugely lower level. Generating high level software from the memory locations and values that you can see in the dump file sounds like magic to me, but who knows, maybe some day with AI this could be done.It would be nice if there was a way just clone the TSA6179 firmware and edit it in MDE to create a new, modified firmware that functions. I’m not sure if this is possible though. I think it would require TinySine to share their TSA6179 build files(?).
It was though today, a couple of bricked modules that I was able to resurrect after panicking but I am good.
I found some useful information in this russian forum: https://4pda.to/forum/index.php?forums=89&topics=1044793&act=search&source=pst&query=mde
There is tons of deep firmware info in chinese and russian forums, I will be exploring these and maybe throw here some conclussions.
Also what I found cool is that you can do Ctrl+F5 in MDE to open a debugger menu, but I am still not sure of what it does.
Last edited:
If I remember there is a "debug build" you need to do in order to be able to stop at the breakpoint and see the registers. It looks like the chip hasn't stopped at a break point which is probably why it says unavailable and the registers window isn't showing anything. I think there is a pdf file about debugging that shows a basic example. I suggest you find that file and follow every step to get an understanding on how the IDE's debugging options work. The python debugger will let you do a lot more but I don't think you will be able to use it as a complete beginner. Try getting the IDE to stop at a break point and looking at register values first.Thank you @mahaju and @ntlagarde , it looks like MDE v2.8.0.37 is not compatible with this ADK version or something. Installing the 2.3 version solved the issue. @ntlagarde I don't know what this .SDB file is for, apart from changing the bluetooth name with the configuration app.
Now, I am not sure if the chip is actually running, because I can't see any register values. There is also a tag saying "unavailable" which I am not sure what that means. I am a bit lost with this IDE, I pushed the play button on PyDbg which I guess is some kind of Python debugger. This is what I have so far:
View attachment 1334435
I am connected over USB only, but I have a CSR debugger, which maybe is necessary for real-time debugging?
Btw, I thought it may be a good idea to open a discord server for this topic, but I don't know if many of you would be into making custom firmwares for QCCs. I will be working with these for long because I need to make some specific features for a project. If you like the idea hit the like or give me some feedback.
I also suggest using the passthrough (loopback?) sample program instead of the Sink (headset?) project to practice single step debugging. I think there is a pdf file on how to run the loopback project.
I guess this option is set here, it was like that by default:If I remember there is a "debug build" you need to do in order to be able to stop at the breakpoint and see the registers.
Exactly, this is what I was trying to do first, just simple breakpoints to see if the program is running, but it's not stopping.It looks like the chip hasn't stopped at a break point which is probably why it says unavailable and the registers window isn't showing anything.
Maybe it has to do with these issues showing on the build log (i think it is not completely building):
Will definately look for it.I think there is a pdf file about debugging that shows a basic example. I suggest you find that file and follow every step to get an understanding on how the IDE's debugging options work. The python debugger will let you do a lot more but I don't think you will be able to use it as a complete beginner. Try getting the IDE to stop at a break point and looking at register values first.
Hmm... the bad thing is I don't have a loopback project for QCC3031:I also suggest using the passthrough (loopback?) sample program instead of the Sink (headset?) project to practice single step debugging. I think there is a pdf file on how to run the loopback project.
Not sure if this will help, but I got a newer version of MDE - 2.8.0.37.
https://www.dropbox.com/scl/fo/7au3...ey=ig287wkimscxiv1918lc8572w&st=io8hvmfx&dl=0
https://www.dropbox.com/scl/fo/7au3...ey=ig287wkimscxiv1918lc8572w&st=io8hvmfx&dl=0
So, I've spent countless hours trying to figure out how to get different QACT modules to load into QACT for use. For example, the TinySine TSA6179 (QCC3031) module has the Dynamic Bass module available when you connect to QACT with the TSA6179. I bought some of the AliExpress/Ebay QCC3034 modules and they do not have the Dynamic Bass module available. If you try to save the TSA6179 .htf file from QACT and load in the modules on the QCC33034, the modules are greyed out and do not load in. If you try to merge the .htf file with QCC_Audio_Tool, the modules still do not load into QACT. I was at a loss. I was thinking the only way to get different modules to load into QACT was to build new firmware. Alas, I decided to try one last thing before giving up. I used ConfigApp to copy/paste the license key from the TSA6179 and set it on the QCC3034 and, to my surprise, it worked! I was able to load Dynamic Bass into QACT on the QCC3034. I believe the last step was to use QCC_Audio_Tool to merge the .htf file from the TSA6179 to the QCC3034, but I am not positive. If anyone wants to give it a go and confirm, that would be helpful. Just make sure you save the original license key in a text file before changing it.
Here is the TSA6179 license key in text form->
E5 25 3B 1E B3 6E F0 EE 91 D2 DE 7B 3F A1 E1 7C CC 97 99 40 0A 58 F3 20 BD 34 63 F6 0D B4 BA 26 E0 AB 86 FB 15 D5 B9 CA 73 C7 43 1B 19 DE 1A 57 B1 DD 48 9A 08 79 DF AC C1 09 72 A3 C6 4C 8E 6B
Also, if anyone would be so kind as to share a license key for a module that has the crossover modules enabled, I would be very grateful.
Cheers!
Here is the TSA6179 license key in text form->
E5 25 3B 1E B3 6E F0 EE 91 D2 DE 7B 3F A1 E1 7C CC 97 99 40 0A 58 F3 20 BD 34 63 F6 0D B4 BA 26 E0 AB 86 FB 15 D5 B9 CA 73 C7 43 1B 19 DE 1A 57 B1 DD 48 9A 08 79 DF AC C1 09 72 A3 C6 4C 8E 6B
Also, if anyone would be so kind as to share a license key for a module that has the crossover modules enabled, I would be very grateful.
Cheers!
Attachments
- Home
- Source & Line
- Digital Line Level
- QCC5125 and QCC3034\QCC3031 programming