Voodoo audio with Kenwood TS-850/TS-950SDX DSP on _AM_?

Force them Rigs to accept True Voodoo!
Post Reply
BillPaul
Digital Voodoo Guru
Posts: 66
Joined: Wed Jan 19, 2011 11:52 am

Voodoo audio with Kenwood TS-850/TS-950SDX DSP on _AM_?

Post by BillPaul »

Hello everyone:

I don't know how much activity this forum gets, but I'm hoping someone might have some insight on this.

I currently own a TS-850SAT/DSP-100 combo. I haven't done the voodoo audio mods to the DSP unit, but even unmodified it still sounds great on the air. I also purchased a TS-950SDX recently (it's in transit and due to arrive this Friday -- I can't wait). As good as the rig sounds on SSB though, I occasionally like to operate AM too.

One thing that's mentioned very prominently in all the discussions about the TS-850/DSP-100 and TS-950SDX is that the mods for increasing the TX audio bandwidth to 6Kc only work on SSB, and not AM. You can use the DSP-100 for AM modulation with the TS-850, and you can only use the DSP for AM and SSB modulation with the TS-950SDX, but when you disable the low pass filter on either radio to increase the high end response, this also has the effect of disabling AM carrier generation.

I haven't been able to find any discussion as to exactly why this happens though. All of the modification notes just say: "if you do this, AM won't work -- turn it off to get AM back again."

For the TS-850, the recommendation is to not even bother with the DSP unit for AM and just inject line level audio directly into the balanced modulator chip. However with the TS-950SDX, that's not an option since there is no balanced modulator.

Now, on the TS-850/DSP-100, the basic setup steps are:

1) Enable TX filter selection via the service menu
2) Set the 8.83Mhz IF filtering on the radio to 'off'
3) Set the DIP switches on the back of the DSP-100 to turn the low and high pass filtering completely off

Turning off the low pass filter switch on the DSP-100 is what kills AM. If you leave it on, AM still works, but you end up with a high end cut-off of 3100Hz. All indications have been that there's no way around this.

Well, by accident, I discovered that there _is_ a way to trick the radio into transmitting on AM even with the low pass filter switch off:

- Set up the radio for eSSB, as above
- Start transmitting in either USB or SSB mode
- While keeping the transmitter keyed up, press the AM mode button

Now the radio will be transmitting in AM with what I think is the same frequency response as SSB. It's difficult for me to gauge the response since I don't have proper test gear, but it definitely sounds better than with the low pass filter enabled and the DSP-100's high cut switch set to 3100Hz.

The only problem is that you have to do this every time you go to transmit, which makes operation a bit clumsy.

