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

Notification

Icon
Error

Login


3 Pages<123>
Options
View
Go to last post Go to first unread
Russ White  
#21 Posted : Wednesday, April 25, 2012 3:29:08 PM(UTC)
Russ White

Rank: Administration

Groups: Administration, Customer
Joined: 10/24/2006(UTC)
Posts: 3,979
Location: Nashville, TN

Thanks: 25 times
Was thanked: 89 time(s) in 83 post(s)
I would definitely use a transistor (with a fly-back diode) to drive a relay.
Corpius  
#22 Posted : Saturday, April 28, 2012 4:11:17 PM(UTC)
Corpius

Rank: Member

Groups: Member
Joined: 2/1/2012(UTC)
Posts: 332
Location: The Netherlands

Thanks: 4 times
Was thanked: 18 time(s) in 18 post(s)
What would happen when the system is powered, but there arduino doesn't start for some reason, so the is no control? Will the Buffalo stampede? Is that why it is called Buffalo?

Just kidding. I'm worried that the volume could be up all the way, destroying ears and speakers.

EDIT: And what if arduino stops working when it is already up and running? Will all registry settings be kept until is it switched off?

Edited by user Saturday, April 28, 2012 4:13:33 PM(UTC)  | Reason: Not specified

glt  
#23 Posted : Saturday, April 28, 2012 4:21:23 PM(UTC)
glt

Rank: Member

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

Yes, if the Arduino does not start, then the DAC will start at full volume. However, you start the DAC before you play music and if the Arduino does not start, then there will be nothing in the display. The way the s/w is configured, if you start both the DAC and the Arduino at the same time, the Arduino seems to be well coordinated with the DAC so that it can mute the DAC before it starts programming the rest of the registers. Once the registers are programmed, you can actually turn off the Arduino and none of the registers will change.

So unless you start playing music before starting the DAC (or power cycle the DAC without power cycling the Arduino) you will not encounter this problem.

The only way to avoid this with every possible scenario is to use a preamp or passive volume control.
Corpius  
#24 Posted : Saturday, April 28, 2012 4:32:24 PM(UTC)
Corpius

Rank: Member

Groups: Member
Joined: 2/1/2012(UTC)
Posts: 332
Location: The Netherlands

Thanks: 4 times
Was thanked: 18 time(s) in 18 post(s)
glt wrote:
The only way to avoid this with every possible scenario is to use a preamp or passive volume control.
I do at the moment, but want to use the B3 for it if it is better sounding. Good to know that the registers don't get changed when arduino it turned off. Two more questions:

1. How reliable is arduino. Is it likely to crash or does it run very stable?
2. I was thinking of some sort of check before powering the dac board. Something like a function that loops for some time (with sleep/delay), let say 2 seconds (or less), and then switches a relay so the dac board gets powered. After this time it is sure that the arduino has started without problems. Will it then be fast enough to mute the dac?

Edited by user Saturday, April 28, 2012 4:34:11 PM(UTC)  | Reason: Not specified

Corpius  
#25 Posted : Sunday, April 29, 2012 9:39:55 PM(UTC)
Corpius

Rank: Member

Groups: Member
Joined: 2/1/2012(UTC)
Posts: 332
Location: The Netherlands

Thanks: 4 times
Was thanked: 18 time(s) in 18 post(s)
A better solution to prevent full volume at start-up is to put a relay between the placid HDBP and IVY, instead of between the HD and DAC.

EDIT: Another question came to mind. The lock and mute led are probably controlled by the onboard firmwarm. If this is correct then mounting hem in the front panel had no use.

Edited by user Sunday, April 29, 2012 9:44:06 PM(UTC)  | Reason: Another question came to mind

glt  
#26 Posted : Sunday, April 29, 2012 10:20:25 PM(UTC)
glt

Rank: Member

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

Arduino is a solid state device just like the DAC, so equal reliability.

Some people don't like relays in signal wires. You could put a relay between amp and speaker and if Arduino fails to start, then the relay is not activated. Lock and mute are h/w signals out of the DAC. It would be useful to have them connected to the front panel.

There is a register that tells you whether there is a signal lock or not, but you need to read that register at the same instant that there is a loss of lock. The way the code works now, it reads the register once every two seconds and almost always if there is an unlock event, it misses reading it.

Edited by user Sunday, April 29, 2012 10:23:50 PM(UTC)  | Reason: Not specified

Corpius  
#27 Posted : Sunday, April 29, 2012 11:33:53 PM(UTC)
Corpius

Rank: Member

