Hellschreiber !

manuka

Senior Member
Forum mentions & musings re. the use of PICAXE generated Hellscreiber for "eye decoded" weak signal comms has arisen before (Haxby 2005 etc), but I've decided to give it a decent workout, with modulation of a low power 27.145 MHz transmitter in mind.

For those who've just come in, fuzzy mode "Hell" dates from 1929 & remains legendary for weak signal decoding, & is particularly well suited for very slow comms- often under the most ugly noise. Thanks to sound card decoding software Hellscreiber has had a terrific revitalisation with radio hams in the last decade, & new submodes have developed. See Murray's magnificent site=> http://www.qsl.net/zl1bpu/FUZZY/History/History.html for overviews.

Dedicated soundcard based Hell decoding software abounds, but the simple use of (horizontal) "waterfall" spectral analysis displays, on the likes of particularly user friendly Spectran => http://digilander.libero.it/i2phd/spectran.html , readily allow the human eye to recognise patterns- see below. This sawtooth sample was simply acoustically coupled from a small speaker to a nearby PC mike, & even with a racous radio also playing was still quite visible.

It's easy enough to 08M generate visible characters with suitably stepped SOUND commands (ref. code that produced the sawtooth), but of course these really eat into memory. The "sawtooth " ran to ~30 bytes on an 08M ! With at least 0-9 in mind, & of course as much of the alphabet as possible - perhaps in a simple 5x7 grid, efficient encoding techniques will be needed.

Discrete 110 -115 SOUNDs for this trial have just been used & of course the ~40-90 Hz gaps between each could be refined with suitable CALIBFREQ tweaks. I can think of diverse approaches using modular portions to assemble characters, but there are no doubt more cryptic ones the brains trust can offer. Anyone? TIA - Stan.

Code:
slowhelldemo:
sound 2, (110,100,111,100,112,100,113,100,114,100,115,100,116,100,115,100,114,100,113,100,112,100,111,100)
goto slowhelldemo
 

Attachments

Last edited:

moxhamj

New Member
Great post! Ok, I've now returned from my long trek all over the internet researching this fascinating topic.

You mention transmitting. How does receiving work? Is it possible to get anything useful from a picaxe? I see mention of spectral analysis. How long before we can get a rudimentary FFT running on the new 20X2??
 

manuka

Senior Member
Dr_A - glad it intrigues you! My receiving trials were entirely PC soundcard based-even an old banger laptop works OK with slow Hell. Although there may be some scope at low acoustic freqs.,I doubt that even a fire breathing 20X2 could get a grip on FFT (Fast Fourier Transforms) algorithms. The real point however relates to human eye/brain signal decoding of freq. versus time scrolling "waterfall" display, & for this a decent screen is needed. Stan.
 

Rickharris

Senior Member
Interesting - does that mean that you could use hellschriber techniques at ELF and use ground conduction?? If I understand how this works (and that's not at all certain!) - Although the bandwidth would be very narrow at ELF the time span could be expanded to make up for that.

Interesting idea using the whole earth as a communication medium.
 

manuka

Senior Member
MM57: Shades of "The meek shall inherit the Earth, but not its mineral rights". (J. Paul Getty 1892-1976)

RH: There are indeed diverse techniques communicating at just a few ch/min - or longer- using milli or even microWatt transmitters. They exploit the fact that weak signals, perhaps too weak to hear & many decibels below the noise floor,are coherent when compared with the non-coherent receiver noise. Although inaudible, the eye (aided by suitable software) can detect associated signal patterns. Signals (especially if just single tone Morse stations at say 850Hz & 900 Hz) can readily be wtaerfall "read" individually. Some diehards are even using these techniques to communicate via reflections from high flying passing aircraft - or even bounces from meteor trails or the moon!
Footrnote: I'm not involved in these quests, but maintain a keen interest in developments. Stan.
 
Last edited:

Rickharris

Senior Member
Interesting arbitration mechanism required if more than one person ever wanted to use it at the same time, maybe ;)
Party line principle - you just listen to everyone! It didn't matter when few people had a phone.

On the other hand perhaps someone could come up with a slow speed method of putting a preamble or identifier to separate out the messages.
 

hax

New Member
It was a long time ago, but here is the code to write the digits 0 to 9 tested on an 18X running at 8mhz.