I have been told that the same trick also works on the TS-950SDX (though I'll have to confirm this for myself when the radio gets here).

Now, here are my questions:

- Has anyone at Voodoo Labs ever run across this?
- If not, can someone who has a TS-850/DSP-100 combo or TS-950SDX try it and tell me what they think?
- Does this seem like a way to get voodoo style audio out of these radios on AM as well as SSB?
- Would it be possible to automate the process so that it's not necessary to manually swap modes all the time?

At one point, I did a little testing with a volt meter and found one pin on the processor chip in the DSP-100 where voltage is present during AM transmit but not during SSB transmit. I suspect this is responsible for engaging the circuit that generates the AM carrier. My assumption was that somehow the low pass filtering and AM carrier circuitry were tied together in a way that completely prevented you from disabling one without disabling the other. But given my discovery, I think this isn't true. I had considered attempting to inject a voltage onto that pin to see what happened, but I was reluctant to risk damaging my DSP-100 unit, for obvious reasons. :)

Anyway, like I said, I hope someone here can offer some insight. I don't have anybody local I can discuss this with. Any discussion would be welcome.

-Bill

User avatar
Voodoo Guru
VooDoo Site Admin
Posts: 719
Joined: Wed Feb 23, 2005 8:47 am
Location: Down there on the right...

Post by Voodoo Guru »

Howdy BillPaul,
Welcome to the Forum!!!
Were all you answers will be questioned...


You are correct on all accounts except for the last one about the control voltage on the processor chip affecting the AM carrier. That is a yes and no answer, it does enable certain circuitry and tells the Gate Array whats going on, but ultimately its the DSP chip that does all the work.

The TS-950sdx will do exactly as you thought. We have been knowing about this for quite awhile. When you engage the TX while in SSB, then transfer the Mode to AM while still transmitting, it 'tricks' the DSP into generating the carrier while turning the Low Pass Filter algorithms off. This in fact sends out a modulated 16kc bandwidth AM envelope, that is 8kc sidebands with a carrier. You also have the option to adjust the bandwidth with the 8.83 analog filters.

Now the big question, how much modulation will it do?
This was tested with a rig that had the Jensen Transformer modification done to inject the Line Audio to the DSP bypassing the speech amp in the SDX.

The rig we tested here, will do 110% modulation with a single tone, and real close to 100% with a complex waveform (speech). You could probably get the signal a little cleaner by using some sort of negative peak limiting for a good asymmetrical audio envelope, but realistically the limit is around 100% on the positive peaks.

Note: To get this you have to inject way more audio then you do for SSB, so much more in fact that the internal speech amp in the SDX might not be able to handle it. This remains to be tested for a definitive answer.

The next step here is to start mucking with the ALC and trying to get the cleanest positive peaks possible.

Why does it do this?
Well we haven't had time to hook up the Logic Analyzer to the Rig's Main CPU to see what commands it is sending to the DSP Gate Array. Once we get this information, we can reprogram the firmware in the previously designed DXCC Unit to 'automate' this process. This is the thoughts anyway.

As far as the TS-850/DSP-100 combo, your guess is as good as mine. The best bet with that setup is to directly inject the Balanced Modualtor with Line Audio.

The reason you cannot do this with the TS-950sdx is because it does not have one. The SDX is totally dependent on the DSP unit for the 455 carrier generation and all modulation other then FM.

Hope this answered your questions,
Take Care,
Voodoo Guru
From Deep in the IDD of the Sub-Harmonix Realm

BillPaul
Digital Voodoo Guru
Posts: 66
Joined: Wed Jan 19, 2011 11:52 am

Post by BillPaul »

Hey, thanks a lot for the reply! I guess that does answer my questions.

One thing that occurred to me after I posted was that it should be possible to automate the SSB/AM switching trick using a CAT cable and a computer. I know that the open source hamlib package supports the TS-850 and TS-950SDX, and it should be possible to modify it so that it triggers the SSB/AM mode toggle as part of the software-driven PTT operation. I'll have to look into this once I get the TS-950SDX. Admittedly this is a bit of a kludge, but I'm more of a software person that a hardware person these days, and the fewer times I have to stick my fingers inside my radios, the better.

When I discovered this trick, I did a few tests with my SM-230 station monitor. Here are some snapshots of modulation waveforms using the balanced modulator on the TS-850:

http://people.freebsd.org/~wpaul/ts-850 ... n/balanced

And here are similar snapshots using the DSP with the SSB/AM trick:

http://people.freebsd.org/~wpaul/ts-850/modulation/dsp

In each case, there's images of 0 modulation, 100% modulation, and over-modulation. I'm not sure why the over-modulated DSP waveform looks the way it does.

As you mentioned, I found that I did have to turn the mic gain control on the DSP-100 up higher to get full modulation, compared to how I normally have it for SSB: generally I have it set at about a quarter of the way open, but for DSP AM mode I had to turn it up to about half way.

As for my current AM setup, I considered doing the balanced modulator injection mod to my TS-850, but I wanted to preserve VOX functionality, so for the time being I did something a little different. I did the 455Khz filter bypass mod, but for low end response all I did was add an extra 1uF cap across C144 on the IF unit. C144 is a .1uF cap located between the input of the balanced modulator chip and the buffer immediately before it. This was inspired by a similar mod that I found for the TS-440. Apparently Kenwood has used a similar design in a lot of radios. (My TS-430 is the same way.) This noticeably improves the low-end response. Unfortunately there are are other 1uF caps in the audio chain, notably in the "MIC-SW" circuit on the other side of the buffer amplifier, so increasing C144 any more wouldn't help much.

For the record, I use a Behringer B1 mic, with a Behringer Xenyx 502 mixer (for phantom power), Nady 31-band EQ and a Behringer MDX1600 processor. As I said, I haven't significantly modified the radio or DSP unit, but I'm pleased with the results nonetheless.

Again, thanks for the info. I'm sure I'll have lots to keep me busy when the new rig arrives.

-Bill

User avatar
Voodoo Guru
VooDoo Site Admin
Posts: 719
Joined: Wed Feb 23, 2005 8:47 am
Location: Down there on the right...

Post by Voodoo Guru »

Howdy BillPaul,

You might be able to do it that way.

The way we actually do it is to intercept the 16bit word the Main CPU sends to the DSP Gate Array and reprogram it to send an alternate 16 bit word sequence. This way you are not switching all the analog circuitry inside the rig from SSB to AM while in TX, the only thing you will be doing is digitally switching the DSP Chip from SSB to AM while in TX, this of course remains to be seen as to what the actual words are that the Main CPU is sending. We have mapped all the words out previously when the SDXCC Unit was being designed & developed, but alas we did not send the sequence needed for AM when in WideGlide Mode (credit to Bill, KB1NCP for this terminology).

What you have shown in your modulation tests is basically what was seen here. Over modulated, we were getting about 110% of positive peak modulation before positive peak distortion with a single tone. With a complex waveform input, about the max that could be attained without over modulation on the negative was about 100%. We suspect the deformation of the waveform you are seeing when the 3100 DSP setting is engaged is in fact digital distortion.

Normally most of the transceivers out there will have .1uf coupling caps in the audio path to act as a High Pass filter to cut the lows below about 100cps. This is one of the things we look for in the analog audio path, usually the rule of thumb is to increase all the coupling caps such as -- .1uf to a 1uf, 1uf to a 4.7uf, 4.7uf to a 10uf, 10uf to 22uf. You must also look for common emitter amplifiers and increase the capacitance on the emitter a huge amount, usually like from a 10uf to a 47uf or 100uf depending on how many lows you want to pass.

You have to be careful in doing this as you want some low frequency roll off, like around 20cps. This is due to the switching of the diodes and such in the circuitry will cause thumps and pops. It is a balancing act.

The cure for the High Frequency roll off is a little different as they use several methods to make Low Pass Filters in the audio path. The most common on the 850 is the capacitor shunt to ground, and the Op amp Salen-Key filter in the audio path.

Good luck with your experiments, it is of course what were all about!!
Take Care,
Voodoo Guru
From Deep in the IDD of the Sub-Harmonix Realm

BillPaul
Digital Voodoo Guru
Posts: 66
Joined: Wed Jan 19, 2011 11:52 am

Post by BillPaul »

Well. Sorry it took so long for me to get back to this, but things took a bit of a detour on me. The radio that I bought was destroyed in transit by UPS. :( The guy I bought it from did not have the original box. He double-boxed it, using a box from another rig of about the same size and a larger box from a wood stove (or all things). However somehow UPS managed to separate the two and smash the radio up beyond repair. The inner box happened to have a mailing label on it with the seller's address, so they sent that box (with the destroyed radio) back to him, then closed up the outer box and sent it on its way to me. (Yes, that's right: they sent an empty box marked as weighing 60lbs all the way from Illinois to California. And once it arrived, I made them send it right back.)

The only good thing about the whole experience was that I got my money back. But now there's one less TS-950SDX in the world. :(

Anyway, fast forward to a couple of months later, and I found another TS-950SDX for sale for only slightly more money that I paid for the previous one. This time the seller had the original box and foam inserts, and he shipped via FedEx. The radio arrived safe and sound just last week, and I've been having a blast playing around with it. As an unexpected bonus, even though the seller claimed the radio was completely stock, I found it had all of the optional filters installed, so I really got my money's worth.

So I finally had a chance to sit down with the radio and my computer over the weekend. As I said previously, I thought it should be possible to use the CAT interface to automatically switch the radio into HiFi AM mode. And after a bit of tinkering, I got it work. :)

