Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Login


4 Pages<1234>
Options
View
Go to last post Go to first unread
cdeveza  
#41 Posted : Tuesday, July 16, 2019 12:06:31 AM(UTC)
cdeveza

Rank: Member

Groups: Member
Joined: 5/12/2016(UTC)
Posts: 66
United States
Location: Concord

Thanks: 6 times


As you know, the library encapsulates access to all the chip's functionality into an 'ES9028 Object'. Other code libraries can interact with instances of this object to create reusable modules - e.g.: I have other libraries that support infra red control and motorised volume control. This modular approach makes the main code far cleaner than putting everything into Setup() and Loop().


Absolutely


AutoSelect must be disabled for InputSelect to work (I don't use SPDIF so this is the first time I've had to deal with this scenario)


Noted


Note that DSD has its own DpllBandwidth setting


setDpllBandwidthSerial <- I use this, cause my inputSelect for I2S/DSD is serial
setDpllBandwidthDSD

what is the difference between the two anyways? DSD and Serial?
There is no setDpllBandwidthSPDIF <- if it means anything



There are a bunch of other filter settings like DeEmph and THD - I've never played with them so can't comment as to how much of an audible difference they make (if any). In any case, I would strongly recommend you power the DAC's analog stage completely independently rather than using the 'default' AVCC SR regulators that take their power from the same 5V supply as the digital stage - as this makes a clearly audible difference far greater than playing with the filters.


What power supply do you recommend? Are the ones from DIYINK good enough? recommendation??


If AutoMute is enabled you can detect when sound is playing by reading dac.automuted()


Noted


Sample Rate is about the only thing I haven't put into the 9028/38 library (the 9018 library has it) - but I am happy to add it if you want it.


If its not too much trouble, sample rate would be nice

On another subject, I am using the latest version of arduino compiler, but I am finding some bugs in it, I am going to try different version.

Dont know how to thank you enough, you have no idea how many sleepless nights I spent to get this thing going. Now that I got it working, the more I could not sleep ;>))

Regards,

Alex
Possum  
#42 Posted : Tuesday, July 16, 2019 12:55:13 AM(UTC)
Possum

Rank: Member

Groups: Member
Joined: 8/5/2012(UTC)
Posts: 208
Australia

Thanks: 4 times
Was thanked: 16 time(s) in 14 post(s)
I can recommend the DIYINHK regulators (its what I use). Get the LDO regulator of course. It contains 2 5v/3.3v regs on the one board. You can power left and right separately (this is what ESS recommend to achieve best results)

I would also recommend separate clean power to the clock

I use a DIYINHK dual reg with its own dual winding toroid xformer with one 3.3V reg powering the clock and the other reg at 5V powering a modified TP AVCC SR which has its input pins connected to the DIYINHK 5V reg instead of the DAC board


Sure, I'll add sample rate. I don't have displays on my builds, but I am adding IoT support using MQTT messaging so I can control and view status via an android app - so I will have a means to display sample rate myself :-)

As your source is DSD you will need to use setDpllBandwidthDSD (just set both Serial and DSD to the same value - this is what Russ's firmware does)

Edited by user Tuesday, July 16, 2019 12:56:15 AM(UTC)  | Reason: Not specified

cdeveza  
#43 Posted : Tuesday, July 16, 2019 8:35:10 AM(UTC)
cdeveza

Rank: Member

Groups: Member
Joined: 5/12/2016(UTC)
Posts: 66
United States
Location: Concord

Thanks: 6 times
Originally Posted by: Possum Go to Quoted Post
I can recommend the DIYINHK regulators (its what I use). Get the LDO regulator of course. It contains 2 5v/3.3v regs on the one board. You can power left and right separately (this is what ESS recommend to achieve best results)


I am not sure if you are familiar with this SD player, called SDTrans384, from japan, this is my main I2S music source. I actually got it powered by one of those DIYINK power supply with the 5v/3.3v, just like you said, that is why I mentioned it, just not sure if they are good enough for the DAC. Anyways, so if I understand you correctly, its the regulator on top of the ESS9038 chip, right? if so, I noticed that russ spec them at 3.6v not 3.3v.

I would also recommend separate clean power to the clock


I am not sure where this is?


I use a DIYINHK dual reg with its own dual winding toroid xformer with one 3.3V reg powering the clock and the other reg at 5V powering a modified TP AVCC SR which has its input pins connected to the DIYINHK 5V reg instead of the DAC board


So, this is more like, a dual regulator? DIYINK regulates the supply and the regulated supply is fed into another regulator, AVCC? is that right?


Sure, I'll add sample rate. I don't have displays on my builds, but I am adding IoT support using MQTT messaging so I can control and view status via an android app - so I will have a means to display sample rate myself :-)