This took me quite a while to do all the numbers manually. The results are very good. Nice rounded numbers. I will try to get a photo posted up if i can find one.

Code:
I used the audacity program to record the numbers generated by 
> > hellschreiber.
> > 
> > 2. I then programmed the picaxe to alternate
> > high,low,high,low in 10ms 
> > intervals and recorded this on the same scale.
> > 
> > 3. I then compared the two and counted how many pulses had on
> > times and how 
> > many had off times.
> > 
> > The times do not correlate with each specific pixel because
> > the resolution 
> > of the picaxe is a little low using 8Mhz. So you do not get
> > really nicely 
> > shaped numbers, but they are very much close enough to be
> > recognised. 16Mhz 
> > would be the way to go if the speed does not impact on your
> > other 
> > programming.
> > 
> > Here is the whole set:
> > 
> > 
> > main: 'the following program sends the numbers 9527
> > continuously
> > 
> > 
> > b1 = 140 'pause time between characters
> > gosub send9
> > gosub send5
> > gosub send2
> > gosub send7
> > wait 2
> > goto main
> > 
> > 
> > send0:
> > 
> > sound 
> >
> 7,(50,7,0,4,50,3,0,3,50,2,0,3,50,1,0,2,50,2,0,1,50,2,0,3,50,1,0,3,50,4,0,4,50,6,0,9)
> > pause b1
> > return
> > 
> > send1:
> > sound 7,(50,2,0,10,50,2,0,4,50,8,0,5)
> > pause b1
> > return
> > 
> > 
> > send2:
> > sound 
> >
> 7,(0,8,50,3,0,3,50,2,0,3,50,4,0,2,50,3,0,2,50,2,0,1,50,2,0,1,50,3,0,2,50,2,0,2,50,4,0,3,50,2)
> > pause b1
> > return
> > 
> > 
> > send3:
> > sound 
> >
> 7,(0,8,50,2,0,4,50,2,0,3,50,2,0,4,50,2,0,3,50,2,0,1,50,2,0,1,50,2,0,3,50,2,0,1,50,2,0,1,50,2,0,4,50,6,0,6)
> > pause b1
> > return
> > 
> > send4:
> > sound 7,(0,9,50,7,0,4,50,2,0,9,50,2,0,7,50,8,0,5,50,3,0,9)
> > pause b1
> > return
> > 
> > send5:
> > sound 
> >
> 7,(0,8,50,1,0,3,50,4,0,3,50,1,0,3,50,1,0,2,50,1,0,3,50,2,0,2,50,1,0,2,50,1,0,4,50,4,0,2,50,1,0,5)
> > pause b1
> > return
> > 
> > send6:
> > sound 
> >
> 7,(0,8,50,7,0,3,50,2,0,1,50,2,0,2,50,2,0,2,50,2,0,2,50,2,0,2,50,2,0,1,50,2,0,2,50,2,0,6,50,4,0,8)
> > pause b1
> > return
> > 
> > send7:
> > sound 
> >
> 7,(0,7,50,3,0,4,50,2,0,4,50,2,0,4,50,1,0,6,50,2,0,2,50,1,0,7,50,4,0,9,50,2,0,4)
> > pause b1
> > return
> > 
> > send8:
> > sound 
> >
> 7,(0,8,50,3,0,2,50,3,0,2,50,2,0,1,50,4,0,1,50,2,0,1,50,2,0,2,50,2,0,2,50,2,0,1,50,2,0,1,50,4,0,1,50,2,0,2,50,3,0,2,50,3,0,5)
> > pause b1
> > return
> > 
> > send9:
> > sound 
> >
> 7,(0,1,50,3,0,3,50,2,0,2,50,2,0,1,50,2,0,2,50,2,0,2,50,2,0,1,50,2,0,3,50,2,0,1,50,2,0,1,50,2,0,4,50,7,0,5)
> > pause b1
> > return
> > 
> > 
> > 
> > 
> > goto main
> > 
> >

Please excuse the formatting above. Naturally take out all the >> characters.
 

manuka