The program works by sending an info (IF;) command over and over to the radio to check its current state. The resulting info string tells you the current operating frequency of the radio and its mode and RX/TX status, among other things. When the program sees that the radio has gone from RX to TX and is in AM mode, it issues mode (MDx;) commands to quickly switch the mode from AM to LSB and then back to AM again. So as long as the program is running, all I have to do is key the mic and the computer will do the mode transfer for me automatically.

Using this trick, I can leave the LPF menu setting to 'off' and operate the radio in AM mode with HiFi audio. Listening to it on my TS-850, it sounds pretty nice. I can definitely hear the difference in high end response between the '3100' and 'off' selections.

There are a couple of caveats:

- You can only poll the radio so fast, since the serial port only operates at 4800 baud. It typically takes half a second for the program to notice the radio is transmitting. Unfortunately, I can't figure out a way to make it any quicker.

- I found that when using a standard TTL level converter CAT cable (in this case the one from G4ZLP), I could hear digital hash noise in my transmitted audio while the computer was polling the radio via the serial port. I was able to get it to go away by putting ferrite chokes on the serial cable and moving my laptop to a different spot. However, ultimately I switched to using the Piexx CAT cable, which has optocouplers to electrically isolate the serial port lines in the radio from computer. With the Piexx adapter, the noise was eliminated entirely.

- Since the program needs to be in constant communication with the radio via the CAT interface, you can't have any other CAT utility going at the same time. This is not a problem for me since I don't typically use any CAT software.

