Description of the morse generator “Zufall-8”

8 components: PIC 16F84A-20 (up to 20 MHz)
crystal 16 MHz
2x C 30 pF
R 15 kOhm
matrix-keyboard3 x 4

This device is constructed for learnig and improvement of reception of morse code without PC or tape-recorder. For sending practice a handkey or a paddle is connectable. With paddles it works as a simple Iambic-keyer without dot/dash-memory. 

A circuit breaker is not necessary since the processor automatically always switches into the sleep-mode. 

Groups of 5 characters are sent in a pseudo-random way. Plain text, callsigns or Q-groups are not sent. The spent texts can be changed in rate and pitch. Also during hearing a step-by-step change of speed is possible. In the same way an unchangeable increase of the speed around 1 WpM all 4 groups is possible. 

The Farnsworth-Modus can be activated to help learning higher speeds. The normal letterspace is extended in this case. In Addition one can turn on the Farnsworth-II-Modus, the interword spaces are extended in this case correspondingly. The interword space is 7 + F + W element lengths at which F and W are the parameters of Farnsworth and Farnsworth II. 

The texts are "thrown" through a pseudocoincidence selection. A control onto 3 or more same signs following on each other does not occur. At the "dice" an initial value is modified according to a specific algorithm and the current RTCC value was associated with then initially. This Random-function comes from the Basic-compiler with which I programmed. Since the device runs RTCC-interrupt-controlled it resulted in the effect that the dicing took over always similar RTCC-values and produced homogeneous character strings. Anyway that was very clear at one of the first check programmes with few signs. With increase the character count's and the other tasks' that the program still has to carry out between the signs this effect moderated already. I added however, one separate menu-point, in which now in fact coincidental, dependent indeed on the time of pressing the button 1, the actual RTCC value is written into the EEPROM. In total all 64 bytes EEPROM for that are used. The program goes through now again and again the 64 bytes EEPROM around the signs to "dice". Now no repetition of passages more happens. In addition one can identify the text unambiguously through information of the initial value of the text. One can listen therefore to all approximately 65000 possibilities to any later times in order to compare for example the written down text again. If one has loaded new values into the EEPROM, that does not work of course anymore. 


    Only edition of the K, you are in the main menu
    loading of the stored initial value 1 into the current storeroom
    loading of the stored initial value 2 into the current storeroom
    loading of the stored initial value 3 into the current storeroom
    dies of an initial value
    sending of the current initial value (2 bytes as decimals)
6     sending of the current text speed in WpM
7 S   input of the new text speed in Wpm expected
8     decrease of the text speed around 1 WpM
    increase of the text speed around 1 WpM

0     setting menu M:

    selection of the character set:
            0 numerals, literals and special signs
            1 numerals
            2 literals
            3 numerals and literals
            4 numerals, literals, special signs, extra signs
            5 numerals, literals, special signs, extra signs,
              german Umlaute
            6 special signs, extra signs, german Umlaute
            Nothing changes after input of 7,8 or 9
2 F   input Farnsworth 0-9
3 W   input Farnsworth II 0-9
4 B   input command speed 0-9, speed is then (n+1)x4
5 G   input of the group number of the texts: (n+1)x20
6 H   pitch input 0-9 (488 - 1116 Hz)
7 Z   to every pressure on the 1 a new value is written into the EEPROM
      you start always at register 00, but you can break out with *
8 A   input of a new initial value as 2 bytes decimal
    changeover switch:
      U automatic speed increase ON
      K automatic speed increase OUT
*     back
#     back 

After every input you are again in the main menu.

The special signs are

, . = ? / 

Following are the extrasigns:

" - : ( ) ar sk of sn as

In the case of speed inputs under 04 and about 63 the device itself patches. The input of 00 does not change anything. The leading zeros must be entered. 

During the text output the speed can be varied through pressing of 8 or 9 (not, however, if the automatic speed increase is turned on). In addition people can break off with *. The press buttons are scanned only between the signs, therefore one must press long enough. 

The speed is computed severely to PARIS. Due to the limited solution the miscalculation with increasing speed ascends maximally to about. 0,3 percent at speed 63 WpM.

The factors of Farnsworth and Farnsworth II remain the case of the bill without consideration, therefore only the sign speed is indicated. The text speed TT computes then as follows

TT = S. x 50 / ( 50 + 5 F x W + )

One can practice therefore well for the code-examination with the attitudes F=8, W=9 and S=10. 

You can connect a handkey at RB,0. During the menu inputs or the text output the handkey is spaced. 

When you connects a Paddle, the dash contact is connected with the same pin like the handkey. If dots are given after dashes the “Zufall8” switches to the Elbug-mode. This remains until approx. 10 min after the last dot input or until a text with # is started. 


The rough draft shows the possible Minimal variant. If one refuses on the Elbug, one can putRA,3 onto +Ub. To the protection in front of electrostatic discharges the manufacturer recommends R=100 ohm into the incoming lines to the portpins, one should do it calmly in the case of the key connections. 

The operating voltage becomes from the manufacturer with 4,5 - 5,5 V indicated. 3-4 battery or accumulator-cells are therefore the correct choice.

I read an item just in the ARRL-manual 2002 about PICS. There they write, that 6 V absolute O.K. would be. One could even refuse on the two Cs too. I did not try that out, however

The power consumption is about 6 mA. The exits RA,0 and RA,2 are maximally chargeable with 25 milliamperes. They are usually on zero and are switched if required to +Ub. The manufacturer recommends a resistance of 270 ohms between OSC2 and the resonator at specific crystals to avoid an overload of the crystal. This would be dependent on the crystal dates. I refused on that. 

One can connect also a transistor with loudspeaker / headphones onto the exit instead of the piezospeaker, the sound becomes much better. Very noble it would be to control a good sine tone generator via RA,2. 

After the connection of the operating voltage the PIC makes a few bills and sleeps then. Before key pressing nothing happens. The command speed on 4 WpM, the remaining selection menu values on 0 and the text speed on 16 WpM are preset. 

A lot of fun during telegraphy practice ! 

Mike, DJ9BX

p. s. please excuse for my bad English!