Senior Member
Haxby: Many thanks! In fact I've been taken with the weak signal benefits of sequential tone Hell, & have just given this a quick 08M trial. Of course 08M SOUNDs are too widely spaced normally, but a judicious tweak with CALIBFREQ. has been satisfactory for bringing a sequence much closer together. I've pondered assorted ON GOSUB & EEPROM approaches to fit at least a few numbers into an 08M, but feel the more generous memory of an 18X may be needed. Any thoughts appreciated.

Code:
'PICAXE 08M sequential multitone Hell demo -7 tall 5 wide grid. Decode with Spectran waterfall etc. Stan 9/09
'PICAXE SOUND 114,115 etc too widely spaced, so freqs.brought closer using calibfreq. tweaks. All now near ~800Hz
'Intended for beacon ID, but this "A" demo ~150 bytes ! May suit just numbers or 18X?
'NB 08M has 16 gosub max,but 18X allows 255. Perhaps use ON GOSUB, or define & store chs.in EEPROM?

tonehelldemo:
gosub one:gosub two: gosub three: gosub four:gosub five:  gosub six: gosub four: gosub seven:gosub four: gosub six
gosub five: gosub four: gosub three: gosub two: gosub one    '  "paints" character A onto spectral waterfall
wait 2
goto tonehelldemo

seven:calibfreq 0:sound 2,(114,20):return
six:calibfreq -2:sound 2,(114,20):return
five:calibfreq -4:sound 2,(114,20):return
four:calibfreq -6 :sound 2,(114,20):return
three:calibfreq -8:sound 2,(114,20):return
two:calibfreq -10:sound 2,(114,20):return
one:calibfreq -12 :sound 2,(114,20):return
Stan.
 

Attachments

manuka

Senior Member
Mk 2 EEPROM approach -even in my very bare bones form this certainly looks more efficient, & characters are easier to tweak. VK6HV style ham call signs look feasible even in a 08M, as would of course repetitive letter words like "HAVANA". Stan (ZL2APS)

Code:
'PICAXE 08M sequential multitone Hell demo 7 tall 5 wide grid. Decode with Spectran waterfall etc. Stan 9/09
'PICAXE SOUND 114,115 etc too widely spaced, so freqs.brought closer using calibfreq. tweaks. All now near ~900Hz
'Intended for beacon ID, but this demo max 4 character max  

'Example of letter H with (optional) doubled tones to fatten character

'      77       77    
'     66       66     
'    55       55
'   44444444444
'  33       33
' 22       22
'11       11

tonehelldemo:

for b0= 0 to 29:read b0,b1:b2=b1*2        'A
calibfreq b2:sound 2,(114,10):next b0
wait 2

for b0= 30 to 59:read b0,b1:b2=b1*2       'N
calibfreq b2:sound 2,(114,10):next b0
wait 2

for b0= 60 to 89:read b0,b1:b2=b1*2       'H
calibfreq b2:sound 2,(114,10):next b0
wait 2

for b0= 90 to 116:read b0,b1:b2=b1*2      'V
calibfreq b2:sound 2,(114,10):next b0

wait 5
goto tonehelldemo

eeprom 0,  ("112233445566447744665544332211") 'A
eeprom 30, ("123456766655544433322212345677") 'N
eeprom 60, ("123456744444444444444112345677") 'H
eeprom 90, ("77665544332211223344556677")     'V
 

Attachments

manuka

Senior Member
OK - PICAXE tone Hell software now tamed to EEPROM store typical XXXXX(X) style ham calls such as G3ABC/ZL2APS etc. Such 5 or 6 ch. calls all nicely store, along with the program, in a humble 08M. The horizontal scrolling water fall display of Spectran has been found ideal for eventual visual decoding- even an older laptop (300MHz) ran this well.

Check the VK6HV "beacon" screen sample below that relates to a low power once a minute 10m ham band beacon Steve in WA (Australia) has rustled up already to suit the approach. We've a Silicon Chip article in mind as you've probably guessed, & may further extend things to a DS18B20 Hellscreiber thermometer! I've seen Hell digital clocks, but can't say I've ever heard of Hell style temperature displays before - every home should have one. Recall of course Swan's Law "You can never have too many thermometers"

Steve's "A" comment (ref. 2nd picture) "On air performance is amazing! The IC706 MkIIg volume was so low that I had to call my wife and son in the room, since they have normal hearing . But even they couldn't hear it unless they put their ear about 250mm from the speaker radio speaker. Headset mic was about 50 mm away. It even decoded it through PC fan noise, dog barking and all three of use talking in the room"

