Tuesday, August 15, 2017

Bluetooth Mod for Vintage Radio (2017)

A while back, I noticed a really cool-looking vintage radio at my downstairs neighbour Alex's place. It was a vintage Radione from the early 50s:

Cool-looking radio with a cateye.
It sported a tube amp and a nice, warm sound. Plus it had a cat eye to help with tuning in the center, which just looked out of this world:

Tuning cat eye.
I'd never seen one. It's basically a tiny CRT where the "pupil" gets narrower as you get closer to the exact tuning frequency of a station. There is a cool video of this in action here.

As cool as it was, the radio was not exactly modern, and it couldn't be tuned to much interesting material. Thus, Alex and I thought it would be cool if it could be modified to support Bluetooth. And thus began a saga that would wind up spanning over two years and two revisions.

My first idea was simply to order a cheap Bluetooth radio on the Internet and connect it to the radio's speaker. I ordered a cheap module and set to taking it apart as soon as I received it.

Cheap BT radio from China.

What you seen when you open the radio.

A bit further inside, the battery can be found.

Taking stuff apart.
The first thing I wanted to do was to try to get rid of the LiPo battery. There would be no use for it in the final product, and I was hoping the board would run without it if plugged into a decent 5V supply. Having the battery around seemed like a source of problems; I knew it would be permanently charging, which is not great, and I didn't want the circuit to conk out (or worse, catch fire) if it eventually died.

This turned out to be quite a rabbit hole; the board was clearly not designed for this. When fed 5V directly, the board would just repeatedly power up and down as it seemed to attempt to charge a non-present battery. So, in an attempt to fool the board into booting up, I replaced the battery with a stocky capacitor.

Battery replaced with a fat cap.
This worked - but not perfectly. The board booted up, connected, and played music. I was able to verify that the BT radio could drive the vintage radio's speaker, which sported a 5 ohm nominal impedance. I had suspected that a small amp wouldn't have quite enough power to drive such a low impedance cleanly, but as it turned out, the results weren't too bad! I don't have a picture of the test setup, but a short video gets the idea across well.


In more extended testing, however, the cap was not enough to keep the circuit happy. The board would eventually disconnect, reboot, cut out, etc. It was just generally unreliable. I tried connecting in a gigantic 6.8mF cap to see if I could improve things but nothing really made the situation perfect.

So... I backed up and went to the idea of using the battery again, at least for the time being. I put it back in the circuit and wired everything up again. There was a bit of an annoying repetitive clicking sound that wasn't there when the capacitor replaced the battery; it was produced by the LiPo charger probing the battery to see if it needed an extra bit of trickle.

I was not super satisfied with this state of affairs, but the setup did meet Alex's functional specs, so I put things back together temporarily for a field test and sent the radio back downstairs for a few weeks.

Temporary setup with the BT radio on the outside, along with its power supply. The white cables are connected to the speaker.
The test didn't last overly long. I recommended he run the radio off the battery as much as possible, not only because that avoided the clicking sound, but also because it was also presumably the scenario for which the device was engineered.

Other than the fact that his radio was now effectively limited by the life of the tiny battery, we rapidly discovered another limitation of the system. One night shortly after I gave him the radio back, Alex went to bed peacefully, after having used his radio during the evening. In the middle of the night, the radio blurted out a huge, loud BLEEP BLEEP BLOOP BLOOP sound effect to indicate that the battery was getting low. Alex woke up with a start and asked me shortly afterwards if I thought there was a way around the issue.

This was the perfect opportunity for me to go back to the drawing board and think things over, so I did. I decided to hunt for a Bluetooth radio that would be a better fit for our situation. The root issue with the original BT ratio was that I was trying to shoehorn a device built for low-power, mobile applications into a permanent fixture with high power requirements; all the problems I ran into stemmed from that. Thus, I went on the hunt for a standalone BT board as well as a small amp to drive the speaker.

This was an on-again, off-again hunt for some time. I wound up buying a handful of cheap PAM8403 boards I thought I might be able to use. I was sort of starting to think about getting just a regular BT retrofit adapter that just needs a 5V supply and outputs to an 1/8" jack when I stumbled upon a nice sub-$10 board that not only included Bluetooth but also a 25W+25W TDAP7492 on-board amp. Bonus! I ordered a pair right away and tested them as soon as they came in.

Testing the BT/TDAP board.
I had replaced all the problems with the original board with a legitimately interesting new one: this board was meant to output stereo, but I only had a mono channel to drive.

In order to figure out how to best do so, I had to learn a bit about how the TDAP7492 works. As it turns out, it sports what is called a "Bridge-Tied Load" configuration. This basically means that for each channel, there are two amplifiers producing mirror images of the amplified source signal. The "load" (in this case, a speaker) is "tied" between the outputs of these mirror-image amplifiers. Compared to a channel where one end of the speaker is tied to a single amplifier and the other is tied to ground, a bridge-tied load sends double the voltage into the load.

As it turns out, the board I bought actually has two amplifiers on-board, because there is a NE5532 pre-amplifier before the TDAP7492. Thus, this left me a few possibilities for mono output.

