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
LeonvB  
#41 Posted : Wednesday, December 29, 2010 11:25:51 AM(UTC)
LeonvB

Rank: Member

Groups: Member
Joined: 5/23/2010(UTC)
Posts: 708
Location: Netherlands

Thanks: 2 times
Was thanked: 48 time(s) in 45 post(s)
Yes, as long as you can create addresses for them on the I2C bus, that's even possible when using a single I2C bus. After that you could simply use another bus.
glt  
#42 Posted : Wednesday, December 29, 2010 12:42:40 PM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

The WM8741 in the OPUS can be configured with up to two device addresses (Sabre32 also with up to two addresses). That is the limitation of the chip.

Arduino can control any number of devices as long as they have different addresses.

More than two devices can be accommodated with some tricks: either h/w address multiplexer or s/w by implementing multiple i2c buses as LeonvB said. I think the Arduino library for I2S only supports one bus. There maybe other libraries available, but I don't have experience in that area.

BTW, I am a fan of the OPUS/WM8741. At least the documentation (eg datasheet) is much better...
findbuddha  
#43 Posted : Friday, December 31, 2010 5:57:23 AM(UTC)
findbuddha

Rank: Member

Groups: Member
Joined: 8/26/2008(UTC)
Posts: 11

Hmmm, having a look through the WM8741 datasheet, it suggests that they can be daisy chained in 3-wire serial mode. I couldn't see a limit mentioned, but they use 3 DACs in the example.
glt  
#44 Posted : Friday, December 31, 2010 9:42:48 AM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

In daisy chain all devices are progammed with the same value. With two wire (i2c) you can progam them independently for example one device mono right and the other device mono left
washout  
#45 Posted : Saturday, January 8, 2011 10:07:44 AM(UTC)
washout

Rank: Member

Groups: Member
Joined: 10/6/2008(UTC)
Posts: 29
Location: peoples paradise NY

glt, I have collected most of the parts for your Uno> Buff remote solution. I have a question on loading the code you have provided. You have along with the actual code (sets of code), explanations and notations about what it does, etc. Can I just copy and paste all of that into a sketch and be OK? I noticed one of the early exercises for Arduino has a blinking light code, along with text explanations,and the whole thing got up loaded? Code potions are read, descriptive text is ignored? Better yet, does the reset button clear the entire memory from any sketches I have uploaded? I can goof up many times with no consequence in this narrow application I am trying?
I appreciate any help, just starting to scratch the surface with the Arduino.
glt  
#46 Posted : Saturday, January 8, 2011 11:29:46 AM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

washout,

I am glad you are learning some s/w. Just copy and paste as many times as you wish (there is a limit of the non-volatile memory at 10,000 times or 100,000 times -I forgot, but practically you will never reach that limit).

The "notations" are "comments" which are ignored.

When you reset, the program restarts from the beginning.
When you load a new program, there is an automatic reset and new code is copied into the microprocessor.

Keep in mind that you should power Buffalo and the controller at the same time. If you power Buffalo first without the controller, Buffalo will start with the default settings which is FULL volume.
washout  
#47 Posted : Saturday, January 8, 2011 11:55:15 AM(UTC)
washout

Rank: Member

Groups: Member
Joined: 10/6/2008(UTC)
Posts: 29
Location: peoples paradise NY

Thanks glt. I think as I get going and become more comfortable with the Arduino format much of this will become easier for me. For now thoiugh I just want to see your code working on my Buff, so I appreciate you helping with the very noob questions.
Anima  
#48 Posted : Wednesday, January 19, 2011 9:11:42 AM(UTC)
Anima

Rank: Member

Groups: Member
Joined: 12/27/2010(UTC)
Posts: 15
Location: Denmark

Hi glt and others

Very interested in the project. I've made a cart on amazon with the items needed for this to work.

Now, i have a small question about expanding the functionality of the arduino. I've seen it can be used for PWM, so i was thinking about using it as a failsafe if the temperature inside an amp or dac was too high. I have not checked it myself, but does the arduino have enough terminals to work both as a remote interface and fan controller using perhaps a thermistor? And can i wire a second display to the arduino and have a small display showing temperature?

Like this here: http://www.coolerguys.com/840556090885.html

Brian Donegan  
#49 Posted : Wednesday, January 19, 2011 9:34:21 AM(UTC)
Brian Donegan

Rank: Administration

Groups: Administration, Customer
Joined: 10/24/2006(UTC)
Posts: 2,868
Location: Massachusetts, USA

Thanks: 2 times
Was thanked: 141 time(s) in 134 post(s)
Check out Maxim-IC fan controller chips. You could interface to them from the Arduino and get a much simpler solution.
glt  
#50 Posted : Wednesday, January 19, 2011 10:46:53 AM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

There is still a few pins left after connecting everything. Connecting a separate display will not work because you will need another 6 pins and modify the library. You can support multiple LCDs if you go the I2C route but that means changing "everything". You can display the temperature in the existing display. You'll just have to find some empty space...

Best solution is what Brian said or open more holes in the case :-)
washout  
#51 Posted : Wednesday, January 19, 2011 8:10:56 PM(UTC)
washout

Rank: Member

Groups: Member
Joined: 10/6/2008(UTC)
Posts: 29
Location: peoples paradise NY