NB: It's predictably a chore to produce appropriate character dot patterns! The present "H" mid level bar is too fat, while the "V" lacks slant for consistency with the other characters. (Sequential multitone (SM/T) Hellschreiber chs. will of course normally slant.) To ease the pain, software & documentation will probably be further refined before promotion. Stan
 

Attachments

Last edited:

manuka

Senior Member
From Steve " Been toying around with some Hell code myself for the last couple nights. Some what of a rip off your old CW program. Seems to work, but I'm sure there is a better way to do it. It sends a 5 X 7 matrix. Each column of the matrix corresponds to a number, 5 numbers sent for a complete matrix. Sending one number "0" (zero) is a column space. (one column of silence). Sending 5 number "0's" is a complete character space. (A whole silent 5 X 7 matrix sent) About 94 bytes with one letter to be sent. And about 198 bytes with 12 letters and spaces to be sent. Using headset mic again to input to Spectran

Code:
 '***************************************************
'*                                                 *
'*   Steve's Experimental HELL PICAXE Code 2009    *
'*            Definitely Experimental!             *
'*                                                 *
'***************************************************

REM NOTE: Feel free to add, change, midify or optimize as you require. 


Symbol Testbyte = b0
Symbol Column_numbers = b4
Symbol Character = b8
Symbol Column_elements = b6
Symbol Column_Bits = b2
Symbol Tones = B10
SetFreq m8

Start:
Wait 20                                    'delay between repeat of beacon  

For Column_numbers = 0 to 90
Lookup Column_numbers, (97,81,73,69,67,0,127,64,64,64,64,0,121,73,73,73,70,0,124,10,9,10,124,0,127,9,9,9,6,0,70,73,73,73,49,0,0,0,0,0,124,10,9,10,124,0,127,4,8,16,127,0,127,65,65,65,62,0,0,0,0,0,31,32,64,32,31,0,127,8,20,34,65,0,60,74,73,73,49,0,127,8,8,8,127,0,31,32,64,32,31),Character  
Testbyte = Character
Tones = 80
Gosub Hell
Next
Goto Start

Hell:
For Column_Elements = 1 to 7
Column_Bits = bit6                          'This is the 7th bit in Byte B0 (bit0 - bit7). Send a tone if "bit6" = "1",
If Column_Bits = 1 Then Gosub ToneON        '>else send silence if bit6 = "0"
If Column_Bits = 0 Then Gosub ToneOFF
Testbyte = Testbyte * 2                     'Shift left 
Next Column_Elements
Return 

ToneON:                                     'Tones and duration may need adjusting
Sound 1, (Tones, 20)
Tones = Tones + 1
Bit6 = 0
pause 50
return 

ToneOFF:
Sound 1, (0, 20)
Tones = Tones + 1 
Bit6 = 0 
Pause 50
return 



REM                                             BIT6
REM                                              |
REM                                              |
REM                                              | 
REM                                              V
REM 7 high X 5 wide Matrix    Letter "Z" = 97 - 01100001
REM                                        81 - 01010001
REM [ 1][ 1][ 1][ 1][ 1]                   73 - 01001001
REM [ 2][ 2][ 2][ 2][ 2]                   69 - 01000101
REM [ 4][ 4][ 4][ 4][ 4]                   67 - 01000011
REM [ 8][ 8][ 8][ 8][ 8]
REM [16][16][16][16][16]
REM [32][32][32][32][32]
REM [64][64][64][64][64]


REM Examples:
REM ZL2APS (97,81,73,69,67,0,127,64,64,64,64,0,121,73,73,73,70,0,124,10,9,10,124,0,127,9,9,9,6,0,70,73,73,73,49)
REM VK6HV (31,32,64,32,31,0,127,8,20,34,65,0,60,74,73,73,49,0,127,8,8,8,127,0,31,32,64,32,31) 

