• You can now help support WorldwideDX when you shop on Amazon at no additional cost to you! Simply follow this Shop on Amazon link first and a portion of any purchase is sent to WorldwideDX to help with site costs.

uPD 858 ssb chassis arduino control

TM86

Supporting Member
Jul 6, 2014
1,734
2,687
273
Payson, AZ
Or, "A Tale of Two Robyns."

Another hair brained idea that I just had to try. This is not a DDS VFO or anything like that.

Two Robyn SB-510Ds that have the "flexi-pcb" connecting the channel display and channel selector together and then on to the PLL. Well, as you probably already know, these things tend to have the traces break if they're actually flexed a bit. And both of these radios have that small problem.

So I decided to rewire it. And since I'm in there, might as well have a little fun.

So I took an Arduino Pro-Mini, two MCP23017's, and a bunch of 1k resistors and made a replacement for that cable. The whole idea is to keep the original channel display and channel selector as much as possible.

And since I'm a jerk, I'm going to make you follow along as I put the second one together. Because I didn't document the first one.
 

I'll start off with a shot of what's in the first radio.
IMG_2056.jpeg
As you can see, some loose stuff floating around and some different colored wires. Exciting, I know.

The reason for that transistor looking thing off by itself is that I found out the hard way that I couldn't draw my +5 volts from a readily available source near the PLL. The excess current draw pulled the voltage down below the threshold that allowed the rest of the circuit to work. So a quick change to feeding the new parts through a LM7805 and I was in business. That will be included in the next version.

Unless I screw up.

Again.

You may also be able to see some of the parts that shouldn't be there. Everything is mounted on strip board.

I've wired the channel selector straight into the Arduino. The pins are polled and a table lookup done to figure out the channel. The data for controlling the PLL and the channel display then gets sent via i2c bus to each of the MCP23017s.

I've also made a provision in the Arduino sketch for two additional "bands" of channels and a +10kc jump. Not implemented on the first radio although I did test those functions using bits of wire as substitutes for switches.
 
A shot of the second radio before I get started butchering... er... working on that one.
IMG_2057.jpeg

And some of the materials I'll be using.
IMG_2059.jpeg
I need to order some more 4.7k resistors for the i2c bus pullups. Oh, and some insulating washers for the LM7805 so I can mount it somewhere and not have it flopping around like it is in the first radio.

And yes that is a TLR-321 dual seven segment display. The leads on the original one in the radio are cut way too short to use with strip board. If I grind the little plastic corner standoffs down flush with the rest of the body, a new one will just barely work. Have to be careful not to grind off the leads in those corners, though, or it's time to track down and order another TLR-321 or two.
 
For some reason some folks like this kind of pics, so here's the initial setup of the Arduino:
IMG_2060.jpeg
It's just the two rows of pins in a chunk of perfboard. They're spaced so the Pro-Mini board will drop right on top of them.
IMG_2062.jpeg
Then I solder opposing corners. Just my habit. After that it's just soldering all the pins to the board. Next I lay the board on it's back with something to prop it up to make the programming pins at least sort of straight when I solder them:
IMG_2064.jpeg
Then take that and the other major components and check if I can fit it all on one board, even if I am going to cut it up. I also figure out where to cut.
IMG_2067.jpeg
Once I've cut out and cleaned a chunk of strip board I solder the Arduino to it, then start making cuts. A bit backwards, but it seems to work better for me.
IMG_2071.jpeg
Once that's done I make any remaining trace cuts I think I'll need and install the remaining components. Then I figure out where I need yet more cuts, and install the wires that are staying within the board.
IMG_2073.jpeg
Red wire is +5, black is ground, blue is i2c clock, white is i2c data. I did find some more 4.7k resistors for i2c bus pull ups. The resistors you can see along the edges of the board are 1k pull down resistors for the channel selector on one side, and for "other functions" on the other. You can also see the 5volt regulator and its caps towards the one corner of the board.

This is everything needed for the controller board. The channel display and two IO expanders are all going to be on their own little boards that I have yet to cut out of the main piece of strip board I started with.
 
First thing I would do is lose the stock channel selector and replace it with a proper gray-code encoder.

Sure would save a lot of wires.

We used a 28-pin PIC back in the 90s. Had enough pins to drive two LED digits directly, two pins to drive a simple shift register for the 9 PLL input pins. Left two pins for the encoder. Not one wasted pin on that design.