Groups: Member
Joined: 2/1/2012(UTC)
Posts: 332
Location: The Netherlands

Thanks: 4 times
Was thanked: 18 time(s) in 18 post(s)
No, not a relay in the signal wires, but between the power supply and IVY. When putting a relay between amp and speakers it will also be in the signal lines. Only other type of signals.

You're telling me that the code can only read unlock events that are longer then a split second. Then it would indeed be useful to have them connected to the front panel.
glt  
#28 Posted : Monday, April 30, 2012 1:52:16 AM(UTC)
glt

Rank: Member

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

I see, should read more carefully :-)

Regarding the unlocks: they only last a fraction of a second. Reading the register only takes a fraction of a second, so you must read the register exactly when the unlock is happening. You could have the code constantly read the status register but then it would be "too busy" to attend to other tasks. (like volume, remote, display). I thought 2-second interval for reading the status register was a good tradeoff between status accuracy and usefulness.
joe102  
#29 Posted : Tuesday, May 1, 2012 11:49:51 AM(UTC)
joe102

Rank: Member

Groups: Member
Joined: 2/15/2009(UTC)
Posts: 2
Location: Austria

Originally Posted by: Russ White Go to Quoted Post
I would definitely use a transistor (with a fly-back diode) to drive a relay.


Hi Russ

On the sidecar there is already an transistor to drive the relais?

Josef
Amaro  
#30 Posted : Wednesday, May 2, 2012 6:52:22 PM(UTC)
Amaro

Rank: Member

Groups: Member
Joined: 8/19/2009(UTC)
Posts: 61
Location: Spain

Thanks: 2 times
Was thanked: 6 time(s) in 6 post(s)
Originally Posted by: Corpius Go to Quoted Post
A better solution to prevent full volume at start-up is to put a relay between the placid HDBP and IVY, instead of between the HD and DAC.

EDIT: Another question came to mind. The lock and mute led are probably controlled by the onboard firmwarm. If this is correct then mounting hem in the front panel had no use.


IVI have a relay to prevent thump buster at start up. You can modify the circuit and control this relay by Arduino.

Regards

gwikse  
#31 Posted : Thursday, May 3, 2012 10:03:05 PM(UTC)
gwikse

Rank: Member

Groups: Member
Joined: 1/19/2011(UTC)
Posts: 332
Location: Oslo, Norway

Thanks: 14 times
Was thanked: 17 time(s) in 17 post(s)
Originally Posted by: Corpius Go to Quoted Post
A better solution to prevent full volume at start-up is to put a relay between the placid HDBP and IVY, instead of between the HD and DAC.

EDIT: Another question came to mind. The lock and mute led are probably controlled by the onboard firmwarm. If this is correct then mounting hem in the front panel had no use.


The leds on my B2 are still operational when running with the hifiduino system. My guess is they are set from the dac chip itself and not by firmware.
elviz  
#32 Posted : Thursday, May 10, 2012 12:33:31 AM(UTC)
elviz

Rank: Member

Groups: Member
Joined: 3/29/2009(UTC)
Posts: 52
Location: Finland

I'd be more worried about about Buffalo resetting to default register values for some reason during playback than Arduino crashing. Initializing the i2c takes some time tho, so you might hear a loud noise for a split second during boot. It's important that first things you do is to init the i2c and mute the dac and go from there. Only after that start displaying cool boot OSD animations and stuff ;). I used my own firmware software, not the Hifiduino one on my particular implementation.

The 0dB "feature" has happened to me a few times during turning on the DAC. It also happened once or twice during playback...maybe an ESD from spdif...dunno...totally random events. These few events happened during couple years time period. Yes, it produced a very, very loud sound and i glad my speakers could take it for those few seconds of total panic and paralyzing terror :).

What i ended up doing is checking once every second or so that the Buffalo volume level matches (regs 0 and 1) the volume level i currently had in a variable (+- channel balance) in the Arduino firmware and then reset the registers they didn't match (i also muted the dac and displayed an OSD message just to see how frequently it reboots/resets). The es9018 ramps up the volume relatively slowly, so instead of getting totally dramatized by the loud volume, you'll barely just get little scared and it is all over before you even react to it and the volume never reaches 0dB. I did not notice any downside of this sound-wise. I tried enabling/disabling it for a while. However using the i2c constantly didn't work too well (every loop() cycle or even once every ~50ms was too much).

However, there must be a better way to do this. For instance by motoring some pin in the Buffalo board using interrupt routine in the Arduino to see if the voltage level raises or goes low. There were thoughts of monitoring if the (empty) firmware socket's power goes down and back up again (if it even does in that case?). But never cba'd to research this further, since the "volume polling" solution worked good enough and the problem occurred very rarely.