A quick google search rapidly revealed that the BT module on the board (a CSR8635) supported mono output via software configuration. The cleanest way to handle the issue would have been to activate this mono mode. However, I would also have needed to purchase a custom programmer worth around five times the price of the board. In addition, there was a chance I'd need to take the BT module off the board to be able to successfully reprogram it, which would have meant a decent amount of awkward desoldering and resoldering. That seemed like asking for trouble. Seeing as how I had a few analog options around this issue, I thought I might try my hand at these before going down the software route.

The first thing I tried quickly was simply to tie the speaker between the non-inverting output of one channel and the inverting output of the other. Here is a video of this test.


This worked, but there were two problems. Firstly, when cranked too loud, the amp would cut out. I'm far from being an amplification expert, and I don't know exactly why this happened, but I suspect it's because the stereo signal is not identical across both channels, resulting in some kind of unwanted and unexpected asymmetric power draw. For example, normally, since the speaker is being driven by voltages which are exactly the opposite of one another, there is a no net DC bias in the signal. However, the slightest difference in DC bias between the left and right channel will actually show up across the speaker when it is tied across channels. This unexpected flow through the amplifier probably caused a failsafe to kick in momentarily.

The other issue was that I could hear much more noise from the amp in this configuration. Though not as major a problem as the intermittent cutout, it was still annoying.

My next idea was to try to downmix the stereo to mono somewhere on the board, either between the BT module and the NE5532 or between the preamp and the TDAP. I saw a comment on the page of the product that suggested it was possible to short the op-amp outputs on this board. This didn't sound like a great idea to me without involving any kind of resistor bridge, but I figured it was simple enough to try out with a few probes, so why not - I had two boards. :-) It was apparent very quickly that this approach was terrible. There was a tremendous buzzing noise and the amp just didn't sound happy.

I switched tacks and had a look at the preamp input instead of its output. I knew the input on the NE5532 was high-impedance, so it seemed possible to downmix upstream, but I couldn't find much documentation about the output stage on the CSR8635 so I decided to just try it out. I shorted the left and right channel inputs together pairwise, inverting with inverting, non-inverting with non-inverting. There were resistors between the NE5532 inputs and the CSR8635 outputs, so I was hoping they'd help me with the downmix without having to lift components off the board and start jumpering stuff.

Downmixing between BT module and preamp.
This gave an interesting result; the signal was definitely mono, but it lost a tremendous amount of its quality. Fail. Again, I don't know enough about amps to know exactly what was going on here, but I suspect perhaps the resistors on the board were not sufficiently large to prevent the CSR8635's output stage from getting overworked. Normally the CSR's outputs were being fed into the high-impedance NE5532 inputs, which meant the had to pump very little power, but with the shorts in place, there was an effective load placed on the CSR's output drivers any time the two stereo channels didn't match. I backed off this idea and went back to the drawing board.

I started thinking a bit about ways to tie the load across the two channels without imparting a DC bias on the signal, and came up with a simple resistor bridge configuration that would allow me to downmix after the power stage. The trick would be to select resistors that were large enough to prevent overworking the amplifiers outputs (because the two channels are effectively working against each other to reach an average voltage), but low enough to prevent the speaker volume from dropping too low. It would also be important to get the four required resistors to match just so, to avoid any bias.

Simple resistor bridge configuration.
I made a bunch of tests with the resistors I had on hand and determined that 28 ohms per resistor was just about what I needed. In order to reach this value precisely, I tied 10 resistors together (8 301-ohm resistors and 2 220-ohm resistors) four times over, for a total of 40 resistors. (Statistically, the intolerance of my resistors cancelled out reasonably well.)

4 10-resistor bundles weighing in a 28 ohms each.
This worked perfectly! Time to put things together. I used a three-pole, dual throw switch to toggle the power to the board and multiplex the connections to the speaker at once. In one position, the BT amp is on, and the speaker is connected to it; in the other, the BT amp is off, and the original radio circuitry is connected to the speaker.

Lots o' wires into that 3P2T.
I took apart the DC switched-mode power supply and soldered some leads directly to its board.

Taking apart the DC SMPS.

Soldering leads directly to the DC SMPS.

Putting the SMPS back together.
Then, I shunted some power from the radio's main supply. This was actually a tricky soldering job because of the way the radio was put together; I couldn't take the whole thing apart without considerable effort, so I made use of creativity to reach the solder points I required.

Jacking up the amp circuitry so I can reach the AC input stage.

Another angle to the madness.

Gotcha! My black and red leads can feed power to the DC power supply.

I kept on assembling stuff.


Coming together.

3P2T switch mounted in the corner of the radio backplate.

Mounting DC PSU and BT radio to the inside of the radio case.

Routing wires, with a particularly creative job involving foam on the resistors. (I found my cable tiedowns after the project was completed.)

Final cable routing.

Another view of the final routing.
Finally it was time to close everything up.
Closing things up.

Final external appearance change.
And there you have it! Here are a pair of videos demonstrating the final product.



No comments:

Post a Comment