Is there a way to check whether the incoming signal is SPDIF, PCM or DSD? does that make sense? then display its sample rate. This will be very good to have. If it can be done.


As your source is DSD you will need to use setDpllBandwidthDSD (just set both Serial and DSD to the same value - this is what Russ's firmware does)

Noted

Thanks for all the tip possum. I am still working on my controller, the power supply will be next.

Regards,
Alex

Possum  
#44 Posted : Tuesday, July 16, 2019 9:56:20 AM(UTC)
Possum

Rank: Member

Groups: Member
Joined: 8/5/2012(UTC)
Posts: 208
Australia

Thanks: 4 times
Was thanked: 16 time(s) in 14 post(s)
"So, this is more like, a dual regulator? DIYINK regulates the supply and the regulated supply is fed into another regulator, AVCC? is that right?"

Yep - but I have also accidentally powered analog directly with 5v from the DIYINHK with no ill effects :-) (and it still sounded better than the AVCC SR regulator running off of VC) - so the dac analog stage doesn't seem too fussy about the voltage

Clock power is the 3.3v XO input (the middle trident). Clean power to the clock can give a noticeable improvement to imaging.


"Is there a way to check whether the incoming signal is SPDIF, PCM or DSD?"

Yes spdifValid(), i2sValid() and dsdValid() (see caveat on the last function)

Alternatively, turn off AutoSelect in all cases and use InputSelect to explicitly switch between the 3 options (and you can even add other SPDIF sources if you wish using the spare GPIO pins or an OTTO II for multiple I2S/DSD) - then use automuted() to check whether there is a valid corresponding signal

Edited by user Tuesday, July 16, 2019 10:02:32 AM(UTC)  | Reason: Not specified

cdeveza  
#45 Posted : Wednesday, July 17, 2019 2:58:11 AM(UTC)
cdeveza

Rank: Member

Groups: Member
Joined: 5/12/2016(UTC)
Posts: 66
United States
Location: Concord

Thanks: 6 times
Originally Posted by: Possum Go to Quoted Post

I have also accidentally powered analog directly with 5v from the DIYINHK with no ill effects :-) (and it still sounded better than the AVCC SR regulator running off of VC) - so the dac analog stage doesn't seem too fussy about the voltage


When you say, analog stage, do you mean the I/V stage? I did not mentioned it, but I am not using TP's I/V's stage, I build my own tube I/V stage, it is physically big, but incredible sound.

Originally Posted by: Possum Go to Quoted Post

Clock power is the 3.3v XO input (the middle trident). Clean power to the clock can give a noticeable improvement to imaging.


So the one feeding the XO is just one 3.3v, from DIYINK, is that right?

Did you say you have separate DIYINK supply to the left and to the right? Both supply feeding the AVCC that goes into the DAC? dont think I follow.

"Is there a way to check whether the incoming signal is SPDIF, PCM or DSD?"

Originally Posted by: Possum Go to Quoted Post

Yes spdifValid(), i2sValid() and dsdValid() (see caveat on the last function)


Great, excellent. Please let me know when you get done with the implementation of the Sample Rate. I think that
should be it.

Originally Posted by: Possum Go to Quoted Post

Alternatively, turn off AutoSelect in all cases and use InputSelect to explicitly switch between the 3 options (and you can even add other SPDIF sources if you wish using the spare GPIO pins or an OTTO II for multiple I2S/DSD) - then use automuted() to check whether there is a valid corresponding signal


I have actually have 3 sources. 1 SPDIF and 2 I2S/DSD. I am using OTTO II to switch between the 2 I2S/DSD.
My I2S/DSD sources are from my SDTrans384 sd player and from Raspberry pi. The best sound so far that I found
is from the SDTrans384. Nobody believes me when I say that a ripped Wav file from a CD into an SD Card and
played through my SDTrans384, sounded better than the actual CD or SACD played through my SONY 5400 player.

I have been looking for a CD/SACD player that has an I2S/DSD output, but could not find one. That would be great.

Thanks again for all your help,
Alex
cdeveza  
#46 Posted : Wednesday, July 17, 2019 3:50:22 AM(UTC)
cdeveza

Rank: Member

Groups: Member
Joined: 5/12/2016(UTC)
Posts: 66
United States
Location: Concord

Thanks: 6 times
BTW, in your codes, there is a method called dopValid(), what does "dop" means, what is it used for?

One thing I dont quite understand is that, i2sValid() will tell you whether the signal is coming from I2S, right? but dsdValid(), I guess will tell me if its DSD and if its not, then its PCM, does that make sense? so I guess, check for i2sValid() first, then if it succeed, then check if its dsd or not?? is that right?

Alex
Possum  
#47 Posted : Wednesday, July 17, 2019 7:00:46 AM(UTC)
Possum

