Jason is a keyboard mode displaying the
received message as text.
Version 0.92 was released on 20/01/2002. It
is not compatible with the previous versions.
The message above was decoded from a barely perceptable signal
(see later in write-up).
Alberto explains:
Basically, the information is coded in the
absolute value of the difference between two frequencies sent sequentially.
This has the advantage of not needing a precise initial tuning. A tuning error
of a few Hertz is perfectly acceptable. Another characteristic is that, being
the frequencies sent one at a time, you don't need a linear amplifier. A
class-D mosfet TX will do nicely.
The frequency deltas can assume one of 16
different values. After sending one tone, the next one is shifted by the
appropriate amount in the direction of the barycenter of the range. With this
method, a total of 32 different slots are needed to be able to send a delta
ranging from 1 to 16.
With 16 possible deltas, each baud (a baud
is a change in the signal transmitted, in this case a change in frequency)
encodes 4 bits (called a nibble), which are not enough for a reasonable
alphabet. So we need two nibbles for our alphabet. But now a problem arises :
how can we get character synchronization ? In other words, which is the
high-order and which is the low-order nibble ? I solved the problem in the
simplest way, may be not the optimal one. I used the high order bit of each
nibble to encode this info. So the high-order nibble is of the form '1xxx'b,
while '0xxx'b is the low-order one. Here xxx stands for the actual information
transmitted.
So now there are 6 bits available to encode
our alphabet, enough for 64 symbols. I decided that my alphabet would be that
that in ASCII code goes from x'20' (the blank) to x'5f'. This allows the
transmission of all the letters (upper case only...), the ten digits, and
practically all the interpunction symbols normally used.
Ok, this explains the encoding. What about
the signalling ?
For this version of Jason (but may change
in future versions), I choose the following parameters :
- The center frequency is 800 Hz
- Each one of the 32 slots is separated
from the adjacent by 3 FFT bins, so to guarantee some orthogonality.
- Each FFT bin is roughly 84 millihertz, so
the slots are at a distance of roughly 252 millihertz, for a total band
occupancy of 8.075 Hz
- Each baud (each tone sent) lasts for
roughly 11.89 seconds (the inverse of the FFT bin width)
The program has a capture range of 1.5
times the band width (my arbitrary choice), i.e. slightly more than 12 Hz. The
capture range can be easily positioned with the mouse.
Which are the frequency stability
requirements ?
It is evident that the combination of the
Tx and Rx drifts must be such that, in each 11.89 sec. interval, the frequency
must stay in one single FFT bin, i.e. 84 millihertz. To say the truth, a drift
from -1 to +1 bin is tolerated, and accounted for, by the program. But let's
remain on the conservative side.
If we translate this into short term
stability, where short term means a period of 10 minutes, we compute that our
oscillator must not drift, each 10-minute interval, not more than 0.084 * 600 /
11.89=4.24 Hz (roughly). This means, at 136kHz, a stability of 31 ppm, which
doesn't look like a difficult figure to achieve.
----
Interfacing
How does Jason interfaces with the radio ?
For reception, it's quite easy. Just bring the Rx into audio into the sound
card, just as you do now with Argo and Spectran. For transmission, I have
envisaged three different modes, to make interfacing the most easy possible.
- Parallel port output : via the Options
menu, you can choose between LPT1 or LPT2. The code (ranging from 0 to 31) for
the tone to be sent is output, with the strobe pulsed high for 100ms. The Tx
condition is indicated by the SelectInput pin being high.
- Serial port output : via the Options
menu, you can choose between COM1, COM2 or COM3. The code (ranging from 0 to
31) for the tone to be sent is output. The Tx condition is indicated by the RTS
being active.
- Audio output : selectable via the Options
menu. If you choose this method, a note is generated using the sound card, with
a software implementation of a DDS, with a very long sine table (262144
entries), which ensures low distortion. The center frequency generated is
800Hz.
With these interfacing possibilities, it
should be easy to hook-up a Tx to Jason, both if you have the possibility to
up-convert the audio tone to the working frequency, or if you use a DDS board,
either with a parallel or serial interface.
If you use a DDS board, you will need the
following table to set up the frequency to generate, depending on the code
output from Jason. Obviously these would be the received frequencies, they will
need to be up-converted to 137kHz.
Code Frequency (Hz)
0 796.089
1 796.341
2 796.593
3 796.846
4 797.098
5 797.350
6 797.603
7 797.855
8 798.107
9 798.360
10 798.612
11 798.864
12 799.117
13 799.369
14 799.621
15 799.874
16 800.126
17 800.379
18 800.631
19 800.883
20 801.136
21 801.388
22 801.640
23 801.893
24 802.145
25 802.397
26 802.650
27 802.902
28 803.154
29 803.407
30 803.659
31 803.911
These are also the frequencies generated
when using the audio output, provided that your sound card has an exact
sampling rate. The encoding is taken care of by Jason, the DDS board task is
only to generate the appropriate frequency, according to the received code. I
do hope this notes are sufficient to make you understand how Jason works, and
how to interface it with a Tx for LF work. Should you have any residual doubts,
feel free to contact me at dibene@usa.net
My initial tests.
Eager to try the new mode I loaded Jason onto
my shack PC and it ran beautifully but I needed a signal to decode. I got
another PC and tried that, 256 colour, Jason won't start in 256 colour....
Another try and I have 2 PCs running. I selected sound card mode under
"options" "TX port" and when I switched to TX I got nice tones out of one PC. I
connected it to the other with great optimism.
To transmit, you can either type the message
first and then select TX and it will start sending, or you can switch to TX and
type. It sends quite slowly, about one character every 2.5 seconds, so you
don't need to type fast, the characters queue up in the transmit window. The
first tone sent is 800Hz, centre frequency, followed by a pair of tones for
each character.
In receive mode the idea is to get the tones
to lie between the two yellow cursors on the Spectral display. If they are off
centre you can shift the receive window by clicking the mouse either side of
the centre of the window. If you transmit with no text in the TX window, you
will get a two-tone sequence at the limits, ideal for centering the receive
window. I had everything centred nicely but was only getting the odd wrong
character on the display. It was difficult to reduce the local signal enough to
prevent it "blooming" across the display, you really need to reduce the input
level so you get nice sharp lines. Still no luck though.
It appears that my 200MHz machine is too slow
to do the number-crunching required to decode at this speed. (Alberto has now
brought out a version for slower PCs V0.91 which has switchable speed. I have
now tried it on a 100MHz PC and it works. Get it from the link at the bottom of
the page.)
I went and got a faster machine (850MHz) and
brought it into the shack. Success! I then generated a weak signal by feeding
the tones into my IC735 transceiver and listened to it against real band
noise.
The Argo screen-shot below was taken at the
limit of decoding. The message "2468 motorway" was being sent (don't ask me
why, I just typed it!) and the same audio was going to the PC running Argo as
to the PC running Jason.
Even the bit in the middle where it goes very
feint was decoded OK, see the Jason screen at the top of the page, I think it's
about "6" in the message.
That signal would probably be an "M" copy in
QRSS or DFCW so the mode works well in noise. It doesn't cope quite so well
when conditions are quiet and the Loran lines are visible in the decoder
window. If the Jason signal is not significantly louder than the Loran lines
then decoding is upset. Alberto may have a solution to that in future.
He is still developing the software and new
versions, including a half-bandwidth version (now implemented, see below) that
should fit between Loran lines. Look out for updates.
Version 0.92 is now out with some major
mods:
Alberto explains:
The mods are :
- Ctrl-Z
clears the reception screen
- The blooming of the waterfall trace has been
fixed.
- There should be now much less garbled and repeated
characters when receiving just noise
- The new 17-tone
signalling scheme is implemented
- When using audio output, it is possible
to apply a multiplying
factor to the steps between the
tones
- A beacon mode is implemented
- Selectable USB/LSB both for Rx
and Tx
Regarding this last point, a few notes are in order :
On the transmitting side, the Tx and Jason must be set both
either on USB
or LSB. There is no need to announce in advance
which mode the transmission
will be, as long as the above
rule is adhered to.
The same holds
for the receiving side. Keep both the Rx and Jason
either on USB or LSB,
irrespective on how the setting is on the
transmitting side.
A
last word about the beacon mode.
The text to be beaconed must be surrounded
by braces : { }
When the opening brace is encountered,
then the text found until
the closing brace is endlessly repeated. As
an example, suppose
the following is typed :
HELLO ALL { THIS IS A
TEST}
What will be transmitted is:
HELLO ALL THIS IS A TEST
THIS IS A TEST THIS IS A TEST.....
and so on.
Any text following
the closing brace will be ignored.
As usual, any and all reports are
welcome
As of 22/7/02 0.94 is the current version.
This version has selectable decoders, the original one and one
based on Wolf by KK7RA which is better in marginal conditions.
It also has the facilty to analyse a stored wav file so you can
record a file with windows sound recorder or similar and try the alternative
decoders. Remember to record at 11025 samples/sec.
The TX format remains the same so it is still compatible with
previous versions back to 0.92.
Download
V.094 of Jason and try it.
Back to the News page.