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

Notification

Icon
Error

Login


15 Pages«<678910>»
Options
View
Go to last post Go to first unread
SCompRacer  
#141 Posted : Tuesday, March 12, 2013 4:53:28 PM(UTC)
SCompRacer

Rank: Member

Groups: Member
Joined: 1/6/2012(UTC)
Posts: 305
Location: Plainfield, IL

Thanks: 11 times
Was thanked: 26 time(s) in 21 post(s)
Originally Posted by: Brian Donegan Go to Quoted Post


Do you just need a pull-down resistor?


I have a 10K resistor in the OTTO II from S to GND, if that's what you are referring to. OE to GND is jumpered.

When I first installed an OTTO II in my Denon I noticed they don't switch immediately without a pull up resistor. They hang or stick for several seconds before switching. The Denon has a manual switch to activate OTTO and corrects a R and L channel reversal exporting DSD.

Edited by user Tuesday, March 12, 2013 4:54:16 PM(UTC)  | Reason: Not specified

DQ828  
#142 Posted : Tuesday, March 12, 2013 9:24:52 PM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
Thanks for the info, my problems seem to be growing rather than shrinking, I think most of the issues are software related, but not in the Otto's case

I do have the 10k resistor between S & Grnd, and the jumper between between OE & GRND.

I haven't tried it manually as yet.

Is there a way to test the IC to see if it's ok?

The BIII SE plays beautifully with the firmware chip out & no connection to the Arduino Anxious

Edited by user Tuesday, March 12, 2013 9:25:36 PM(UTC)  | Reason: Not specified

DQ828  
#143 Posted : Thursday, March 14, 2013 12:33:22 PM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
Originally Posted by: Corpius Go to Quoted Post
That's exactly how I switch my OTTO.

Is the relay switching? jumper installed between OE and GND?


Corpius

Your PM box is full & I failed trying to ask a question on your site,

You don't have a part number for the fuse & headers you used for the Signal Detection boards do you?

DQ
Corpius  
#144 Posted : Thursday, March 14, 2013 6:54: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)
I was not aware that my inbox was full. All messages are deleted.

The fuse holder I used was bought at a local shop, but it's similar to this one: http://www.digikey.com/p...0001003/WK6244-ND/151822

This is the cap: http://www.digikey.com/p...44?k=648%20little%20fuse

The headers can be any header that has a pin spacing of 2.54mm or 2.50mm. I used JST XH series. Similar to this one:

.

Edited by user Thursday, March 14, 2013 6:58:59 PM(UTC)  | Reason: Not specified

DQ828  
#145 Posted : Thursday, March 14, 2013 9:16:04 PM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
Originally Posted by: Corpius Go to Quoted Post
I was not aware that my inbox was full. All messages are deleted.

The fuse holder I used was bought at a local shop, but it's similar to this one: http://www.digikey.com/p...0001003/WK6244-ND/151822

This is the cap: http://www.digikey.com/p...44?k=648%20little%20fuse

The headers can be any header that has a pin spacing of 2.54mm or 2.50mm. I used JST XH series. Similar to this one:

.


Excellent thanks, I couldn't find the boards you sent me to check the measurements & didn't want to guess, I know they are round here somewhere!
Russ White  
#146 Posted : Sunday, March 17, 2013 2:15:26 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)
It appears this thread is not locked right now. :) It may have been inadvertently locked at some point. Apologies for any inconvenience.

Edited by user Wednesday, March 20, 2013 12:19:50 AM(UTC)  | Reason: Not specified

DQ828  
#147 Posted : Sunday, March 17, 2013 9:39:08 PM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
I have been battling away trying to get the rotary encoder switch to work, you would think it was the simplest thing in the world to do but I have tried everything to no avail. I have changed the code to use the remote instead of the rotary encoder so I can change the BIIISE input parameters I would still like to get the switch working so I don't have to use up the limited remote keys, but I'm completely stumped with what is stopping the switch working.

I have also been trying to rotate the screen via the software but once again I have spent long hours playing with the screen controller .H file with no success. The software author says it's possible, but obviously not for me.

The screen is smaller than the one I used for the first DAC but it is definitely better, it's crisper & can be viewed from almost any angle. It's looking like I'm going to have to pull the thing apart & rotate the MEGA. I need to do it soon as my neck is killing me.
DQ828  
#148 Posted : Tuesday, March 19, 2013 8:32:44 AM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
I've managed to get most things working, the Rot encoder switch still doesn't work (seems hard to believe) I have applied a carpenters solution to the upside down screen as you will see. The sample rate display is a bit flacky when inputting from the computer, no idea why. I've managed to cram all of the info into the smaller screen.