The 23017 rocks! Never have used it, but you could put it on a 'daughter' board, soldered to the main pc board in place of the PLL, with a socket on top for the PLL chip. Would really reduce the wires with only power, ground and two IIC pins from the controller.

A rockin project, for sure!

73
 
First thing I would do is lose the stock channel selector and replace it with a proper gray-code encoder.

Sure would save a lot of wires.

We used a 28-pin PIC back in the 90s. Had enough pins to drive two LED digits directly, two pins to drive a simple shift register for the 9 PLL input pins. Left two pins for the encoder. Not one wasted pin on that design.

The 23017 rocks! Never have used it, but you could put it on a 'daughter' board, soldered to the main pc board in place of the PLL, with a socket on top for the PLL chip. Would really reduce the wires with only power, ground and two IIC pins from the controller.

A rockin project, for sure!

73
Sorry, Nomad, didn't see your reply until just now.

The point of the original channel selector is to maintain as much of the stock "look and feel" as possible. Same reason I'm keeping the original channel display instead of swapping in an OLED.

Well, that and I'm cheap.

The idea for a daughter board to interface between the IO expander and the PLL is a good one. Would take more design talent than I have (none) to lay it out.
 
Made a little more progress today putting the MCP23017 boards together. If you decide to do something like this and use a Dremel tool to cut the strip board, be careful. One slip and you're looking for another spot to cut.
IMG_2080.jpeg

I don't know if you can see it here, but I'm trying to show the little standoff on the corners of the TLR-321 here. These are what I'm grinding off the part. Preferably without taking the legs with it.
IMG_2079.jpeg

And here is the chip the will interface to the PLL. The little wires sticking out of one side will go into the holes left behind when the connector for the ribbon cable comes out. Those are actually the cut offs from various components used in past projects. Reduce, reuse, recycle.

IMG_2082.jpeg

The violet wire connects to the BCD 40 weighted pin 19. Which normally is grounded. The grey wire goes to BCD 100 weighted pin 21, and the orange wire to BCD 200 weighted pin 22. Technically speaking pin 22 could be left connected to ground, but I've already connected everything else, so why not?

The little black jumper is connecting the MCP23017 i2c address lines to ground, giving this chip the first address (for its kind) on the bus. The red wire is +5 volts. Ground is on one of those bare wires.

What doesn't go through this board is the voltage from the channel selector to the out of lock detector that prevents you from getting onto odd frequencies "in between" channels, and the power to the channel display from TR36 that allows a dimmer feature. More on that later.

IMG_2083.jpeg
Here's the other MCP23017, which will interface to the channel display. For the most part, the colors of the wires on the top 7 pins on either side of the chip represent which pin that wire goes to. Which, unfortunately, don't follow that same order on this end. Here only two of the i2c address lines are grounded, with the other going to +5 volts. That makes this the second device on the bus. There's also wires for chip power and ground.

The resistors are all 1k. The reason they're installed the way they are is simple. I screwed up. I didn't account for the height of the resistors if I installed them "standing up ". So now the wire goes in where one of the resistor leads would have and one of the resistor legs goes in where the would have. This way the resistors are much closer to "flat", and electrically it's the same path.

BTW, the channel display is a common anode design. I did try putting the current limiting resistor on the cathode side so I would only have to use one. It sort of worked, but the digit lighting is much more even with each segment getting its own resistor. The brightness of the display is controlled by turning the "dimmer" pot on the front of the radio, which in turn controls the output of TR36.

The channel display itself is going to a fun challenge. I n ed to disassemble the old one to get the plastic mounting bracket out. Then I can reuse it with the display I ground the corners on and the little chunk of strip board I cut for it.

But that's for later.
 
PLL area "before" pic.

IMG_2084.jpeg
You can tell this poor radio has been modded, demodded, remodded, and hot rodded. This should be its last PLL mod. Why play with wiring when you can just update the code?

Another "before". The flexi board/cable thing. Someone's attached a few wires to work around two failed traces and solder bridged a third.
IMG_2085.jpeg

And here, in it's natural habitat, the channel display sitting on its plastic nest.
IMG_2086.jpeg

Took a bit, but I did get the plastic intact.
IMG_2087.jpeg
And then set up a new channel display LED array in it with strip board.
IMG_2088.jpeg

