Return-Path: X-Spam-DCC: paranoid 1170; Body=2 Fuz1=2 Fuz2=2 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on lipkowski.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,DNS_FROM_AHBL_RHSBL, HTML_MESSAGE autolearn=no version=3.1.3 Received: from post.thorcom.com (post.thorcom.com [195.171.43.25]) by paranoid.lipkowski.org (8.13.7/8.13.7) with ESMTP id u12AGVjP003122 for ; Tue, 2 Feb 2016 11:16:31 +0100 Received: from majordom by post.thorcom.com with local (Exim 4.14) id 1aQXwD-0006Tc-6u for rs_out_1@blacksheep.org; Tue, 02 Feb 2016 10:11:57 +0000 Received: from [195.171.43.32] (helo=relay1.thorcom.net) by post.thorcom.com with esmtp (Exim 4.14) id 1aQXwC-0006TT-Go for rsgb_lf_group@blacksheep.org; Tue, 02 Feb 2016 10:11:56 +0000 Received: from mail-wm0-f54.google.com ([74.125.82.54]) by relay1.thorcom.net with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86) (envelope-from ) id 1aQXv9-0008Sw-Tf for rsgb_lf_group@blacksheep.org; Tue, 02 Feb 2016 10:11:55 +0000 Received: by mail-wm0-f54.google.com with SMTP id r129so109893015wmr.0 for ; Tue, 02 Feb 2016 02:10:37 -0800 (PST) X-DKIM-Result: Domain=gmail.com Result=Good and Known Domain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=V5wN+8czLWDLhdK0IN/BnNld9EmHvGSxrcXPpZQ3EXo=; b=ik1WYOrSySyl2o7S82KmmhezLEMBzJOhiY4zunB/PbsRTcIz3ZpAdLY/cLSy3/fiq/ 3BBuIURNnqGoCWDyMtv9W7ALbcPJdiJw6ivSJIovBRtGqUMmDciD6RhovLY/V8ux7JQh YrkN33hxuo9CwyX+mHKfpCQYfAA0XIMP9zIyohz4fi0Ma+jtFNrvXGDNbXFXVVe4UMEL tBA9lPsCAkccyvfpPezhaN6+9m8P7+a2gRim3TnUHayXwOQTI8ID3cpHM3uLcHx8FkXz f9Tc6tvKKsoFXvNi+5hmbXS0PcrwIWnjFSpuuXVWmDIzc5eTFfZI27m7yDHn5lLwFhOG iqHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=V5wN+8czLWDLhdK0IN/BnNld9EmHvGSxrcXPpZQ3EXo=; b=bT6GJX3b0yDoIMgC2dcnd86Sy76KE2GSGNWqwfhwUzKSGWnXMy7RzJdiFvwRs4TV5h jHyIIjGsyTCuei/ka0rQpdWur1mEZb9l2Q2gcZCKGimBjIg646rPEDJJVLs25jilkKJ+ DkyINAL/J/3/d2Ka0aDt50Y9TVwlQdGlfVhm6lveUzpGEQLYBpE6RrxJTRZ5n5oVMoMQ Deh0DOzRhKXgJMKYXY+5QPHQ5UwLJy+guD6TrsLOOj/XpNKsdp6qcZRSH83iJjsAzd0i +ETBrqVGODJ7psjmJb2ZTFV/7r96KUsSgarXkkWYDj85beDB8XvJ/FpBisM5BrXMZ3m6 JsbQ== X-Gm-Message-State: AG10YOQAnDZ/M8EYV8cCaRv0Ya30Bf17ePERCuGhnjlmP1Vi2lTQWfr6fZcGwPefkpRXrtts5VQcCz4fIwLs5Q== MIME-Version: 1.0 X-Received: by 10.28.144.196 with SMTP id s187mr17568402wmd.9.1454407792296; Tue, 02 Feb 2016 02:09:52 -0800 (PST) Received: by 10.28.187.67 with HTTP; Tue, 2 Feb 2016 02:09:52 -0800 (PST) In-Reply-To: References: <56AFA07E.4040001@charter.net> Date: Tue, 2 Feb 2016 10:09:52 +0000 Message-ID: From: Andy Talbot To: rsgb_lf_group@blacksheep.org X-Scan-Signature: df2e2c1e83972f6e42eeb17d78e70347 Subject: Re: LF: WOLF Coding Content-Type: multipart/alternative; boundary=001a11473788d18b22052ac6b3e8 X-SA-Exim-Scanned: Yes Sender: owner-rsgb_lf_group@blacksheep.org Precedence: bulk Reply-To: rsgb_lf_group@blacksheep.org X-Listname: rsgb_lf_group X-SA-Exim-Rcpt-To: rs_out_1@blacksheep.org X-SA-Exim-Scanned: No; SAEximRunCond expanded to false X-Scanned-By: MIMEDefang 2.56 on 10.1.3.10 Status: RO X-Status: X-Keywords: X-UID: 6635 --001a11473788d18b22052ac6b3e8 Content-Type: text/plain; charset=UTF-8 NOW I know why the interleaving option was included: There is a conditional statement in the WOLF source code : #if INTLV out[k*MSGLENB + (j&7)*10 + ((j&8)>>3) + i*2] = (ushort)b; #else out[k*MSGLENB + j + i*WLEN] = (ushort)b; #endif Which I just copied and translated to PowerBasic, thinking interleaving may be a user option. I clearly had the same source code file back then but don't recall it - time flies as you get older :-( Andy On 1 February 2016 at 18:47, Andy Talbot wrote: > Excellent ! > Thanks for that pointer > > I've just run WOLF_GUI with the -n option and compared the results with > that software written five years ago.. When interleaving is used, it gives > the same answer. So all seems to be OK with it. Wonder why I included an > option to leave interleaving out? Must have had a reason back then... > > I want to be able to generate the message in the PIC on the fly, so > variable data can be inserted and allow the mode to be used for telemetry > type purposes on a beacon transmitter. > > See http://www.g4jnt.com/WSJT_Position_reporting.pdf for an example, > using the JT4 mode in the WSJT suite for position reporting. Random > timed BPSK is a lot easier to generate and use for this than is MFSK in > time-locked bursts > > Andy G4JNT > > > On 1 February 2016 at 18:14, John Andrews wrote: > >> Andy, >> >> WOLF interleaving hasn't changed since the very beginning. Markus has >> pointed out the source code location -- Wolf Buscher's GUI is a wrap-around >> for the core code created by Stewart Nelson. >> >> As Warren suggests, the WOLF and WOLF_GUI programs have a method of >> creating a file representing the 960 bits in the message. I have used that >> in a small transmitter at my other QTH to send a static text giving >> callsign and QTH. I simply brought the output file into the 8051 code as a >> look-up table, and step through it with 100ms interrupts from a divider >> chain. >> >> For the original Stewart Nelson program, the following instructions were >> given: >> >> "If you have a BPSK-capable beacon which uses an EEPROM to store its >> message, WOLF can generate a binary file suitable for programming the >> device. This mode is activated by supplying a negative argument to the 'n' >> option: >> >> C:\wolf>wolf -x "KK7KA RENO NV" -n -1 >> WOLF version 0.31 >> Wrote wolfx.bin, 961 bytes >> >> The wolfx.bin file has one byte for each bit to be transmitted, followed >> by a "reset" byte. The data is in the LSB (bit 0), and the reset function >> is in bit 1. You may need to convert the .bin file to a .hex for some >> programmers." >> >> DL4YHF carried all of the command-line parameters into the GUI version. >> If you call up his program with: >> WOLF_GUI -x "W1TAG HOLDEN MA" -n -1 >> you will get a wolfx.bin file in that directory, which you can use for >> beaconing. >> >> If you want to change the message "on the fly," then work from the DL4YHF >> version noted by Markus. >> >> John, W1TAG >> >> On 2/1/2016 12:18 PM, Andy Talbot wrote: >> >>> I'm contemplating writing some PIC code to encode WOLF (the software) >>> into a PIC to make a standalone beacon transmitter source. A generator >>> for the rate 1/6 32 constraint length convolutional code will fit into >>> a 16F628A chip without too much difficulty - I've already done it for >>> JT4 and WSPR; it just needs more parallel shift registers and less >>> message memory than those modes do. >>> >>> Looking back though the archives of various progs written over the >>> years, I found one written back in 2010 that generates the bit pattern >>> for a WOLF message. So back then, must have been thinking of doing >>> something with WOLF but it never got beyond a basic coder. To be able >>> to write that software I must have had the original source code by John >>> / team or Wolf (the operator!) for the mode, but can't find it. >>> >>> Also have a bit of a conundrum - in that software I provided the option >>> for interleaving the final data or not, but don't know if the current >>> Wolf GUI software implements interleaving or not. >>> >>> This is the interleaving code I wrote back then (PowerBasic language, >>> variables here are all long ints) but don't know if its currently >>> implemented in the latest versions >>> >>> IF interlv THEN >>> tempj = j >>> SHIFT RIGHT tempj , 3 >>> PTR = k * 80 + (j AND 7) * 10 + tempj + i * 2 >>> ELSE >>> PTR = k * 80 + j + i * 16 >>> END IF >>> outdata(PTR) = b >>> >>> >>> Is the WOLF source code available anywhere, and is interleaving >>> implemented? >>> >>> Also, is there an option somewhere to generate a file or even a screen >>> showing of the output bit pattern? >>> Short of actually running WolfGUI with a test message, recording the >>> output and comparing it with my generated sequence for the same message >>> it's difficult to know if my software gives the right answers. >>> >>> Andy G4JNT >>> >> >> > --001a11473788d18b22052ac6b3e8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
NOW I know why the interleaving option was included:
T= here is a conditional statement in the WOLF source code :

