Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

Digital Line Level DACs, Digital Crossovers, Equalizers, etc.

ES9038Q2M Board
ES9038Q2M Board
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 2nd October 2018, 10:59 PM   #2861
Markw4 is offline Markw4  United States
diyAudio Member
 
Join Date: Jul 2016
Location: California
Been thinking some more about I2C. We need to have a way to get in there and make some adjustments at the register level. So far no word from occip, but I have done some reading on mulit-master I2C for Arduinos and it doesn't look too good. In general, multi-master seems work best when the bus masters are signaling each other outside of the I2C bus signals so as to avoid collisions when both try to control the bus at once. That being the case, the best solution is probably a hardware one that can somehow be equivalent to pin lifting, but without the risks of bricking the dac MCU.

First though, I would say the bricking a dac MCU would not be a very big deal if there was no display and remote controls to worry about. For boards that don't have those things, an Arduino could easily control volume and or select inputs and filters, exactly what the MCU normally does. An Arduino could run the display and act as a optical remote receiver too, but it would be more work involved. There is however existing code that can used for common functions like that.

Anyway, let's say pin lifting is not going to happen so what else can we do, and if we make a mistake can we have do-overs without excessive risk of bricking anything?

I think we should be able to do meet those requirements. We can cut traces between the dac chip and the MCU and attach wires there. 30-gauge wire wrap wire would be doable, as would any smaller wire. The traces look pretty close together, but if we ruin a short section we can always trim it back a bit more and try again.

How do we keep from getting solder bridges to adjacent wires? So long as we leave the solder mask on them solder won't stick. If we accidentally scratch off some solder mask, we can cover traces we don't want to solder with thin high temperature Mylar tape so solder won't stick.

Easy to do, but the wires will be a little delicate and could get damaged later. What about that? Probably if we strain relief the area where the wires attach to the traces there won't be any damage to traces from accidentally snagged wires or something of that nature.

So my question would be, if I can make good instructions with good pictures showing how to do it in such a way so that if it gets flubbed on the first try you can have a few chances for do-overs, would that be sufficient to make you feel comfortable enough to try it?

Last edited by Markw4; 2nd October 2018 at 11:02 PM.
  Reply With Quote
Old 3rd October 2018, 01:47 AM   #2862
Markw4 is offline Markw4  United States
diyAudio Member
 
Join Date: Jul 2016
Location: California
For some more ideas about tapping into the I2C traces rather than pin lifting, some pics below show the ends of a 30 gauge wire wrap wire and 32 gauge stranded wire next to the traces.

The other pic shows the SCL clock trace in yellow (excluding the diagonal yellow wire at the top of the picture which is clock power), and the SDA data trace in red/orange. Next to them is the reset trace in green.

We would just cut the SCL and SDA I2C traces going to the MCU on the Q2M side of the MCU, and on the pullup resistor side, and then solder some leads with connectors onto the traces going to the MCU pins.

The the SCL and SDA traces going to the Q2M would patched over to the pullup resistors.

Then it would be just the same electrically as if we had done pin lifting.

The good thing about it is that the traces are long enough that there could be lots of tries before running out of trace, which should never happen.

What do you guys think, could you do it?

If yes, then I will go ahead and do it, and take pictures.

Otherwise, I would be happy to accept ideas as to how we could work through or work around somehow whatever remaining concerns there may be.
Attached Images
File Type: jpg TH_I2Cwire.jpg (133.7 KB, 338 views)
File Type: jpg TH_I2Cwire3.jpg (608.1 KB, 324 views)
  Reply With Quote
Old 3rd October 2018, 04:11 AM   #2863
Markw4 is offline Markw4  United States
diyAudio Member
 
Join Date: Jul 2016
Location: California
In the never ending (it seems like) quest to figure out how to lift pins or do the equivalent, I ordered some tools to try in order to see if they can make the process more reliable and less worrisome. The tools are intended to help with unsoldering ball grid ICs.