Rank: Member

Groups: Member
Joined: 8/5/2012(UTC)
Posts: 208
Australia

Thanks: 4 times
Was thanked: 16 time(s) in 14 post(s)
No idea what dop is. Some other protocol the dac can decode.

By analog power I .mean dac analog power

I've never used the is valid functions so you're on your own :there -)

Happy programming
cdeveza  
#48 Posted : Wednesday, July 17, 2019 9:47:35 AM(UTC)
cdeveza

Rank: Member

Groups: Member
Joined: 5/12/2016(UTC)
Posts: 66
United States
Location: Concord

Thanks: 6 times
Originally Posted by: Possum Go to Quoted Post
No idea what dop is. Some other protocol the dac can decode.

By analog power I .mean dac analog power

I've never used the is valid functions so you're on your own :there -)

Happy programming


oK, got you, one question, do you happen to have a copy of the ES9038 datasheet? I am trying to learn as much as I can how these things work.

Thanks,
Alex
cdeveza  
#49 Posted : Wednesday, July 17, 2019 11:09:12 PM(UTC)
cdeveza

Rank: Member

Groups: Member
Joined: 5/12/2016(UTC)
Posts: 66
United States
Location: Concord

Thanks: 6 times
Originally Posted by: cdeveza Go to Quoted Post
Originally Posted by: Possum Go to Quoted Post


oK, got you, one question, do you happen to have a copy of the ES9038 datasheet? I am trying to learn as much as I can how these things work.

Alex


Just found out, its illegal to get datasheets from ESS. Dont know why, just asking information for a product. Well, thats it for that.

Regards,
Alex

cdeveza  
#50 Posted : Friday, July 19, 2019 5:47:49 AM(UTC)
cdeveza

Rank: Member

Groups: Member
Joined: 5/12/2016(UTC)
Posts: 66
United States
Location: Concord

Thanks: 6 times
Originally Posted by: Possum Go to Quoted Post

Sure, I'll add sample rate. I don't have displays on my builds, but I am adding IoT support using MQTT messaging so I can control and view status via an android app - so I will have a means to display sample rate myself :-)


Hi Possum,

Did you get a chance to work on the Sample Rate issue. It would be nice if we can get this information.

Thanks,
Alex

Possum  
#51 Posted : Sunday, July 21, 2019 6:06:48 AM(UTC)
Possum

Rank: Member

Groups: Member
Joined: 8/5/2012(UTC)
Posts: 208
Australia

Thanks: 4 times
Was thanked: 16 time(s) in 14 post(s)
Will try to find time this evening

PS: You should check your personal mailbox more often :-)
cdeveza  
#52 Posted : Tuesday, July 23, 2019 7:29:02 AM(UTC)
cdeveza

Rank: Member

Groups: Member
Joined: 5/12/2016(UTC)
Posts: 66
United States
Location: Concord

Thanks: 6 times
Originally Posted by: Possum Go to Quoted Post
Will try to find time this evening

PS: You should check your personal mailbox more often :-)


Sorry possum, I did not know about this PM here, how dumb of me, I am so sorry. But thanks anyways, dimdim gave me a copy of the datasheet. BTW, I am still struggling to get my controller to work the way I wanted it.

I could get the I2S to work, playing DSD files, and PCM files, however, if I have an SPDIF(my Toslink) plugged in with signal, with PCM on the I2S, then it would not work?? but if its DSD, then it works even with Toslink with signal plugged in? Strange.

Its a good thing, I mostly listen to I2S, but I use my Toslink sometimes. I use it for watching movies on TV.
Got any ideas, how to fix this problem? I looked at Russ code and its almost identical, as far as which regs to set.

Regards,
Alex
branko  
#53 Posted : Tuesday, July 23, 2019 2:19:44 PM(UTC)
branko

Rank: Member

Groups: Member
Joined: 3/23/2010(UTC)
Posts: 53
Location: Germany

Thanks: 1 times
Nice to follow this conversation and to see how it comes to success!

After being distracted from hobby due to lack of time I would like to start over again.

My goal is also a stereo BIIIpro se with one I2s and two (maybe 3) spdif inputs. Inputs should be changed by push button (cycle through) and maybe ir-remote.

Last goal would be a Display (LED-Matrix) to show input NAME and SAMPLING RATE

Will use an Arduino Due and Dimdims shield for isolation reasons.