REM A = 124, 10,  9, 10,124   REM 0 =  62, 65, 65, 65, 62 
REM B = 127, 73, 73, 73, 62   REM 1 =  68, 66,127, 64, 64
REM C =  62, 65, 65, 65, 65   REM 2 = 121, 73, 73, 73, 70
REM D = 127, 65, 65, 65, 62   REM 4 =  15,  8,  8,  8,127
REM E = 127, 73, 73, 73, 73   REM 5 =  79, 73, 73, 73, 49
REM F = 127,  9,  9,  9,  9   REM 6 =  60, 74, 73, 73, 49
REM G =  63, 65, 73, 73, 49   REM 7 =   1,  1,120,  5,  3
REM H = 127,  8,  8,  8,127   REM 8 =  54, 73, 73, 73, 54
REM I =  65, 65,127, 65, 65   REM 9 =  6,   9,  9,  9,127
REM J =  65, 65,127,  1,  1
REM K = 127,  8, 20, 34, 65
REM L = 127, 64, 64, 64, 64
REM M = 127,  2,  4,  2,127
REM N = 127,  4,  8, 16,127
REM O =  62, 65, 65, 65, 62
REM P = 127,  9,  9,  9,  6
REM Q = 62,  65, 81, 33, 94
REM R = 127,  9, 25, 41, 70
REM S =  70, 73, 73, 73, 49
REM T =   1,  1,127,  1,  1
REM U =  63, 64,  6, 64, 63
REM V =  31, 32, 64, 32, 31
REM W = 127, 32, 16, 32,127
REM X =  65, 34, 28, 34, 65
REM Y =   1,  2,124,  2,  1
REM Z =  97, 81, 73, 69, 67

REM BEWARE, NOT ALL LETTERS AND NUMBERS HAVE BEEN TESTED! (as of 17-9-2009)

REM 94 bytes used with only one "Z" letter to send.
REM 197  bytes used with "ZL2APS AND VK6HV" to send.  Sure eats up the memory. Possibly there is a better way to do it.
 

Attachments

manuka

Senior Member
The latest version HRA mentions uses CALIBFREQ ($90) pokes to bring character dots closer together. Although displayed at ~3.5kHz, the fundamental is down around 700-800Hz (as expected from the code) - PICAXE-08M sound outputs produce significant odd harmonics, especially x3 & x5 (as above).

On air trials,with tone modulation of a 433 MHz transmitter, look feasible => http://www.picaxe.orconhosting.net.nz/433txrxtones.jpg Stan.
 

eclectic

Moderator
The latest version HRA mentions uses CALIBFREQ ($90) pokes to bring character dots closer together. Although displayed at ~3.5kHz, the fundamental is down around 700-800Hz (as expected from the code) - PICAXE-08M sound outputs produce significant odd harmonics, especially x3 & x5 (as above).

On air trials,with tone modulation of a 433 MHz transmitter, look feasible => http://www.picaxe.orconhosting.net.nz/433txrxtones.jpg Stan.
I'm slowly getting there. :)

I'm assuming that Hammy's "magic spells" aka calibfreqs,
will be released with the Sichip article?

e

(my screenshot should say "HELP")
 

Attachments

manuka

Senior Member
Good stuff. There are lots of tweaks possible with the waterfall software to enhance the image of course. Your "E" is looking a tad stretched- are you using our software?! Perhaps PM me for the latest version we've rustled up. Stan.
 
Last edited:

eclectic

Moderator
Good stuff. There are lots of tweaks possible with the waterfall software to enhance the image of course. Your "E" is looking a tad stretched- are you using our software?! Perhaps PM me for the latest version we've rustled up. Stan.
PM, requesting code, sent.

e
 

manuka