It's probably time to connect it to the main system to see (hear) what it really sounds like.

UserPostedImage

UserPostedImage
Russ White  
#149 Posted : Wednesday, March 20, 2013 12:20:56 AM(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)
Great progress! Keep it up. :)
Corpius  
#150 Posted : Wednesday, March 20, 2013 7:51:25 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)
Originally Posted by: DQ828 Go to Quoted Post
the Rot encoder switch still doesn't work (seems hard to believe)
Do you have some pictures of the connections to and from the encoder or perhaps a drawing that shows how it's connected?

Have you set the pins that connect to terminal's A & B as inputs with the internal pull-ups? Which encoder are you using?

DQ828  
#151 Posted : Wednesday, March 20, 2013 10:04:21 PM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
Originally Posted by: Corpius Go to Quoted Post
Originally Posted by: DQ828 Go to Quoted Post
the Rot encoder switch still doesn't work (seems hard to believe)
Do you have some pictures of the connections to and from the encoder or perhaps a drawing that shows how it's connected?

Have you set the pins that connect to terminal's A & B as inputs with the internal pull-ups? Which encoder are you using?



In the end I have abandoned the HW debounce for the rotating part of the encoder, I am doing a straight connection from the A & B pins to pins 17 & 19 and ground of course, this part of the encoder is working.

It's the simple part of the encoder that's not working, the push button switch! I think it must be something in the code, as the switch is connected from Pin 7 to Ground, the Pin is set high & I the pin goes low when I press the button, I have checked with the multimeter that the pin is 5v then goes to 0V when the button is pressed.

#define SELECTPIN 7 // Rotary Encoder Switch to select function

#define INTERVAL_SWITCHBOUNCE 200 // Time in milliseconds to debounce switch

pinMode(SELECTPIN, INPUT); // Button switch or pin for encoder built-in switch
digitalWrite(SELECTPIN, HIGH); // Enable pull-up resistor


In Void Loop

if((digitalRead(SELECTPIN)==LOW)&&((millis()-debounceMillis)>INTERVAL_SWITCHBOUNCE)) {
selectMode=true; // Now we are in select mode
printSelectBar(); // Indicate we are in select mode
debounceMillis=millis(); // Start debounce timer
selectMillis=millis(); // Start being-in-select-mode timer

select++; // Move to next select option

myGLCD.setColor(255, 255, 0);

if(SRExact==true) {
myGLCD.setFont(BigFont);
myGLCD.setColor(255, 0, 0);
// myGLCD.print("SR Disp:", 250, 5);
myGLCD.print("Exact ", 250, 5); // Indicate Exact mode
}
else {
myGLCD.setFont(BigFont);
myGLCD.setColor(255, 0, 0);
// myGLCD.print("SR Disp:", 250, 5);
myGLCD.print("Nom ", 250, 5); // Indicate NOMINAL mode
}

switch(select%(MAXPARAM+3)){
case VOL:
break;
case INP:
myGLCD.fillRect(157, 40, 162, 64); // Input
break;
case INF:
myGLCD.fillRect(0, 1, 5, 23); // Input format
break;
case FIR:

ETC

I have set up a remote key to do the switch function & then I can use the rotating part of the encoder to do the selection, but this takes up 1 of the very limited remote keys so it would be great if I could get the switch working.

What worries me now, is that it will be like the guy who spent 3 weeks trying to get his computer working only to realise he hadn't plugged it in :)

Edited by user Thursday, March 21, 2013 5:45:29 AM(UTC)  | Reason: Not specified

Corpius  
#152 Posted : Thursday, March 21, 2013 8:39:39 AM(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)
Which value holds "select" when you enter the switch function? Perhaps "select" holds a value that does not exist in the switch. You can use the Serial.println function to show which value it holds.

Serial.println(select, DEC);
DQ828  
#153 Posted : Thursday, March 21, 2013 11:49:54 AM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
Originally Posted by: Corpius Go to Quoted Post
Which value holds "select" when you enter the switch function? Perhaps "select" holds a value that does not exist in the switch. You can use the Serial.println function to show which value it holds.

Serial.println(select, DEC);


I found the power plug :)

It was a @*%*&$# "}" semicolon in the wrong place, I cannot believe the hours of torture I went thru because of one }. Of course it would compile fine but then wouldn't work.

Thanks for the help. Now I am going to try put in a balance function, so the left channel goes up say 6dB & down 6dB and have a bar display on the screen to show where it is.

I would like to change the display away from -dB to the standard 0 to 100 where the 100 is full volume, any ideahow to do that?
Corpius  
#154 Posted : Thursday, March 21, 2013 12:46: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)
Change "(dimval\2)" to "99-(dimval\2)"

that would make the volume number go from 0 to 99
DQ828  
#155 Posted : Thursday, March 21, 2013 10:27:49 PM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
Originally Posted by: Corpius Go to Quoted Post
Change "(dimval\2)" to "99-(dimval\2)"

that would make the volume number go from 0 to 99


Excellent thank you.

I had to do a couple of extra tweaks to get it to display properly.

DQ828  
#156 Posted : Friday, March 22, 2013 11:38:52 AM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
Hmm, as I imagined getting the balance to work properly is going to be a challenge :)