The idea would be to heat up one or more pins to soften or completely melt the solder, then use a tool to hook or slip under the one pin or few pins that are to be lifted. The other pins shouldn't move when the solder is melted so long as they are not under mechanical pressure to move.

Here is what the tools look like: Amazon.com: VIPFIX 22 In 1 BGA IC Chip Remover Tool A8 A9 A10 CPU Remover Burin Tool with Blade Set for iPhone CPU NAND Repair: Cell Phones & Accessories

If anyone else knows of similar tools please tell us about them.
  Reply With Quote
Old 3rd October 2018, 05:06 PM   #2864
occip is offline occip  France
diyAudio Member
 
Join Date: Mar 2018
Quote:
Originally Posted by Markw4 View Post
Hey occip,
Question for you please. Apparently the Arduino I2C library I have been using does not support multi-mastering so it only tells me the bus is busy rather than waiting for a chance to seize it. Could you tell us what hardware/software you are using for I2C access to ES9038Q2M board dac chip?

Thanks!
Hi,
I'm using esp32 with arduino programming and the wire library
Multi mastering is not required here, as there are tiny burst of data with large period without activity. I've managed to read all the register between two data burst. If you want something more reliable, you have to monitor the clk pin and wait until there is no activity on the clk gpio, then you will be able to send a lot of i2c requests without any problem.
  Reply With Quote
Old 4th October 2018, 04:19 AM   #2865
Markw4 is offline Markw4  United States
diyAudio Member
 
Join Date: Jul 2016
Location: California
Hey terry22,
You are someone who has expressed interesting in building, but also concern about things that may be too difficult. Do you have any thoughts one way or the other as to your ability to solder wire wrap wire onto traces when adjacent traces are protected with solder mask and or Mylar tape? It's not hard or risky, I don't think. But, that's me.

I ask because I am starting to have a feeling that the method occip used for I2C might not be the most desirable in some respects, although he did get it to work to his apparent satisfaction.

I am willing to see what I can figure out about how much time there is between MCU messages and how many tries might be needed to adjust H2 and H3, DPLL BW, and or anything else. I would like that to be a good, non-frustrating experience when the time comes, but the best way to make it completely predictable would be if we could break the I2C connection between MCU and Q2M. Pin lifting is one way, and trace cutting/soldering seems like a much less risky one. Certainly less risky some of the other things we do when we get in there and start modding a board.

So, can I get a some feedback from you or anyone else who would like to respond as to whether soldering a little wire on could be done comfortably?

Or, would you feel better deciding after seeing some pictures of me doing it first?
We could do it that way too.

But, if there are too many self-doubts to try it, I guess I will have to put in more effort with trying to work around MCU programming, which I have always thought to be running in a tight loop without much in the way of holes. Maybe I missed some holes but I don't know what for or why they wouldn't just loop it continuously, and so I have a feeling there could be multiple tries and some resulting frustration if we go that way when we don't really need to.

Last edited by Markw4; 4th October 2018 at 04:25 AM.
  Reply With Quote
Old 4th October 2018, 06:19 AM   #2866
eslei is offline eslei  New Zealand
diyAudio Member
 
Join Date: Jul 2011
Quote:
Originally Posted by Markw4 View Post

I am willing to see what I can figure out about how much time there is between MCU messages and how many tries might be needed to adjust H2 and H3, DPLL BW, and or anything else. I would like that to be a good, non-frustrating experience when the time comes, but the best way to make it completely predictable would be if we could break the I2C connection between MCU and Q2M. Pin lifting is one way, and trace cutting/soldering seems like a much less risky one. Certainly less risky some of the other things we do when we get in there and start modding a board.

So, can I get a some feedback from you or anyone else who would like to respond as to whether soldering a little wire on could be done comfortably?