#if INTLV
=C2=A0 =C2=A0out[k*MSGLENB + (j&7)*10 = + ((j&8)>>3) + i*2] =3D (ushort)b;
#else
=C2= =A0 =C2=A0out[k*MSGLENB + j + i*WLEN] =3D (ushort)b;
#endif
=

Which I jus= t copied and translated to PowerBasic, thinking interleaving may be a user = option.

I clearly had the same source code file back then but don't recall it= - time flies as you get older :-(

Andy


On 1 Febru= ary 2016 at 18:47, Andy Talbot <andy.g4jnt@gmail.com> wro= te:
Excellent !
Than= ks for that pointer

I've just run WOLF_GUI wit= h the -n option and compared the results with that software written five ye= ars ago..=C2=A0 When interleaving is used, it gives the same answer.=C2=A0 = So all seems to be OK with it. =C2=A0 Wonder why I included an option to le= ave interleaving out?=C2=A0 Must have had a reason back then...
<= br>
I want to be able to generate the message in the PIC on the f= ly, so variable data can be inserted and allow the mode to be used for tele= metry type purposes on a beacon transmitter.

See <= a href=3D"http://www.g4jnt.com/WSJT_Position_reporting.pdf" target=3D"_blan= k">http://www.g4jnt.com/WSJT_Position_reporting.pdf =C2=A0for an exampl= e, =C2=A0using the =C2=A0JT4 mode in the WSJT suite for position reporting.= =C2=A0 =C2=A0Random timed BPSK is a lot easier to generate and use for thi= s =C2=A0than is MFSK =C2=A0in time-locked bursts=C2=A0