It works, but not what you'd call properly.
DQ828  
#157 Posted : Sunday, March 24, 2013 7:50:39 AM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
Thanks to my EX I have managed to get the balance function operational. Improvements will follow so that the balance can be held when the volume is changed, at the moment the balance levels out when the overall volume is changed, I am told this can be overcome. I will also work on having the display show the balance as a series of bars. I had worked a lot of this out but couldn't quite get it over the line, well that's my story anyway :)

byte currLBal=DEFAULTATTNU; // Variable to hold Left Balance Value

byte currRBal=DEFAULTATTNU; // Variable to hold Right Balance Value

void setSabreRBalance(byte regVal)
{
writeSabreReg(0, regVal); // set up volume in DAC1
writeSabreReg(2, regVal); // set up volume in DAC3
writeSabreReg(4, regVal); // set up volume in DAC5
writeSabreReg(6, regVal); // set up volume in DAC7

}

void setSabreLBalance(byte regVal)
{
writeSabreReg(1, regVal); // set up volume in DAC1
writeSabreReg(3, regVal); // set up volume in DAC3
writeSabreReg(5, regVal); // set up volume in DAC5
writeSabreReg(7, regVal); // set up volume in DAC7

}

case 377: // BALANCE LEFT 377 is return for C1+C2+C3 it was "4" is the APPLE LEFT Key

if (currAttnu>MINATTNU && poweron) // Check if not already at minimum attenuation
{
if(dimmed) {
rampUp(); // Disengage dim
dimmed=false;
}
currLBal-=2; // Increase volume 1 db
setSabreLBalance(currLBal); // Write value into registers
currRBal+=2; // Decrease volume 1 db
setSabreRBalance(currRBal); // Write value into registers
//dispVol(currAttnu);
}
break;

case 376: // BALANCE RIGHT 376 is return for C1+C2+C3 it was "3" is the APPLE RIGHT Key,

if (currAttnu>MINATTNU && poweron) // Check if not already at minimum attenuation
{
if(dimmed) {
rampUp(); // Disengage dim
dimmed=false;
}
currRBal-=2; // Increase volume 1 db)
setSabreRBalance(currRBal); // Write value into registers
currLBal+=2; // Decrease volume 1 db
setSabreLBalance(currLBal); // Write value into registers
// dispVol(currAttnu);
}
break;

case 378: // VOLUME UP 378 is return for C1+C2+C3 it was "5" is the APPLE UP key, we will use for volume up
if (currAttnu>MINATTNU && poweron) // Check if not already at minimum attenuation
{
if(dimmed) {
rampUp(); // Disengage dim
dimmed=false;
}
currAttnu-=2; // Increase volume 1 db
currLBal = currAttnu; //Keep the values in synch
currRBal = currAttnu; //Keep the values in synch
setSabreVolume(currAttnu); // Write value into registers
dispVol(currAttnu);
}
break;

case 379: // VOLUME DOWN 379 is return for C1+C2+C3 it was "6" is the APPLE DOWN key, we will use for volume down
if (currAttnu<MAXATTNU && poweron) // Check if not already at maximum attenuation
{
if(dimmed) {
rampUp(); // Disengage dim
dimmed=false;
}
currAttnu+=2; // Decrease volume 1 db
currLBal = currAttnu; //Keep the values in synch
currRBal = currAttnu; //Keep the values in synch
setSabreVolume(currAttnu); // Write value into registers

dispVol(currAttnu);
}

Edited by user Sunday, March 24, 2013 10:12:56 AM(UTC)  | Reason: Not specified