I fear I will need a lot of help :((

Thank you so much for your code Possum

BR

Branko

btw: as I do not have offer any usable knowledge. I s there a way to spend you some beer (or a wine maybe)

Edited by user Saturday, July 27, 2019 9:29:52 PM(UTC)  | Reason: Not specified

branko  
#54 Posted : Tuesday, July 23, 2019 6:07:49 PM(UTC)
branko

Rank: Member

Groups: Member
Joined: 3/23/2010(UTC)
Posts: 53
Location: Germany

Thanks: 1 times
Hi,

@cdeveza

would you mind to post your actually working code, as it is nearly the one I would need. So I could try a start or to compare?

thx

Branko
Possum  
#55 Posted : Friday, July 26, 2019 11:08:43 PM(UTC)
Possum

Rank: Member

Groups: Member
Joined: 8/5/2012(UTC)
Posts: 208
Australia

Thanks: 4 times
Was thanked: 16 time(s) in 14 post(s)
Originally Posted by: cdeveza Go to Quoted Post
Originally Posted by: Possum Go to Quoted Post
Will try to find time this evening


I could get the I2S to work, playing DSD files, and PCM files, however, if I have an SPDIF(my Toslink) plugged in with signal, with PCM on the I2S, then it would not work?? but if its DSD, then it works even with Toslink with signal plugged in? Strange.



So are you saying the DAC plays the SPDIF signal even when the input is set to serial and there is a PCM signal?


PS: the library has all you need to get the sample rate - use dac.dpllNumber and clock = 10:

long sampleRate = (dpllNumber()*clock)/42940; see Dim Dim's code to print the actual sample rate
jbjbjbjbjb  
#56 Posted : Monday, February 27, 2023 10:04:41 AM(UTC)
jbjbjbjbjb

Rank: Member

Groups: Member
Joined: 2/27/2023(UTC)
Posts: 3
United Kingdom

Hi Possum,
I wonder if this is still active?

I'm considering purchasing this-

https://www.diyinhk.com/...o_option-8ch_reclock_pcb

- and I'm hoping that I'll be able to use your code to program it.

I'd like to be able to control each channel's volume individually for a coffee-table-slider-remote project. Is this possible with your code, and would the modifications be feasible?

with thanks and hope...
james

Possum  
#57 Posted : Monday, February 27, 2023 10:24:34 AM(UTC)
Possum

Rank: Member

Groups: Member
Joined: 8/5/2012(UTC)
Posts: 208
Australia

Thanks: 4 times
Was thanked: 16 time(s) in 14 post(s)
If the board has I2C to connect arduino then YES it is absolutely possible.

You must use an isolator circuit tho as arduino injects too much noise.


I have a smartphone app that lets me control everything remotely
jbjbjbjbjb  
#58 Posted : Monday, February 27, 2023 3:54:44 PM(UTC)
jbjbjbjbjb

Rank: Member

Groups: Member
Joined: 2/27/2023(UTC)
Posts: 3
United Kingdom

fantastic. I'll get the board and have a go. Might need some pointers at some point.
Possum  
#59 Posted : Monday, February 27, 2023 9:00:46 PM(UTC)
Possum

Rank: Member

Groups: Member
Joined: 8/5/2012(UTC)
Posts: 208
Australia

Thanks: 4 times
Was thanked: 16 time(s) in 14 post(s)
for remote control I use the MQTT protocol, as there are cool apps like MQTT Dash and Home Assistant that make creating a user interface easy.

You will need an MQTT server tho. A Raspberry Pi will do the job. I run it on my Synology NAS.

You can instead use HTTP ReST as the protocol, but MQTT Dash won't work with it. MQTT has the advantage of being able to publish out events as well as receive them - so the DAC can, say, publish out the fact the attenuation changed when you turn the volume knob and the app will magically reflect this. HTTP can't do this. You must instead continually poll the device to detect any changes.

If you want to use MQTT I can share some implementation code with U that you can mod to suit your purposes. It does a lot more than volume control - e.g.: power, filter selection, mute, etc

My library most certainly allows you to set each channels attenuation individually, but be mindful there is a master mode that sets channel 1 as master for all other channel attenuation. My implementation code uses this, but you do not want this enabled if you want individual control of each channel.

Don't forget the isolator - e.g.: https://www.tme.eu/en/de...kroe/i2c-isolator-click/

Twisted Pear is in the process of shutting down, so you might want to ping me your email if you want some assistance, as I don't know how long Brian intends to maintain this support forum for.

Possum  
#60 Posted : Monday, February 27, 2023 9:11:30 PM(UTC)
Possum

Rank: Member

Groups: Member
Joined: 8/5/2012(UTC)
Posts: 208
Australia

Thanks: 4 times
Was thanked: 16 time(s) in 14 post(s)
PS: I usually use the WeMos D1 R2 WiFi ESP8266 board, or the WeMos mini if space is an issue - don't bother with the Arduino WiFi shields - they're a bodge.
Rss Feed  Atom Feed
Users browsing this topic
GuestUser (10)
4 Pages<1234>
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.