Or, would you feel better deciding after seeing some pictures of me doing it first?
We could do it that way too.
following your advice with a logic analyzer, i can confirm that we can disable the on board mcu by putting j1, j2 on, the dac ' sda ' and ' scl ' connection are ready to receive i2c command from raspberry pin 3 and pin 5. using ' I2C-tools ' on ssh is capable to configure the 90x8.

anyone who would discuss this more pls pm me, we may start another thread.


cheers
  Reply With Quote
Old 4th October 2018, 07:11 AM   #2867
Markw4 is offline Markw4  United States
diyAudio Member
 
Join Date: Jul 2016
Location: California
eslei,
Thank you for figuring that out. May I ask which version of the board you are using?

This time around I happen to be using one of the blue boards and not sure if the firmware is the same in it as what you have. Also, don't know if firmware is different in different versions of the green boards since some have displays and some don't.

If the J1, J2 setting works for all boards that would be terrific. Don't know if we will get that lucky or not. I will check the blue board in the morning and post results for it.
  Reply With Quote
Old 4th October 2018, 07:34 AM   #2868
Markw4 is offline Markw4  United States
diyAudio Member
 
Join Date: Jul 2016
Location: California
One more thing I should mention about connecting to the dac via I2C bus:
The dac should be powered on before connecting a powered-on I2C master device. That is for the usual reason that we don't want to put voltage on the input pins of a device when the power is off or it may cause damage. To some extent the pull up resistors on the dac board might help protect it by draining off some current if a high impedance source. Open collector outputs should be safe to connect so long as the only pull up resistors are the ones on the dac board.

Also, so long as the dac board is powered on, the I2C pins are rated as 5v tolerant, so it should okay to use a 5v I2C master.

Also, if any concerns it should be possible to help protect input pins against potential accidents by connecting schottky diodes from the I2C inputs to the 3.3v power bus on other side of the pull up resistors. Rectifier diodes may be good for that because you want ones with Vf as low as possible.

Last edited by Markw4; 4th October 2018 at 07:43 AM.
  Reply With Quote
Old 4th October 2018, 11:01 AM   #2869
eslei is offline eslei  New Zealand
diyAudio Member
 
Join Date: Jul 2011
Quote:
Originally Posted by Markw4 View Post

May I ask which version of the board you are using?
the green smp es9038q2m v1.07, es9028q2m v1.01 make by ustart audio.

i just have a breakthrough, volumio v2.457 hardware volume control via raspberry i2c bus is achievable now.

cheers
Attached Images
File Type: jpg 03.jpg (197.0 KB, 256 views)
File Type: jpg 38.jpg (198.3 KB, 258 views)
  Reply With Quote
Old 4th October 2018, 03:03 PM   #2870
Markw4 is offline Markw4  United States
diyAudio Member
 
Join Date: Jul 2016
Location: California
Hi eslei,
Looks like you posted two pictures of smpes v1.07, one of them with AVCC and VCCA power connections outlined. Is that what you intended?

Also, I think it would be okay for you to tell us how you configured your RPi to work with the dac board so far. I think it is relevant to the thread and would be on topic.

Last edited by Markw4; 4th October 2018 at 03:06 PM.
  Reply With Quote

Reply


ES9038Q2M BoardHide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
My Cambridge 500SE, needs an output board (to replace internal DAC Board) slbender Digital Source 1 11th July 2018 03:43 AM
JLSounds XMOS USB board + AK4396 board + Direct DSD PCB ravid Swap Meet 1 29th December 2016 12:36 PM
Unknown Board DC12V TPA3116 amplifier board DIY L163-9 AUS Ben Class D 0 8th December 2016 05:05 AM
FS: Ian FIFO i2s-to-PCM board, Single XO clock board trung224 Swap Meet 3 26th November 2016 03:18 PM
Lost 1 Zv4 ckt board..looking to buy 1 circuit board Blues Pass Labs 1 22nd March 2004 11:09 PM


New To Site? Need Help?

All times are GMT. The time now is 01:22 AM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 14.29%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Copyright ©1999-2018 diyAudio
Wiki