Andy =C2=A0G4JNT

On 1 February 2016 at 18:14, John Andrews <w1= tag@charter.net> wrote:
Andy,

WOLF interleaving hasn't changed since the very beginning. Markus has p= ointed out the source code location -- Wolf Buscher's GUI is a wrap-aro= und for the core code created by Stewart Nelson.

As Warren suggests, the WOLF and WOLF_GUI programs have a method of creatin= g a file representing the 960 bits in the message. I have used that in a sm= all transmitter at my other QTH to send a static text giving callsign and Q= TH. I simply brought the output file into the 8051 code as a look-up table,= and step through it with 100ms interrupts from a divider chain.

For the original Stewart Nelson program, the following instructions were gi= ven:

"If you have a BPSK-capable beacon which uses an EEPROM to store its m= essage, WOLF can generate a binary file suitable for programming the device= . This mode is activated by supplying a negative argument to the 'n'= ; option:

C:\wolf>wolf -x "KK7KA RENO NV" -n -1
WOLF version 0.31
Wrote wolfx.bin, 961 bytes

The wolfx.bin file has one byte for each bit to be transmitted, followed by= a "reset" byte. The data is in the LSB (bit 0), and the reset fu= nction is in bit 1. You may need to convert the .bin file to a .hex for som= e programmers."

DL4YHF carried all of the command-line parameters into the GUI version. If = you call up his program with:
WOLF_GUI -x "W1TAG HOLDEN MA" -n -1
you will get a wolfx.bin file in that directory, which you can use for beac= oning.

If you want to change the message "on the fly," then work from th= e DL4YHF version noted by Markus.

John, W1TAG

On 2/1/2016 12:18 PM, Andy Talbot wrote:
I'm contemplating writing some PIC code to encode WOLF (the software) into a PIC to make a standalone beacon transmitter source.=C2=A0 =C2=A0A ge= nerator
for the rate 1/6=C2=A0 32 constraint length=C2=A0 convolutional code will f= it into
a 16F628A chip=C2=A0 without too much difficulty - I've already done it= for
JT4 and WSPR; it just needs more parallel shift registers and less
message memory than those modes do.

Looking back though the archives of various progs written over the
years, I found one written back in 2010 that generates the bit pattern
for a WOLF message.=C2=A0 =C2=A0So back then,=C2=A0 must have been thinking= of doing
something with WOLF but it never got beyond a basic coder.=C2=A0 =C2=A0To b= e able
to write that software I must have had the original source code by John
/ team or Wolf (the operator!) for the mode, but can't find it.

Also have a bit of a conundrum - in that=C2=A0 software I provided the opti= on
for interleaving the final data or not, but don't know if the current Wolf GUI software implements interleaving or not.

This is the interleaving code I wrote back then=C2=A0 (PowerBasic language,=
=C2=A0 variables here are all long ints) but don't know if its currentl= y
implemented in the latest versions

IF interlv THEN
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0tempj =3D j =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0SHIFT RIGHT t= empj , 3
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PTR =3D k * 8= 0 + (j AND 7) * 10 + tempj + i * 2
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ELSE
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PTR =3D k * 8= 0 + j + i * 16
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0END IF
=C2=A0 =C2=A0outdata(PTR) =3D b


Is the WOLF source code available anywhere, and is interleaving
implemented?

Also, is there an option somewhere to generate a file or even a screen
showing of the output bit pattern?
Short of actually running WolfGUI with a test message, recording the
output and comparing it with my generated sequence for the same message
it's difficult to know if my software gives the right answers.

Andy=C2=A0 G4JNT



--001a11473788d18b22052ac6b3e8--