Arduino based remote volume control of SSP/Pass B1

vikoma

Member
Joined
Apr 8, 2012
Messages
76
Points
18
Location
Pune, India
The objective was to replace the potentiometer in Lightspeed attenuator of Pass B1 project with remote controlled arduino.

I recently got SSP and was very pleased with its performance in my system (Rasp Pi -> Peachtree DAC ITx -> SSP -> Norge 1200 power amp). The only thing I missed was remote volume control. Though I had Pass B1 kit (which I have started rigging up only now), I missed Lightspeed attenuator. But even that also has only potentiometer based volume control.

So this is how I did Arduino based remote control:
  1. Get Arduino Uno R3 boards (Approx. Rs. 600).
  2. Also got a small IR board which receives IR signal and conditions it to be received as digital signal for arduino.
  3. Write a Arduino software (on your PC) to drive Arduino uno board:
    • Use IR library, and to recognize the codes from any well recognized IR remote. You only need up/down codes, and then hardcode them.
    • Maintain a level control - say 1 to 25 to track the volume level.
    • Output a PWM signal on one of the analog-out's, corresponding to volume level. It ranges from 0-255; higher corresponds to full 5V output, and 128 to 2.5V. Technically it is a square wave with variable duty cycle.

    The "analog" out is then connected to circuit shown. Basic idea is to use a transistor to drive a constant current circuit, which in turn drives LEDs.

    I bought cheap LDRs (which cost Rs. 5/- each), and physically coupled them with LED light. You can see one of them with black wrapper. I am using heat shrink tube.

    I am attaching a circuitry which is essentially same as Lightspeed attenuator. However our mentor FM omishra reviewed it and pointed out a problem: Shunt LEDs have to darken when Series LEDs brighten. For now, I will only use series LEDs and just use 1MOhm resistance as shunt. (I am totally new to the electronics; so will receive feedback and incorporate them.)

    While it is not yet fully tested in live system, I tested the resistances available to us: It ranges from 50 ohms (when fully bright) to very high (>> 1MOhm) when dark. I am roughly getting about 10 steps of clearly identifiable LED brightness levels. I will change the software to smoothen/control the process later.

    The cost is indeed quite low. Arduino uno R3 board is also available in nano version, costing only Rs. 300/- (without USB-to-serial interface) i.e. you can use in in final version and keep main arduino for other experimentations. Components cost shouldn't exceed Rs. 100/-.

    Attaching pic of my build (I first did it on breadboard; and then on general purpose PCB), and circuit I am using. I will be sharing arduino software later. And perhaps write up a detailed step-by-step approach if you really want instructions for arduino in detail.

    Arduino setup for remote control.jpg

    My LDR based attenuator circuit diagram.jpg
 
This is arduino board and IR receiver. I have kept one LDR (and heatshield wrapper) - which will be put onto LEDs. Their leads are to be taken and used for audio connections like in Omishra's PCB. (We could have used optocoupler LDRs; but they are difficult to source and are also bit costly - I guess in range of Rs. 300/- each.) The "matching of LDRs" step is redundant; we can do that in arduino. I will post details once I finish that software.
4sxld4.jpg


This is the board I made for controlling the LDR. (In essence, arduino is replacement for potentiometer.)
2n04rqs.jpg


And this is the circuit diagram used for the same:
2f0evia.jpg
 
Last edited:
Although cheap LDRs will work they are NOT recommended ..temperature stability etc issues may be there .
the light speed guys done research on that i guess

cheers to the good effort . The arduino can be just a BB-arduino with just a atmega8(cost 90/- with crystal n pf cap,need another duino to program it )on verro or made on home 1laayer pcb with all stuff included

Lastly cermet preset in the final design
 
Although cheap LDRs will work they are NOT recommended ..temperature stability etc issues may be there .
the light speed guys done research on that i guess

The idea was to understand/experience issues firsthand. We can always replace these LEDs with the opto-coupled LDRs. My guess is that the variations (particularly because of heat) will not affect sound quality but affect only the volume.

And then, with arduino, there are other options too. For e.g. one can auto-caliberate the mappings (Volume level --> Analog voltage to transistor --> LED brightness --> LDR resistance read as analog voltage). Of course, this will require additional switches to accommodate this change.

Following changes are in progress:
- Using both series and shunt LDRs: While one goes up, other goes down. I have been able to do this using complementary transistors. But I am worried about whether we can balance resistances accurately. Work in progress.
- Physical buttons for up/down
- Capability to set up/down IR codes at the start so you can use any remote.
- Easy to add volume level LED bar graph.

cheers to the good effort . The arduino can be just a BB-arduino with just a atmega8(cost 90/- with crystal n pf cap,need another duino to program it )on verro or made on home 1laayer pcb with all stuff included
Lastly cermet preset in the final design

Yes, I have to completely figure this out (i.e using arduino on general purpose PCB directly). There are also some nano boards to directly solder and use as needed.

Thanks for inputs and encouragement!
 
i am wholeheartedly there for the diyers .. now-a-days i do some DIY but due to time crunch things remain incomplete..
try some mosfet based design also ,the mosfets will be able to do full off full on at the sharp edges of PWM .
LED driving and controlling methods
->This may not be needed but may make the change smooth.

->mosfet needed is logic level MOSFET, costs pretty less like Rs 4
 
try some mosfet based design also ,the mosfets will be able to do full off full on at the sharp edges of PWM .
LED driving and controlling methods
->This may not be needed but may make the change smooth.

->mosfet needed is logic level MOSFET, costs pretty less like Rs 4

We need a constant voltage for particular volume. We use RC circuit to get almost DC signal. The remaining signal shouldn't affect too much because LDRs respond slowly to changes. (Basically we don't want new frequencies to be added by LDRs.)

Another approach was to use a 8-bit DAC and get constant analog voltage. But we should be good with RC output.

MOSFETs - I am new to that; need to understand the design aspects.
 
A beautiful, well-constructed speaker with class-leading soundstage, imaging and bass that is fast, deep, and precise.
Back
Top