Senior Member
Latest demo version below (~25 ch.), which totally fills a 256 byte 08M ! Aside from the beacon end use we'd in mind, the twinkling tone effect is quite entrancing when acoustically coupled across a room. Mmm- perhaps worthy of an Arts Council Grant - "sound bytes" ? Extra: The lengthy "lookup" makes the Forum display too wide- I've hence wrapped values around here, & they may now need rejoining when run. PM me if you want the original. Stan.
Code:
'**************************************************
'*  VK/ZL PICAXE-08M HELLSCHREIBER beacon code    *
'*   Experimental Sequential Multi-Tone (SM/T)    *
'*  Looks capable of storing ~25 chs. on an 08M   *   
'* ZL2APS & VK6HV collaboration.Feedback welcome  *
'* This demo takes 256/256 bytes. Sept-0ct.2009  !*
'**************************************************
REM PC soundcard decode via SPECTRAN V2 "Waterfall" visual display 
REM Tweak auto bright,contrast,speed, gain & palette etc to suit
REM NOTE: Feel free to add, change, modify or optimize required. 
REM PICAXE tone generating syntax is in form PIN,(SOUND,DURATION)
REM Sound has values 0 (silence) to 128,with output freq =12048/(128.1-sound)
REM So sound =95 output ~12000/(128-95)= 12000/33 =~364 Hz, doubling to 728Hz when 8MHz SETFREQ M8
REM NB -varies slightly with temp. & individual PICAXE internal oscillator calibration.
REM CALIBFREQ +/-30 ( POKE $90 ) conveniently tweaks internal osc.freq.
REM ------------------------------------------------------------------------------------------
Symbol Testbyte = B0
Symbol Column_Numbers = B4
Symbol Character = B8
Symbol Column_Elements = B6
Symbol Column_Bits = B2
Symbol Tones = B10
Symbol Increment = B12
SetFreq M8


Start:
Wait 10                        'Delay between repeat of beacon - 8MHz clock halves value!.  
REM shows VK.ZL PICAXE "HELL" BEACON - make upper column_ number same as number of ch. elements.
REM Perhaps pad out with spaces (0,)? 
For Column_Numbers = 0 to 151   'setting col.number too high, usefully repeats last character!
Lookup Column_Numbers,(31,32,64,32,31,0,127,8,20,34,65,0,8,0,
97,81,73,69,67,0,127,64,64,64,64,0,0,0,0,0,0,0,
127,9,9,9,6,0,65,65,127,65,65,0,62,65,65,65,65,0,
124,10,9,10,124,0,65,34,28,34,65,0,127,73,73,73,73,0,0,0,0,0,0,
1,1,0,127,8,8,8,127,0,127,73,73,73,73,0,127,64,64,64,64,0,
127,64,64,64,64,0,1,1,0,0,0,0,0,0,
127,73,73,73,62,0,127,73,73,73,73,0,124,10,9,10,124,0,
62,65,65,65,65,0,62,65,65,65,62,0,
127,4,8,16,127,0,0,0,0,0,0,8),Character 

Testbyte = Character
Tones = 95
Increment = 0                            'Resets default to 0 after each 5x7 matrix col. sent 
Gosub Hellscreiber
Next
Goto Start

Hellscreiber:
For Column_Elements = 1 to 7
Column_Bits = Bit6                       '7th bit in Byte B0 (Bit0 - Bit7).
If Column_Bits = 1 Then Gosub ToneON    'Send tone if "Bit6" of Byte B0 = "1", 
If Column_Bits = 0 Then Gosub ToneOFF  'else send quiet if "Bit6" of Byte B0 ="0".only bit tested.
Testbyte = Testbyte * 2                  'Shift left! 
Next Column_Elements
Return 

ToneON:     
Poke $90, Increment                 'CALIBFREQ to bring tones (& thus images) tighter.       
Sound 1, (Tones, 15)               'PICAXE tone generating syntax in form pin,(sound, duration)
Bit6 = 0                                'Reset Bit6 of Byte B0 to "0" so Hellschreiber: can retest 
Increment = Increment + 2        'Increment a value + 1 to be POKEd at $90
Return 

ToneOFF:
Poke $90, Increment
Sound 1, (0, 15 )                   'Sound value of 0 gives silence 
Bit6 = 0
Increment = Increment + 2           'Increment a value +1 to be POKEd at $90  
Return 

