A remote control preamp in the works

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Not bad, I've written some code for an Android phone which is bluetooth enabled.

It controls the sources, and a stepped attenuator.

I think it's easier to write for Android - I believe it's Java?

I've never had a developer license for IOS, and I haven't written Objective C, so I think the learning curve is a bit more than I want to take on at the moment.

I was hoping I could find a simple framework that would let me create simple applications without getting too deep into IOS, but so far no luck.

I may be able to get the preamp to connect to my desktop Mac (which has bluetooth), and then create a simple web app that I can use.

But for now I'm enjoying the music and working on refining the hardware and software.
 
A squirrely remote

Everything has been going well - listening to tons of music. There are a couple of things I want to fix, but one of them really surprised me.

I have a robot floor cleaner (used to be called a Mint, now owned by iRobot, and has a new name which I forget). It wanders around scrubbing my hardwood floors, thus releasing me to inhale solder fumes and the like.

It communicates with a base station, apparently using IR. My software is very undiscriminating - it takes the IR input, and masks all but 3 bits, then dispatches a command. Apparently the robot also emits those values, because I found it happily running around my living room, changing the input!

It took me a while to figure out what was going on, because I always tend to assume it's my messy soldering when something goes wrong (and it usually is, but not this time).

So I'm going to do a couple of things - first train the preamp to listen to my Naim CD player's remote so I can use one remote for both; and then to make it more discriminating by having the software check the whole string of bits, so it's less likely to be fooled.
 
I'm using a TSOP4838 receiver, and the Apple remote, which I believe uses a variant of the NEC protocol. I'm in the process of changing to the remote for my Naim CD player which works at the same frequency (38KHz), but emits different codes.

I notice there is a different receiver that is designed to have higher interference immunity, but I think the issue is that I'm not being sufficiently discriminating in looking at the code in my software.
 
I notice there is a different receiver that is designed to have higher interference immunity, but I think the issue is that I'm not being sufficiently discriminating in looking at the code in my software.
I guess that is possible. I am too having an issue with my IR remote control code. I need to write an interrupt driven rc5 decoder it seems The current implementation does not seem to work very reliably, as it a call the rc5 decoder code, from the main loop, so i believe the delay is causing the routine to miss codes that are being sent out. I built my own rc5 transmitter, using a tiny 2313. Codes look to be transmitted properly when I look on the scope, but the rx drops commands.
Rick
 
Try putting an oscilloscope or logic analyzer on the output of the IR receiver. You should get a good idea if the signal is being picked up and sent to your microcontroller.

I have my IR routine in a loop that is also processing rotary encoder and ultimately bluetooth commands, and I've never seen anything dropped. I don't use interrupts for the IR, although the rotary encoder library does.

My strategy is to have the IR and encoder routines look for one command, and process it quickly and return. The goal is to keep the main loop spinning fast, and to have one small transaction happen each time around. It would be unusual in my case to have rotary encoder and IR commands interleaved, but the code is designed to handle it.

Are you using a library for processing IR commands?
 
Let us know how it goes...

I'm planning to do some rebuilding either this weekend or next...it's Oktoberfest around here this weekend...may be difficult to focus...

I want to make the volume control move faster at the extremes, but slow at the area close to where I usually listen, and to move the DSP from between the two stages of the preamp to a position directly after the input switching. I'm afraid I'm getting overloading / clipping with loud music.

Input limit for the DSP is 2V, which is the same as the max output of the CD player and DAC. The first gain stage of my preamp gives me 2x gain.
 
It's great having the chance to play with the software. I hacked on the volume control so it is sensitive in the middle, where I mostly listen, but it moves much faster at the extremes, so I don't have to wind the knob ten times to turn it down.

I also, and more significantly, moved the miniDSP from the middle of the signal chain (between the two gain stages of the preamp) to the front, right after the relays. This eliminates the chance of overloading, and everything is sounding really good.

Next step is to implement the PGA2310 volume control. I've put together a little breakout board, and am almost ready to hook it up to the Arduino and the preamp. It's a bit fiddly - control lines and signal lines - but I hope I'll be able to get it working next weekend.
 
