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.
|
|
|
|
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...
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
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.
|
|
|
|
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 :-)
|
|
|
|
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.
|
|
|
|
Rank: Member
Groups: Member
Joined: 11/9/2007(UTC) Posts: 453 Location: usa
|
Did you install and adjust the contrast adjustment pot?
|
|
|
|
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?
|
|
|
|
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
|
|
|
|
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.
|
|
|
|
Rank: Member
Groups: Member
Joined: 11/9/2007(UTC) Posts: 453 Location: usa
|
Switch the A and B connectors in the rotary encoder
|
|
|
|
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?
|
|
|
|
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
|
|
|
|
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.
|
|
|
|
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...
|
|
|
|
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.