- Support for 4x20 LCD Display and large number display
- Brightness and contrast adjustment with remote
- (OPUS/Wolfson WM8741) DAC volume control: remote and rotary encoder
- (OPUS/Wolfson WM8741) DAC random filter selection 1 to 5 with remote
- (OPUS/Wolfson WM8741) DAC upsampling selection (L, M, H -this is the OSR setting)
- I2C level shifting (5V to 3.3V)
- Optimized power-up sequence

Wednesday, May 6, 2009

Improving Responsiveness of Rotary Encoder

The rotary encoder was behaving a little flaky. After doing some research I found that this is a common complaint. All mechanical encoders do have noise in their transitions. Since I was using an interrupt routine to detect motion and direction, I was experiencing multiple interrupts within one transition. After some experimentation, I figured I was sometimes getting 3 interrupts within one transition, so that the volume was increased, decreased and increased resulting in no change.

One solution was to write "debouncing" software to ignore spurious transitions. However the software solutions and code examples I found were a little too complicated to my liking and understanding. Adding simple delays in the software in the hope of ignoring the spurious transitions did not solve the problem, and in fact adding too much delay in the hope of masking the spurious interrupts caused the rotary encoder to be somewhat irresponsive.

After some research in the web, I decided then to add capacitors between the A, B terminals and Gnd. At first adding .1 uF did not seem to solve the problem, but it appeared that there was some small improvements. But adding an additional .01 uF solved the problem. I can't explain why adding a smaller value capacitor would solve the problem, since it is expected that larger values are better at smoothing the transitions. But it worked.

The 103 capacitors are .01 uF. The blue capacitors are 104 (.1 uF). They are installed between terminals A-GND and B-GND.


dweeb4 said...

I meant to ask before - how does the WM8741 sound? Lqampizator rates the 8742 up there neck & neck with the SABRE32

Anonymous said...

Hi dweeb4, I like the DAC very much. It reproduces incredible sound. Good recording sound superb and I can't believe it could sound any better. So-so recordings still exhibit that unnatural sound, maybe "digital sound", are still so-so,but with this DAC I hear less of it than with other DACs I've had. Although Sabre is the best, I'm content with the Wolfson DAC. Several manufacturers have chosen this DAC and Lampizator says it is almost as good as SABRE32. I don't think I've spent enough time exploring the different filters. And so, there is plenty of things to explore in this DAC before upgrading...

Dweeb4 said...

Good review. I like the sound of this DAC. Yours is an Opus from Twisted Pear, I think? I'd be more tempted by this than waiting in a queue for TPs next release of the SABRE boards. (I don't think the board design is optimal in the PS & IV stages)

AS well as that you have already coded the remote control of filter selection & other selectable WM8741 DAC settings.

The Learned Nerd said...

dude... THIS IS EXACTLY what i needed for my project!!!

works perfect, easy to implement and understand... THANK YOU!

Rob said...

Thanks from NL! Exactly the bug that bothered me for a few hours. Easy and nice solution!

Thank you very much!