I got most of the parts for the Arduino remote volume. I got them connected and have a backlit, but blank, display screen. I do need to get back and check everything again, but a quick question. I don't have a remote reciever connected yet, but assumed the encoder would still do somthing/display somthing?
I am using all glt's recomended components,also using the 5>3.3V level converter.

glt  
#52 Posted : Wednesday, January 19, 2011 11:00:38 PM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

Did you install and adjust the contrast adjustment pot?
washout  
#53 Posted : Thursday, January 20, 2011 4:27:02 PM(UTC)
washout

Rank: Member

Groups: Member
Joined: 10/6/2008(UTC)
Posts: 29
Location: peoples paradise NY

arrrrgh Thought that pot was for brightness, and not necessary.
Contrast is adjusted and I have the full display. Encoder scrolls through the fields (push) and enters values (twist).
When I hook to the Buff and try to start both at once, I get the HIFIDUINO display, and nothing else. No response from the encoder. I have tried this several times with the same result. I should mention I am plugging in the Arduino and turning on the dac, I think, at the same time. Maybe a latching issue though doing it like this?
glt  
#54 Posted : Thursday, January 20, 2011 10:21:05 PM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

Did you remove the microprocessor from the Buffalo?
The code should not get stuck anywhere...
You can press the reset button in the Arduino to restart the program.

>> I should mention I am plugging in the Arduino and turning on the dac, I think, at the same time

Can you explain some more?

Edited by user Thursday, January 20, 2011 10:23:01 PM(UTC)  | Reason: Not specified

washout  
#55 Posted : Friday, January 21, 2011 7:32:02 AM(UTC)
washout

Rank: Member

Groups: Member
Joined: 10/6/2008(UTC)
Posts: 29
Location: peoples paradise NY

glt, I am sorry. I had a miswire at the I2C header on the Buff. All is good now except one thing. When turning the encoder clockwise I get an increase in attenuation (- db) did I miss another pin assignment? In other words turning clockwise decreases volume.

To answer your last question, I am applying power to both the dac and Arduino at the same time so they latch. I have seen so far if I don't, they won't.

I need to get a Digikey order together for the IR reciever and get this project put to bed. I very much appreciate your help glt.
glt  
#56 Posted : Friday, January 21, 2011 11:30:11 AM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

Switch the A and B connectors in the rotary encoder
washout  
#57 Posted : Sunday, January 23, 2011 9:44:14 AM(UTC)
washout

Rank: Member

Groups: Member
Joined: 10/6/2008(UTC)
Posts: 29
Location: peoples paradise NY

That did it. Thank you.

v B06 is looking and working great. Being able to change the roll off this easily is a very handy feature.

Is a backlight brightness control still part of this version? I don't see it. Or how to accomplish this?
thomaspf  
#58 Posted : Sunday, January 23, 2011 10:38:35 PM(UTC)
thomaspf

Rank: Member

Groups: Member
Joined: 12/24/2008(UTC)
Posts: 100
Location: Seattle, WA

Hi glt,

I put together my hifiduino control for my buffalo 2 over the weekend. So far so good. I changed the UI a bit, added mute, and made all selections available via the remote as well but I took the i2c settings for the DAC from your code.

Everything works pretty much as expected but I suspect your settings are not the same that Russ is using with his microcontroller. The difference becomes very apparent for me when I play material with a sample rate of 192Khz. There is a lot of noise on the speakers as soon as the DAC locks onto this sample rate when using the HIFIduino initialization code. I do not have access to the NDA data other than what is published in the help file for the Sabre GUI tool and embedded in your code. I have been thinking about letting the MCU on the initialize the DAC and then read everything back but maybe this post will help clear things up.

There is no noise when switching back the i2c connection to the volumite.


The relevant code for a fixed i2s connection from you web site is:

writeSabreReg(0x0E,0xF9); // Reg 14: BuffII I2S wiring, normal IIR BW and Fast rolloff
writeSabreReg(0x0A,0xCE); // Reg 10: 32 bit I2S, jitter reduction ON
writeSabreReg(0x11,0x04); // Reg 17: Auto spdif detection OFF
writeSabreReg(0x08,0x68); // Reg 8: Enable I2S/DSD input
writeSabreReg(0x19,0x02); // Reg 25: Use best DPLL settings
writeSabreReg(0x12,0x10); // Reg 18: Reroute SPDIf (to see if it improves i2S dropouts)

Maybe Russ can enlighten us to what is missing here without violating his NDA.

Cheers

Thomas

P.S.: The other obvious problem could be the i2c connection from my Arduino board. I did not add a 3.3V voltage converter.

Edited by user Sunday, January 23, 2011 10:45:36 PM(UTC)  | Reason: Not specified

glt  
#59 Posted : Sunday, January 23, 2011 10:59:23 PM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

Hmmm I'm playing at 192K (96K upsampled to 192 in iTunes) spdif and there is no noise.
glt  
#60 Posted : Sunday, January 23, 2011 11:01:32 PM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

washout wrote:
That did it. Thank you.

v B06 is looking and working great. Being able to change the roll off this easily is a very handy feature.

Is a backlight brightness control still part of this version? I don't see it. Or how to accomplish this?


I took the selection of Brightness because i ran out of real state in the display :-) but the code is in the previous version... I'll add it back later...
Rss Feed  Atom Feed
Users browsing this topic
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.