Edit: My buffalo (32s of BII) was on 24/7. Might have something to do with that also. However if it never happens with Volumite, it could be some implementation specific issue.

Edited by user Thursday, May 10, 2012 1:02:31 AM(UTC)  | Reason: Additions

glt  
#33 Posted : Thursday, May 10, 2012 5:46:42 AM(UTC)
glt

Rank: Member

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

The volumite is powered by the Buffalo, so if there is a power cycle (intentional or otherwise), the uP in volumite will also power cycle. I have my Arduino powered by the same electrical circuit but different transformer that powers the BII, thus I have never experienced the BII resetting (power cycling) without the Arduino power cycling
Corpius  
#34 Posted : Friday, May 11, 2012 2:51:52 PM(UTC)
Corpius

Rank: Member

Groups: Member
Joined: 2/1/2012(UTC)
Posts: 332
Location: The Netherlands

Thanks: 4 times
Was thanked: 18 time(s) in 18 post(s)
at first I will be using a pre-amp. This is desired in case I mess something up. When the system is stable and well funtioning then the pre will be removed. I don`t know about the constant i2c communication with the dac. I guess this degrades the actual performance of the dac, although elviz writes he can`t hear any differences.

I have been going though the code and tweaked quite a lot. I added more functions for the remote and made it possible to change the gui to show only the selected input or to show all input settings. The code you wrote is perfect for adapting it to your own needs. Thanks for that. Hopefully my dac will be sent real soon, so i can build it and start testing..
Brian Donegan  
#35 Posted : Friday, May 11, 2012 4:35:21 PM(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)
Quote:
I guess this degrades the actual performance of the dac


It does not, unless you have wires in bad places.

As far as faults causing full volume output... it seems like a good idea to design the gains of your system so that the amp running at 0dB signal will not damage your speakers. Then your worse case scenario is just a moment of really loud music. The other benefit is you are closer to full scale levels at normal listening levels.
Corpius  
#36 Posted : Friday, May 11, 2012 9:35:46 PM(UTC)
Corpius

Rank: Member

Groups: Member
Joined: 2/1/2012(UTC)
Posts: 332
Location: The Netherlands

Thanks: 4 times
Was thanked: 18 time(s) in 18 post(s)
I`m not going to adjust the gain of my amplifier, if you are suggesting this. I`m not that scared actually that the dac will reset itself for some reason. When this happens it is likely to be caused a power failure . In this case arduino will also restart so there`s no problem.

For what other reasons could or should the dac reset itself?
Corpius  
#37 Posted : Saturday, June 2, 2012 11:06:32 PM(UTC)
Corpius

Rank: Member

Groups: Member
Joined: 2/1/2012(UTC)
Posts: 332
Location: The Netherlands

Thanks: 4 times
Was thanked: 18 time(s) in 18 post(s)
Is there a way to retrieve information from the dac if there still is a signal is coming in?
I'd like to use this for switching the dac off or to stand-by when there is no signal coming in for about 20 minutes or so.
LeonvB  
#38 Posted : Sunday, June 3, 2012 4:25:46 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)
You could use the lock status or retrieve the DPLL value.
Corpius  
#39 Posted : Thursday, June 7, 2012 8:11:44 PM(UTC)
Corpius

Rank: Member

Groups: Member
Joined: 2/1/2012(UTC)
Posts: 332
Location: The Netherlands

Thanks: 4 times
Was thanked: 18 time(s) in 18 post(s)
I'm not entirely sure, but I thinks it's not possible for me to use the lock status for this. When I have a source connected or just the metronome the lock LED is always indicating that there is a lock.

Because I have not yet connected arduino to the dac I could not test on how to use the DPLL value to determine if there is a signal coming in. The DPLL is used to calculate the sample rate. If I get it right the DPLL value can't be retrieved when there is no signal coming in. Is this correct?

Assuming this is correct:
In the hifiduino code the DPLL value is being retrieved with the Wire.write()/wire.endTransmission(). When there is no data in the wire, it returns 0.

So when I want the switch off the DAC because there is no signal coming in for, lets say 20 minutes, I will have to keep track of the time that only 0 is returned when trying to retrieve the DPLL value. Correct?
LeonvB  
#40 Posted : Thursday, June 7, 2012 8:35:17 PM(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)
That should work. If it doesn't, you could revert to register 27.
Rss Feed  Atom Feed
Users browsing this topic
GuestUser (8)
3 Pages<123>
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.