Good news.
I have a working prototype using the PGA2310/11/20, using a xmega xm128a1. The PGA2320 is newer and slightly better performance on paper than the 2310.
I use a Bourns rotary encoder as the volume control.
I have heard that the Cirrus Logic CS3318 is a top performer and great for a muti-channel app. Another one on my list.
Since I have a few projects on the go, I like to take a break from one and go to another.
Yesterday, I finally took apart an old Kenwood KR-5030(basement amp) that has a bad power switch. Needed to take the switch assembly all apart and sand down the arcing contacts. Now that i have it apart, figuring if I am going to at least re-cap it. Used Deoxit on the switches/pot to clean them up as well.
Not sure if i told you that I designed/made a portable radio media player, that I am still writing code for.
My antenna on the roof has a seized rotor, so bought a new Channel Master rotor/controller. Plan on reverse engineering it (contains a pic mcu) and fold in a antenna rotor controller into the radio software. Now the big problem is to change the rotor sitting at 40 feet?

Take care
Rick
 
Last edited:
Yes, I exchanged emails with Linuxworks, a while back, I wonder if he found a job, he is a really nice guy. He said he preferred the CS3318 over the PGA2320.
Too bad you could not compare the PGA2310/20 vs the CS3318 then make a decision/choice based on that.
I designed a digital/analog 7.1 ch pre-amp a few years back now, that I never fab'd using PGA4311 & 2320. If I was to fab, I'd probably change it to CS3318, as it saves a lot of pcb area.
Kind of hard making an arbitrary decision based on reading a data sheet.
In my portable, I used a Maxim MAX9729. It works very well for what I ask it to do. Was not too concerned about THD #'s since I have used a TPA3100D2 class "D" amp, so it is the dominate THD source. I did measure MAX9729 THD and it was exactly as they sped'd 0.03%. It is a wonderful part. The DFN package is PITA for hand assembly but I have it figured it out now.

Cheers
Rick
 
Last edited:
I think the PGA's distortion, if properly implemented, will be so much lower than the recording studio or my speakers, so I don't think I really will be worrying about distortion. Noise is a concern, however - I'm enjoying the totally silent system I have now (even with 25' cables between preamp and power amp, and all the digital circuitry in my preamp).

I don't have a refined way to measure distortion - my best theory so far is to put clean sine waves through the system and look at an FFT on my oscilloscope...

tim
 
While the CS3318 is nice, it is much less DIY friendly than the PGA23xx. This is because of the package it comes in (48-pin LQFP) is tricky to solder, it's very easy to damage the chip if connected incorrectly and it uses 3.3V as opposed to 5V. All of these things can be overcome but it's not like you can quickly whip up a prototype to play with like you can with the PGA ICs.
 

6L6

Moderator
Joined 2010
Paid Member
Tim,

Great thread! Wonderful documentation. I wish I would have seen it sooner.

Are you powering the Bugle2 via it's own wallwart or going to use the PSU for the rest of the circuit? Just curious.

How has this preamp progressed? Is it done? Is it waiting some debugging and collecting dust? I wold love to see more photos.
 
Tim,

Are you powering the Bugle2 via it's own wallwart or going to use the PSU for the rest of the circuit? Just curious.

Thanks for your kind words. Because of the sensitivity of the front end, I decided to power it from its own external power supply. It works really well, and I didn't want to risk any noise injection from any of the other circuitry.
How has this preamp progressed? Is it done? Is it waiting some debugging and collecting dust? I wold love to see more photos.
The preamp has been in use for a while, but I wouldn't say it's quite complete.

Here's the list of issues:

  1. There's a glitch in the software for the rotary encoder that makes it too sensitive. Fixable, but I need to look at it carefully.
  2. The relay board sucks up a lot of power when first energized, and that means that the Minidsp board doesn't always power up correctly. The fix is to use an additional relay to delay turn on for the relay board (which would be good anyway, because it shouldn't really be powered up until the microcontroller is ready to control it).
  3. Recently I lost one channel - it appears to be a failure in one side of the analog preamp, not a switching problem, so I need to debug the analog circuitry more carefully.
Aside from these things, the sound is superbly clean, and a solid recommendation for the analog preamp and Minidsp, which are doing all the work. The system is entirely noise and hum free, which was my biggest worry.

Recently I've been busy with other things (sitting Architectural Registration exams, for one), and so I have been neglecting my audio system.

But if you're interested I can post the source code (maybe you can improve it?).
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.