REM -------------------------------------------------------------------------------------
REM Ch.images shown scrolling down the screen "waterfall" style -SPECTRAN horiz. display turns 90°
REM Rt. mouse button click on SPECTRAN display toggles waterfall scroll from downward to leftwards
REM Construct own characters by considering them scrolling downwards -thus N viewed as Z etc
REM                                       Bit6(this is the 7th bit of the 8bit byte, of Byte B0)
REM                                                             |
REM                                                             |        Last sent Bit0 column 5  
REM 5 wide by 7 high matrix                                     |             |                |
REM                                                             V             |                V
REM  Column numbers  1-5          Ex. letter "A" = 124 - *1111100       ##### V                #   
REM  #1  #2  #3  #4  #5                             10 - *0001010          # #               #   #
REM [ 1][ 1][ 1][ 1]((1)) (Bit0                      9 - *0001001 thus =>  #  #            #       #
REM [ 2][ 2][ 2][ 2][ 2]  (Bit1)                    10 - *0001010          # #             # # # # #
REM [ 4][ 4][ 4][ 4][ 4]  (Bit2)                   124 - *1111100       #####              #       #
REM [ 8][ 8][ 8][ 8][ 8]  (Bit3)                                                           #       #
REM [16][16][16][16][16]  (Bit4)           This is Bit6 of column 1,the first bit sent.--> #       #
REM [32][32][32][32][32]  (Bit5)            Then Bit5 of column 1, then Bit 4 of column 1,             
REM (64)[64][64][64][64]  (Bit6)            Bit3, Bit2, Bit1, Bit0, etc. etc. Then Bit6 
REM [ *] [*][ *][ *][ *]  (Bit7,not used)   of column 2, then Bit 5, Bit4 and so on until
REM                                         all 35 bits are "shifted left" through the BIT6
REM                                         of byte B0 location (with appropriate tone or
REM                                         silence) & a complete 5x7 character matrix sent.
REM Bit6 (64) in column #1 is the first 
REM bit sent of the 5 x 7 matrix, Bit0    
REM ((1)) in column #5 is the last bit sent.
REM -------------------------------------------------------------------------------------------
REM         LETTERS:                      NUMBERS:                 PUNCTUATION etc: 
REM .
REM A = 124, 10,  9, 10,124       0 =  62, 65, 65, 65, 62       ! =   0,  0, 95,  0,  0
REM B = 127, 73, 73, 73, 62       1 =  68, 66,127, 64, 64       # =  20,127, 20,127, 20
REM C =  62, 65, 65, 65, 65       2 = 121, 73, 73, 73, 70       [ =   0,127, 65, 65,  0 
REM D = 127, 65, 65, 65, 62       3 =  65, 73, 77, 75, 49       ] =   0, 65, 65,127,  0 
REM E = 127, 73, 73, 73, 73       4 =  15,  8,  8,  8,127       \ =   2,  4,  8, 16, 32  
REM F = 127,  9,  9,  9,  9       5 =  79, 73, 73, 73, 49       / =  32, 16,  8,  4,  2
REM G =  62, 65, 73, 73, 57       6 =  60, 74, 73, 73, 49       " =   0,  1,  1,  0,  0
REM H = 127,  8,  8,  8,127       7 =   1,  1,121,  5,  3       . =   0, 64,  0,  0,  0
REM I =  65, 65,127, 65, 65       8 =  54, 73, 73, 73, 54       , =   0, 96,  0,  0,  0
REM J = 113, 65, 65,127,  1       9 =   6,  9,  9,  9,127       < =   8, 20, 34, 65,  0
REM K = 127,  8, 20, 34, 65                                     > =   0, 65, 34, 20,  8
REM L = 127, 64, 64, 64, 64                                     ? =   0,  1, 89,  9,  6
REM M = 127,  2,  4,  2,127                                     * =  73, 42,127, 42, 73
REM N = 127,  4,  8, 16,127                                     % =  35, 19,  8,100, 98
REM O =  62, 65, 65, 65, 62                                     + =   8,  8,127,  8,  8
REM P = 127,  9,  9,  9,  6                                     - =   8,  8,  8,  8,  8
REM Q =  62, 65, 81, 33, 94                                     = =  20, 20, 20, 20, 20
REM R = 127,  9, 25, 41, 70
REM S =  70, 73, 73, 73, 49
REM T =   1,  1,127,  1,  1
REM U =  63, 64, 64, 64, 63
REM V =  31, 32, 64, 32, 31
REM W = 127, 32, 16, 32,127
REM X =  65, 34, 28, 34, 65
REM Y =   1,  2,124,  2,  1
REM Z =  97, 81, 73, 69, 67
REM -------------------------------------------------------------------------------------
REM Steve's call example. (0,)= space -use one between letters & perhaps six between words.
REM            V             K                6                  H               V
REM (31,32,64,32,31,0,127,8,20,34,65,0,60,74,73,73,49,0,127,8,8,8,127,0,31,32,64,32,31)
 

Attachments

Last edited:
Top