While I was at it, I freed the channel selector from the flexi thing after making notes of which pin did what on the PLL side of the switch. I had done this previously, but it never hurts to check what you think you know against reality.
IMG_2090.jpeg

Then I pulled J400.
IMG_2091.jpeg

Which was done so I could put the completed PLL interface board in.
IMG_2092.jpeg

And then connect the remaining pins (19, 21, and 22) via wires. Which brings us to an "after" pic.
IMG_2094.jpeg

One more pic, of what isn't there.
IMG_2093.jpeg
That's right, at some point this radio has undergone a noise blanker-ectomy. Which frees up a switch. Would have been nice to still have the noise blanker in even if it was always on, but that's not what I got. I can't tell if the PA/CB or internal/external speaker switch has been hijacked, but I know of them has been.

Only other thing done was to attach wires to the channel selector. Here's the "after" pic.
IMG_2096.jpeg

I haven't tackled connecting the channel display to its interface chip just yet because quite frankly the job is tedious as hell. But I'll have to do it soon to keep this thing rolling.
 
I screwed up.

By attaching the wires to interface chip board before checking clearances and fitment I put myself into a situation where I could not do the soldering to the channel display like I had planned.

But I had a fix for that.
IMG_2099.jpeg
I just pulled the wires off the other board and attached them to channel display. If you know the resistor color code you can pretty much tell which pin is which by the color of wire attached to it.

And here it is almost finished.
IMG_2102.jpeg

And a full frontal view.
IMG_2101.jpeg
Just for the record, there is a strip of double-sided tape between the two boards.

Now I know some of you have asked yourselves, "Why is this idiot going to all this trouble to keep the same kind of channel display? Why not switch to an OLED and be done with it?" Well, here's why.
IMG_2103.jpeg
That little piece of smoked plastic has two tabs that grab the plastic carrier the channel display sits in. No need to figure out how to attach something else and worry about it falling out or off.

And here's the test fitting. This is how it will be unless I find something managed to short itself to ground.
IMG_2104.jpeg

Next up is figuring out where to mount the Arduino board, and then wiring everything together.
 
Got some more work done on this tonight. Started wiring up the channel selector.
IMG_2105.jpeg

Then decided that since I was already in there, might as well keep going.
IMG_2106.jpeg

I know, hard to tell what you're looking at. I also figured out that while the 5 volt regulator doesn't get scorching hot, I want it fastened to the chassis. I also decided to wrap the Arduino part in heat shrink. So I ended up with this.
IMG_2107.jpeg

Fired it up, and... it failed to work. The MCP 23017 controlling the PLL doesn't respond at all. The channel selector only registers some channels. And the channel display is scrambled.

Which is odd since I've already built one and it works just fine.

So now I get to tear it apart and figure out what went wrong. So I can try again. But it may take a while since I may have to have to order parts. I burned through my last Arduino and MCP23017 putting this together.

If I can fix it with what's on hand I will. But I am kind of ticked at myself for doing the heat shrink before power on. Didn't want it to short out. It didn't, it failed in a completely different and just as spectacular fashion.
 
  • Like
Reactions: Shadetree Mechanic
Started looking at this again this morning. Found the channel selector issue was really two.

1. I had turned the channel selector around from the first prototype and connected to the wrong set of pins. Well, no wonder that didn't work.

2. After fixing problem #1, realized I had run the wires to the Arduino in the reverse sequence from the first prototype. Changed the scan order in the sketch and it now reads the channel selector much better.

So that's a third of my problems solved.
 
Figured out half the channel display problem. I had put a 9 where I should have had an 8 in one part of the sketch. So a literal off by one error. Fixed that and the tens digit is perfect.

The ones digit however is still a problem. Too many segments lighting up on some numbers, too few on others. And what is being displayed isn't any number I've ever seen. I've checked and the individual segments are all independently controllable.

Checking my sketchy wiring job doesn't reveal any shorts. So I may have some segments connected to the wrong pins on the MCP23017. Or the chip itself could be defective. My bet is on my wiring job, though.
 
  • Like
Reactions: AudioShockwav

dxChat
Help Users
  • No one is chatting at the moment.
  • @ Tim Chambers:
    Pres. Bill 2 FCC mod just posted
  • @ AWP:
    Is it possible to be on a lake and have a homing directional beam being emitted from the shore so a person could navigate to that beam's source? For example at night to a jetty.
  • @ BJ radionut: