Hi gang.

After many weekends of work I have managed to let the stock ATS-3A transceiver transmit nice BPSK31 "cq ok1iak". The firmware of ATS-3A was modified to allow serial line control, which is performed over the DASH paddle pin in straight key mode. That means paddle will not work if in remote control mode. To enable both remote control and paddle would need hardware modification of the stock ATS-3A.

The only way to shape the BPSK31 envelope on a stock ATS is to key the transmitter on/off. The envelope is far from raised cosine, but the signal is not wider than of CW and the sidelobes will be hopefuly negligible at QRP levels. I tested common windows PSK31 programs how they will cope with that non ideal envelope. MIXW32, MultiPSK, DigiPan and PocketDigi worked well, WinPSK had occasional drop outs. Here is the screenshot of BPSK31 signal received on RadioShack DX-398. On the lower part of the screenshot the receiver may have been overloaded.

BPSK31- ATS3A.png

Here is how it sounds. You may try to decode it yourself.
cq-ok1iak- ats3-bpsk31. wav

RTTY or MFSK16 modulation patterns may be generated by ATS perfectly. Olivia uses symbol shaping, but I bet hard keying like in the case of MFSK16 will work good enough.

The serial line hardware protocol is 1200Bd asynchronous, 8bit, 1 start, one stop bit. Because I am targeting mainly handheld computers, the serial stream is generated by a sound card in the BELL 202 format and transformed to the 0/3.3V digital levels by an external FSK decoder. The two tones are 1200Hz mark and 2200Hz space. The tones are converted to 0V for space and 3.3V for mark. I did not implement ATS support into PocketDigi yet, I only wrote a simple C++ application to generate WAV sound files with various commands. Those WAV files may be played on a PC, Pocket PC or even on a mobile phone or MP3 player.

I will be happy to provide modified ATS-3A firmware source or binary, the windows wav generator source or binary or command wav files to anyone wanting to experiment. The prerequisity is to be able to flash the firmware. For introduction to ATS firmware flashing look at http://w1mt. qrpradio. com/ats3. html

I will work on PocketDigi support now and I hope to make some PSK31 QSOs when I visit my parents' house. I do not have any antenna possibility at my appartment. BTW I will try to pursue some student at my alma mater - the Czech Technical University to port PocketDigi to a java enabled mobile phone as his master diploma work.

Now to the tone decoder. I built only decoding part of the following schematic http://www.qsl. net/yo5ofh/ projects/ xrmodem.gif . The analog FSK demodulator chip from Exar XR2211 is readily available and cheap. The value of C5 is too big, I decreased it to 4N7. I connected pins 6 and 7 to provide muting if there is no signal on the line. Without input signal the DASH pin is low and ATS-3A is configured to straight key / remote control on startup. I connected two red LED diodes to pin 7 to pull the maximum output voltage to 3.3V.

The XR2211 decoder is analog, which means it is sensitive to component tolerances. I do not have much experience with analog circuits and I had hard time to tune it. Tone generator is very handy, there is a bunch of free PC sound card tone generators on the internet. Connect LED to pin 5 to indicate phase loop lock. This will help to avoid tuning the oscillator above space or below mark tones. Put LED on pin 6 to indicate decoded tone. The transition frequency is geometric average of the two tones, sqrt(1200*2200) =1625Hz.

This is a picture of my prototype. The black plastic box is half empty and the tone decoder will be much smaller if made in SMD. The tone decoder sources cca 4mA. The small bread board above the plastic box is a MAX232 level convertor to monitor the FSK decoder.

xr2211- ats3a.jpg

There are following alternatives to the XR2211 FSK decoder. MX/FX614 chips are expensive (about $10) and hard to get, but they consume only 1mA at 3.3V. They are digital, no tuning is nescessary. Daugter board mounted on the opposite to the band filter will fit inside the altoids tin for sure.

Other possibility would be to decode pulses instead of tones, which would need only input level converter with single op amp, or even just the internal comparator of MPS430 (this would mean hardware mods to the stock ATS3). Imagine sending short plus/minus pulses to the sound card. Logical one will not send any pulse, logical zero will send short plus/minus ripple. Average value will be zero. The pulse will be deformed and it will ring for a while, but if the pulse is lot shorter than the bit slot, it will hopefuly ring out in the same slot. This approach is similar to the SIR infrared hardware layer. I hope to find time to experiment with it.

The last possibility is using serial line of the PC. This would work for remote control for sure, but to modulate DDS directly means exact timing on the control line, which is hard to do on multitasking operating systems. There are multimedia timers on Windows though, which shall enable timing with 2msec precission. That shall be good enough. There are no multimedia timers on Pocket PC. I do not know about Linux.

The remote control protocol I implemented works in two modes - command or modulate. In command mode the commands are packed into frames similar to Icom IC-V protocol. The frames start with FE and end with FD. The first payload byte is command, then 0 to 6 data bytes may follow. The payload bytes are in BCD format, the A to F nibbles may not appear inside the payload. I implemented the following commands. The protocol is very alpha and will certainly change.

01 -
Beep morse characters. Just for testing the connection. The format of morse characters is the same as used by the firmware internally.
An example packet "fe 01 05 10 0f 17 fd" will beep "ahoj".

02 -
Set frequency, reset RIT/XIT state. Frequency is sent by 4 BCD bytes, lowest digit first.
Command "fe 02 23 98 01 07 fd" will set the frequency to 07,019,823Hz.

03 -
The same as 02, but additionaly it will announce the new frequency by AFA on success.

04 -
Set XIT offset and start BPSK modulation. The transmitter will be off until the first modulation command.
The XIT offset is sent by 2 BCD bytes. Negative offsets are sent in 9 complement format.
Command "fe 04 34 12 fd" will start BPSK modulation at +1234Hz,
Command "fe 04 99 99 fd" will start BPSK modulation at -1Hz.

After the command 04 is succesfully decoded, serial line will no more respond to command frames, but to single byte modulation commands.
00 - End of modulation, stop TX and return to command mode.
01 - Key up, but stay in modulation mode. Used to simulate raised cosine amplitude envelope.
02 - Set phase to 0 degrees, key down the transmitter.
03 - Set phase to 180 degrees, key down the transmitter.

The UART is implemented using interrupts and timers, so it works in background and does not consume additional power. Baud rate is derived from the 32768 clock resonator. I had to comment out some original code to make place for remote control. Callibration code is not needed after the transceiver is callibrated. DFE or tune modes are not nescessary too. If instead of the 4k MSP430 chip the 8k variat was used, it would all fit nicely. Maybe the ATS-3b will be fitted with more FLASH?

73, Vojtech OK1IAK