I put the program here:

http://people.freebsd.org/~wpaul/ts-950sdx/am_dsp

Currently there's just source code, which can be compiled on FreeBSD or Linux. I may be able to port it to Windows as well, but don't hold your breath. :)

The program is in the public domain. All the usual disclaimers apply. If it breaks, you get to keep both pieces. :)

I did this largely for my own amusement, but questions/comments are welcome.

-Bill

P.S. On an unrelated note, does anyone know exactly where the PLL unit is located inside the radio? The unit I got is from 1992, and I think it needs to have the resistor blocks on the PLL unit re-soldered to correct the well-known 'solder re-flow oven wasn't turned up high enough' problem. I can't quite tell from the service manual where it is exactly.

BillPaul
Digital Voodoo Guru
Posts: 66
Joined: Wed Jan 19, 2011 11:52 am

Post by BillPaul »

Okay, I updated the program that I wrote, _and_ ported it to Windows. I updated the page at http://people.freebsd.org/~wpaul/ts-950sdx/am_dsp with the details.

There's now both a .tar.gz archive and a .zip file, for people on Windows. The archive now includes both source code and executables for FreeBSD, Linux and for Windows. Note that the Windows executable comes with two DLL files. These are the Cygwin runtime libraries, which are needed since I compiled the program using the Cygwin version of GCC. (It's possible to make a fully native Windows version of the program, but that would take me longer.) To run the program on Windows, make sure the executable and the two DLL files are kept together in the same directory.

On Windows, the serial device name will be of the form COMx (COM1, COM2, etc...). The exact device name depends on what port you're using to talk to the radio. If your computer has built-in serial ports, then it will likely be COM1 or COM2. If you're using a USB to RS232 serial adapter, then it may be COM5, COM6, or something else. To find out, you can look in the Windows Device Manager under "COM and LPT ports." When your USB device (such as the Piexx USB CAT cable) is plugged in, it should show up there. To run the program, open a command window, and do:

C:\ts950\binaries\windows> ts950 -f COM5

The program should detect the radio and then wait for you key up in AM mode. To quit the program, press any key, or hit CTRL-C.

Now set your TS-950SDX to AM mode, and set both the LPF and HPF menu options to 'off.' (You need to press and hold the 'fine' button while powering on the radio to enable the 'off' option for the LPF menu item.) When you transmit, the program will detect it and print a message. The radio should then automatically toggle modes from AM to LSB and back to AM again, and now you should have a carrier and HiFi AM audio.

Again, this is a hack. But I think it's an interesting hack, and for me at least it's a useful one. Questions and comments welcome.

Share and enjoy!

-Bill

User avatar
Voodoo Guru
VooDoo Site Admin
Posts: 719
Joined: Wed Feb 23, 2005 8:47 am
Location: Down there on the right...

Post by Voodoo Guru »

Howdy BillPaul,
Excellent work on that!
We can tell there was allot of time and energy spent into getting this to work.

Absolutely Stellar!!!!!

Thanks BillPaul,
Take Care,
Voodoo Guru
From Deep in the IDD of the Sub-Harmonix Realm

BillPaul
Digital Voodoo Guru
Posts: 66
Joined: Wed Jan 19, 2011 11:52 am

Post by BillPaul »

Just an FYI (in case anybody cares), I made a few updates to the program. The changes are:

- Defined a C structure that describes the data returned by the radio in response to an IF command. This makes it a little easier to separate out the mode and state info. Also made a few other code clean-ups.

- Changed the program so that instead of just printing the same boring message on every transmission, it displays the current state of the radio. Since we're constantly polling the state of the rig anyway, we may as well show what we know. Now the current display frequency, channel number, mode and RX/TX state are always shown on the screen, and the display doesn't scroll anymore.

- Added some code to flush any stale data from the serial line at start-up. This avoids cases where the program would sometimes print "Failed to receive correct radio ID" over and over each time you tried to run it. This could happen if you typed CTRL-C to quit the program unexpectedly while a command was still pending.

- Corrected the definitions for the FM and FSK modes in ts950.h: I somehow had them reversed. (This didn't really matter though since we only cared about testing for AM mode, but I had to fix it so that the new status display would be correct.)

- Added support for the TS-850S too. The program now should work with both the TS-850S/DSP-100 combo and the TS-950SDX (they both use the same command format).

As before, the utility can be downloaded from:

http://people.freebsd.org/~wpaul/ts-950sdx/am_dsp

Full source code and pre-compiled executables for FreeBSD, Linux and Windows are included.

Share and enjoy!

-Bill

Post Reply