Corpius  
#158 Posted : Sunday, March 24, 2013 3:19:20 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)
Originally Posted by: DQ828 Go to Quoted Post
Thanks to my EX I have managed to get the balance function operational. Improvements will follow so that the balance can be held when the volume is changed, at the moment the balance levels out when the overall volume is changed, I am told this can be overcome. I will also work on having the display show the balance as a series of bars. I had worked a lot of this out but couldn't quite get it over the line, well that's my story anyway :)


You should write the offset of both the left and right channel to the EEPROM. Retrieve these values when starting the DAC and add or subtract these from the volume level for each channel. You should use a integer type to hold the values as these can also hold negative values.
Simple add these values to 'currAttnu' each time when when you set the volume.

fi. when you set the left channel to have an offset of -4 db to the right channel, then store the value -4


int offSetLeftCh; // variable to hold the left channel offSet
int offSetRightCh; // variable to hold the right channel offSet

void setSabreRBalance(byte regVal)
{
regVal = regVal + offSetLeftCh;
writeSabreReg(0, regVal); // set up volume in DAC1
writeSabreReg(2, regVal); // set up volume in DAC3
writeSabreReg(4, regVal); // set up volume in DAC5
writeSabreReg(6, regVal); // set up volume in DAC7
}

void setSabreLBalance(byte regVal)
{
regVal = regVal + offSetRightCh;
writeSabreReg(1, regVal); // set up volume in DAC1
writeSabreReg(3, regVal); // set up volume in DAC3
writeSabreReg(5, regVal); // set up volume in DAC5
writeSabreReg(7, regVal); // set up volume in DAC7
}

IR stuff

case 378: // VOLUME UP 378 is return for C1+C2+C3 it was "5" is the APPLE UP key, we will use for volume up
if (poweron)
if ((currAttnu+offSetLeftCh)>MINATTNU || (currAttnu+offSetLeftCh)>MINATTNU ) // Check if left or right channel is not already at minimum attenuation
{
{
if(dimmed) {
rampUp(); // Disengage dim
dimmed=false;
}
currAttnu-=2; // Increase volume 1 db
currLBal = currAttnu; //Keep the values in synch
currRBal = currAttnu; //Keep the values in synch
setSabreVolume(currAttnu); // Write value into registers
dispVol(currAttnu);
}
}
break;


Volume function

setSabreVolume(byte regVal)
{
void setSabreRBalance(byte regVal); // set volume of right channel
void setSabreLBalance(byte regVal); // set volume of left channel
}

Something like this :)

You can have a look at my code to get an idea on how to display a bar which size depends on the volume offsett. In my code I generate a bar that indicates the brightness level of the LCD.

http://ce-designs.net/in...nloads/16-ce644-firmware
or
http://ce-designs.net/in...nloads/17-ce328-firmware

the 'bar' functions can be found in both the codes. look for the display functions.

Edited by user Sunday, March 24, 2013 3:23:02 PM(UTC)  | Reason: Not specified

thanks 1 user thanked Corpius for this useful post.
DQ828 on 3/24/2013(UTC)
DQ828  
#159 Posted : Sunday, March 24, 2013 9:16:45 PM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
Excellent, thank you.

Some bad news, I finally gave the system a run, during the extensive testing the IR never missed a beat once the IR codes where changed.

When I started using it in my main system it wasn't long before the IR response went haywire & locked up completely, once again I think it may have something to do with the Squeezebox remote, which was able to make random changes.

The sound was very nice but I was a bit distracted by the remote issue. I also have an electricity supply issue which causes random noise to be injected into everything that has a ballast or transformer even SMPS suffer, the noise did appear to be worse with the new DAC in place! Of course the electricity supply company say it's all within limits & there's nothing that can be done!!. It's been driving me crazy for years.
DQ828  
#160 Posted : Monday, March 25, 2013 1:09:37 AM(UTC)
DQ828

Rank: Member

Groups: Member
Joined: 8/17/2010(UTC)
Posts: 368
Location: australia

Thanks: 8 times
Was thanked: 3 time(s) in 3 post(s)
Corpius

I see you are using the #include <IRremote.h> for the remote coding, I used this in my first DAC and in the end it worked faultlessly, the only problem was the that code seem to stop the Touch code from working which I was hoping to use in this DAC.

Why are you using the #include <IRremote.h> rather than the HiFiduino approach?
Rss Feed  Atom Feed
Users browsing this topic
GuestUser (57)
15 Pages«<678910>»
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.