Vorläufige "Anleitung" zu DL4YHF's QRP-PIC-Keyer

Versions-Übersicht:
07/1999: Erste Hardware, Software und Beschreibungen
03/2000: "Baken"-Modus eingebaut (auch für ARDF-Sender geeignet)
03/2013: Statt nur 'QSK' ist das PTT-Steuersignal nun auch für "Semi-BK"-Betrieb nutzbar

Geschwindigkeitseinstellung

Die Geschwindigkeit der Telegrafiezeichen wird mit dem Geschwindigkeits-Poti eingestellt. Die Geschwindigkeit kann auch während der Wiedergabe eines Textes geaendert werden. Der einstellbare Geschwindigkeitsbereich liegt zwischen 30 und 300 Buchstaben/Minute.

Bei "vollem Linksanschlag" ist noch eine sehr langsame Wiedergabe für Langwellenfreunde eingebaut. Dazu muss C1 von 200nF auf etwa 250nF erhöht werden. Derzeit leider noch etwas zu schnell für "Slow-CW".

Taster

Jeder Taster steuert Aufnahme bzw. Wiedergabe eines Textes. Taster "Message 1" steuert eine maximal 63 Zeichen lange Nachricht, deren Inhalt auch beim Abklemmen der Batterie erhalten bleibt.

Taster "Message 2" steuert eine maximal ca. 55 Zeichen lange Nachricht, deren Inhalt beim Abklemmen der Batterie verloren geht (dies spielt i.A. keine Rolle, weil die Batterie wegen der geringen Stromaufnahme nie abgeklemmt werden muss).

Werden beide Taster gleichzeitig gedrückt, schaltet der Keyer in den "Kommando-Modus" um (s.U.).

Abrufen einer gespeicherten Nachricht

Ein kurzer Druck eines "Message"-Buttons startet die Wiedergabe der entsprechenden Message. Bei "partitionierten" Messages (siehe Unten) dienen mehrere kurz hintereinanderfolgende Tastendrücke zur Auswahl des Teils der Nachricht.

Aufzeichnen einer Nachricht

Zur Aufnahme einer neuen Nachricht muss der entsprechende "Message"-Button etwa 0.5 Sekunden gedrückt gehalten werden (bis der Keyer die Meldung "M" wie "message record" ausgibt).

Zum Beenden der Aufnahme reicht ein weiterer kurzer Druck des "Message"-Buttons.

Wenn der Speicher bei der Aufnahme voll ist, meldet der Keyer "F" wie "full" und beendet die Aufnahme automatisch.

Der QRP-Keyer speichert auch die PAUSEN zwischen WÖRTERN (im Gegensatz zum NORCAL-Keyer von N6KR) als eigenes Zeichen, wobei die Pausendauer als Vielfaches einer Punkt-Dauer mitgespeichert wird. Eine "Pause" zwischen WÖRTERN belegt daher einen eigenen Speicherplatz.

Partitionieren einer Nachricht

In einem Message-Speicher können statt einer "langen" Nachricht auch mehrere "kurze" Nachrichten abgelegt werden (-> "partitionierte Nachricht").

Dazu dient das "End-Of-Message"-Zeichen. Alle Nachrichten müssen bei der Aufnahme als eine "lange" Nachricht eingegeben werden, wobei das "EOM"-Zeichen als Trennzeichen zwischen den einzelnen Teilen dient.

Das EOM-Zeichen wird als zusammenhängendes E+O+M eingegeben (".-----").

Abrufen eines Teils einer "partitionierten" Nachricht

Um den zweiten oder weitere Teile einer partitionierten Nachricht abzurufen, muß der "Message"-Taster entsprechend oft KURZ HINTEREINANDER gedrückt werden.

Wenn z.B. im ersten Speicher eine vierteilige Nachricht gespeichert ist, so kann der letzte Teil durch viermaliges schnelles Drücken des "Message 1"-Tasters abgerufen werden.

Wird der Taster öfter gedrückt als Nachrichten-Teile vorhanden sind, wird gar nichts abgespielt.

Bei der Wiedergabe wird das EOM-Zeichen nicht mitgespielt, sondern die Wiedergabe beendet sobald der Keyer im Speicher ein EOM-Zeichen vorfindet... bis auf eine Ausnahme:

Im weiter unten vorgestellten "LIST-Modus" werden alle Zeichen, die in einem Speicher abgelegt sind, ohne Umwandlung abgespielt (dazu zählen außer dem EOM-Zeichen auch andere "Sonderfunktions-Platzhalter" bzw. "Makros").

Mithör-und Signalton

An Pin 2 des Prozessors ("RA3" bzw. "Audio Out") kann der Mithör- und Signalton abgegriffen werden.

Im "normalen" Telegrafiebetrieb dient dieses Signal als MITHÖRTON ("sidetone"), falls jemand den Keyer in seinen Eingenbau-QRP- TRX einbauen will.

Im "Kommandomodus", für "Warnungen" und andere "Signale" dient der etwas tiefer klingende SIGNALTON. Der Signalton vereinfacht die Bedienung des Keyers, besonders wenn die diversen "Sonderfunktionen" genutzt werden sollen.

Fast immer besteht der vom Keyer erzeugte Signalton aus einem Morsezeichen, dessen Geschwindigkeit NICHT vom Geschwindigkeitspoti abhängig ist (sondern "fest" mit ca. 60..80 Buchstaben/Minute).

Wenn der Keyer -wie vorgesehen- in eine vorhandene Taste eingebaut werden soll, empfiehlt sich der Anschluß eines Piezo-Piepsers.

Dazu eignen sich auch geschlachtete "Melodie-Glückwunsch-Karten" oder anderer elektronischer Schnickschnack.

Sollte kein Piezo-Piepser verfügbar sein, so können die Signal-Meldungen auch optisch angezeigt werden.

Dazu kann an Pin 8 des Prozessors ("RB2" bzw. "Signal LED") eine rote Low-Current-LED über einen Vorwiderstand (ca. 1kOhm) nach Masse angeschlossen werden.

Diese LED wird vom Keyer immer dann angesteuert, wenn der SIGNALton (nicht der MITHÖRTON) erzeugt wird.

Schaltausgang für PTT / "QSK" / "Semi-BK"

Dieser Schaltausgang wird in den meisten Fällen nicht benötigt, denn vom Keyer wird i.A. nur das Morse-Tast-Signal einem üblichen Kurzwellen-Transceiver (oder 'Allmode-TRX') zugeführt; die Umschaltung zwischen Senden und Empfangen ("PTT") erledigen fast alle Transceiver selbst (vom IC-202 und ähnlichen 'Veteranen' abgesehen). Beim Autor (DL4YHF) kam dieser Schaltausgang im März 2013 zum Einsatz, allerdings nicht als 'schneller Full-BK' (aka "QSK")-Ausgang, sondern als Semi-BK-Schaltausgang mit einer kurzen Zwangspause zum Auftasten des Senders (der in diesem Sonderfall aus einem FM-Handfunkgerät bestand, mit dem ein HF-Transceiver per DTMF fernbedient wurde).


Prinzipielles Timing der Keyer-Signale im 'Semi-BK'-Betrieb :
TD = Verzögerung zum Auftasten des Senders
RD = Verzögerung bis zum Umschalten auf Empfang

Die Verzögerungszeit beim ersten "Auftasten" des Senders (TD) ist nur in der Semi-BK-Variante der Firmware enthalten. Sie kann im Kommando-Modus (s.U.) mit dem Befehl 'X0' bis 'X9' zwischen Null und 9 mal 20 Millisekunden eingestellt werden. Ist der Sender einmal aufgetastet (d.h. die 'PTT-Relais' haben angezogen), gibt es keine Verzögerung zwischen Schliessen eines Tastenkontaktes und der Ausgabe des entsprechenden Punktes bzw Striches mehr (siehe Timing-Diagramm).
Die Verzögerungszeit nach dem letzten gesendeten Zeichen und dem Abschalten des Senders ist einstellbar ("Y0".."Y9"), z.B. auf 1 Sekunde ("Y5"). Auch sie ist nur in der Semi-BK-Variante der Firmware enthalten !
In der QSK-Variante bleibt der 'QSK'-Ausgang des Keyers nur während eines Zeichens aktiv, damit 'zwischen den Zeichen' gehört werden kann. Ob Transceiver und PA wirklich für 'QSK' geeignet sind, ist ein anderes Thema..

Kommando-Modus

Spezielle Kommandos an den Keyer werden im "Kommando-Modus" per Paddle eingegeben. Um in den Kommando-Modus zu gelangen, müssen beide "Message"-Taster gleichzeitig gedrückt werden. Der Keyer antwortet darauf mit dem Signalton "C" wie "Command mode".
Im Kommando-Modus wartet der Keyer auf die Eingabe von Kommandos mit der Morsetaste. Im Normalfall ist jedes Kommando ein einzelnes Morsezeichen. Der Keyer antwortet auf jedes Kommando mit dem Signal "R" ("Roger"), wenn er das Kommando verstanden hat oder mit "?" wenn das Kommando nicht erkannt wurde.
Der Kommando-Modus kann durch nochmaliges Drücken beider Message-Taster oder durch Eingabe des Befehls "D" ("Done") mit dem Paddle beendet werden.
Die folgenden Kommandos sind derzeit (mindestens) implementiert:

Kommando "A":    Punkt/Strich-Speicher aus, "ALTER" Modus
(Dieser Modus wird vermutlich auch "Iambic Mode A" genannt)

Kommando "B":    Punkt/Strich-Speicher an, "BESSERER" Modus
Dies ist die vom Autor bevorzugte "modernere" Betriebsart, in der z.B. beim Senden eines STRICHES bereits die Betätigung des PUNKT-Kontaktes in den "Punkt-Speicher" übernommen wird. Nach dem Strich und der anschliessenden kurzen Pause wird dann automatisch der Punkt gesendet, auch wenn der Punkt-Kontakt bereits vor dem Ende des Stiches wieder losgelassen wird. Dieser Modus wird vermutlich auch "Iambic Mode B" genannt.

Kommando "C": "beaCon"-Modus (endlose Wiedergabe ohne Zeitlimit)
Der "Baken-Modus" (seit März 2000) ähnelt dem "Endlos"-Modus, enthält aber keine Abfrage eines Zeitlimits. Dieser Modus sollte nur für Bakensteuerungen und ARDF-Sender verwendet werden.
Um "CQ-Ruf-Schleifen" zu realisieren, sollte stattdessem der weiter unten beschriebene "Endlos-Modus" verwendet werden (der seinen Namen "Endlos" nicht ganz zu recht trägt, aber "E" ist so ein schöner kurzer CW-Buchstabe :-)

Kommando "D": "Done" Verläßt den "Kommando"-Modus und kehrt zurück in den "normalen" Keyer-Modus.

Kommando "E": "Endlos-Schleife"
Schaltet den Wiedergabe-Modus auf "Endlos-Schleife". Damit kann eine gespeicherte Nachricht (fast) endlos abgenudelt werden, während sich der Operator ein kühles Pils genehmigt. Allerdings ist nach 255 Wiederholungen Schluß und der Keyer verläßt die Endlosschleife (dies verhindert Dauersendungen, falls falls der Operator unerwartet mal "wo hin" muss).
Zum Abschalten des "Endlos-Schleifen-Modus" dient das Kommando "F" ("Fix it..").
Durch das Aktivieren des "Endlos-Schleifen-Modus" wird noch keine Wiedergabe aus dem Speicher gestartet, das funktioniert wie gewohnt per Message-Taster.
Das Abschalten der Wiedergabe funktioniert natürlich auch im Endlos-Schleifen-Modus wie üblich per Paddle.
Tip: Am Ende einer "endlos" gespielten Nachricht sollte eine ausreichend lange Wartepause eingespeichert werden, die das HÖREN ermöglicht (es sei denn, der TRX arbeitet mit "QSK").
Dem "Endlos"-Modus sehr ähnlich ist der "Baken"-Modus (siehe Kommando "C"). Im Baken-Modus entfällt die Abfrage von maximal 255 Wiederholungen.

Kommando "F": "Fertig", oder auch "Fix it". Beendet "E" ("fast Endlose Rufschleife") oder "B" ("Baken-Schleife"), und stellt die normale Funktion der Tasten zum Abrufen der Speicher wieder her:
Taster einmal gedrückt -> Meldungstext (oder CQ-Ruf) wird einmal gesendet, danach stoppt der Keyer.

Kommando "L": "List-Modus" Verhindert bei Wiedergabe von gespeicherten Messages die "Sonderbehandlung" von Zeichencodes wie "EOM", "NNN", "ANN" usw.
Dient zur Kontrolle von "Sonderfunktionen".
Der Normalbetrieb wird mit dem "M"-Kommando wiederhergestellt.

Kommando "M": "Makro-Modus" In diesem Nachricht-Wiedergabe-Modus haben bestimmte Zeichen wie "EOM", "NNN", "ANN" u.A. eine Sonderfunktion und werden bei der Wiedergabe "speziell" behandelt. Dies ist die "Normal-Einstellung", die für Kontrollzwecke mit dem "L"-Kommando außer Kraft gesetzt werden kann.

Kommando "N": "setze Nummer fuer Contest-Betrieb" Siehe Kapitel "Kontest-Betrieb". Mit diesem Befehl kann die "laufende Kontest-Nummer" auf einen beliebigen Startwert zwischen 000 und 999 gesetzt werden.
Der Keyer beantwortet das "N"-Kommando mit dem Signal "NR" und zeigt damit an, daß er nun auf die Eingabe einer NUMMER (mit dem Paddle) wartet.

Kommando "Q": "Quick digits" Schaltet die Ziffernwiedergabe in den "Quick"-Modus um.
Im Quick-Modus werden die vom Keyer erzeugten Nummern bzw. Ziffern wie folgt ausgegeben:

Kommando "S": "Standard digits" bzw. "Slow digits"
Schaltet die Ziffernwiedergabe in den "Standard"-Modus um.
Im Standard-Modus die Ziffern *NICHT* als Kürzel ausgegeben, sondern (wie üblich) als Morsecodes mit 5 Elementen.
Der Modus "Quick digits" oder "Standard digits" hat keinen Einfluß auf die EINGABE von Zahlen. Wenn der Keyer auf eine Zahleneingabe wartet (z.B. nach dem "N"-Kommando), dann "versteht" er grundsätzlich beide Zahlenformate.

Kommando "T": "Tune" Schaltet den Sender zu Abstimmzwecken "dauerhaft" ein
(genaugenommen fuer maximal 30 Sekunden).
Zum Abbrechen des "Tune"-Betriebs genügt es, einen Message-Taster oder ein Paddle kurz anzutippen. In diesem Fall wird durch das "Tune"-Kommando auch der Kommando-Modus verlassen.
Wenn nach 30 Sekunden "Tune"-Betrieb der Sender automatisch abgeschaltet wurde, wird der Kommando-Modus dagegen nicht verlassen (dann kann der Sender durch ein weiteres "T" für weitere 30 Sekunden eingeschaltet werden).

Kommando "X": TX-Delay einstellen (nur in der 'Semi-BK'-Variante der Firmware für PIC16F628).
Siehe Kapitel Semi-BK . Die Ziffer nach dem Befehl "X" gibt die Verzögerung zwischen Auftasten des Senders, und dem Senden des ersten Punktes oder Striches am Anfang eines 'Sende-Durchganges' an:
X0 = keine Sende-Verzögerung ("TX-Delay Null")
X1 = 20 Millisekunden
X2 = 40 Millisekunden
X3 = 80 Millisekunden
X4 = 90 Millisekunden
X5 = 100 Millisekunden
X6 = 120 Millisekunden
X7 = 140 Millisekunden
X8 = 160 Millisekunden
X9 = 180 Millisekunden

Kommando "Y": RX-Delay einstellen (nur in der 'Semi-BK'-Variante der Firmware für PIC16F628).
Siehe Kapitel Semi-BK . Die Ziffer nach dem Befehl "X" definiert die Zeit, die der Keyer nach dem Senden des letzten Zeichens noch wartet, bevor er den Transceiver wieder auf EMPFANG umschaltet (durch Abschalten des PTT-Ausgangs):
Y0 = nach dem letzten Zeichen sofort wieder von 'Senden' auf 'Empfang' umschalten
Y1 = 0.2 Sekunden warten, etc..
Y2 = 0.4 Sekunden
Y3 = 0.6 Sekunden
Y4 = 0.8 Sekunden
Y5 = 1 Sekunde
Y6 = 1.2 Sekunden
Y7 = 1.4 Sekunden
Y8 = 1.6 Sekunden
Y9 = 1.8 Sekunden


Contest-Betrieb

In Verbindung mit den zwei Nachrichten-Speichern läßt sich der Keyer auch als "Kontest-Keyer" mit automatischer Kontest-Nummern-Vergabe einsetzen.

Die folgenden "Makro-Codes" sind speziell im Contest-Betrieb hilfreich...

(Man kann sich damit allerdings auch einen "telegrafiegesteuerten Schaefchenzaehler" basteln, falls man bei leisem Telegrafiegesumme besser einschlafen kann .... ..):

Makro "NNN": ("Number Number Number")
Wird in den Speicher als "-.-.-." eingegeben.

Funktion:
Erzeugt bei der Wiedergabe aus dem Speicher die aktuelle 3-ziffrige Kontestnummer.
Kann beliebig oft abgerufen werden, beeinflußt den Contest-Zähler-Stand *NICHT* !

Makro "ANN": ("Advance Number")
Wird in den Speicher als ".--.-." eingegeben.
Andere "Eselsbrücken" zum Merken des Codes:
      "PN" = "Plus Number" oder
      "AC" = "Add Counter".
Funktion:
Zählt die "aktuelle Kontest-Nummer" um einen Zählerstand hoch. Erzeugt beim Abruf aus einem Nachrichten-Speicher KEIN "gesendetes Zeichen" (außer im "List-Modus", siehe Kapitel "Kommando-Modus").

Wie schon zu ahnen ist, müssen "NNN" und "ANN" im Kontest-Betrieb immer kombiniert werden.
Um einen Contest-Rapport zu vergeben, verwendet man "NNN" (evtl. auch mehrfach). Beispiel für die Programmierung einer entsprechenden Nachricht: "599/<NNN> 599/<NNN> BK <EOM>"
( Kommentar des Autors: Wer anderen Kontestern eine kleine Freude bereiten will, darf auch gerne andere Rapporte als "599" vergeben... )

Beim Abruf dieser Nachricht setzt der Keyer statt <NNN> die aktuelle "laufende" Nummer ein, er sendet z.B.: "599/123 599/123 BK".

Wenn dann das QSO "im Kasten ist", gibt man aus einem anderen Nachrichten-Speicher (oder wenigstens aus einer anderen Partition) eine andere Nachricht, in der das Makro "ANN" enthalten ist. Besonders gut eignet sich dafür z.B. eine Nachricht mit dem obligatorischen "73" oder einer etwas umfangreicheren Verabschiedung, z.B: "73 gl <ANN> qrz ? ".

Beim Abruf dieser Nachricht sendet der Keyer nur: 73 GL QRZ ?

denn das Makro <ANN> zählt nur die Kontestnummer hoch, sendet aber kein Zeichen.

Technische Daten

Prozessor: PIC16F628-04/p - im Keyer betrieben mit internem RC-Oszillator, Taktfrequenz ca. 37 kHz (!)

- 2048 * 14 Bit EEPROM-Programmspeicher, seriell programmierbar mit simplem PC-Programmier-Tool (siehe AFU-Literatur)

- 224 Byte internes RAM

- 128 Byte internes EEPROM

- ein 5-Bit-Port (Port A) und ein 8-Bit-Port (Port B), z.T. mit internen Pull-Ups

- Stromsparender Sleep-Modus mit "Wake-up" bei Änderung eines Eingangssignals an Port B

- 8-Bit Timer/Counter (im Keyer nicht benutzt!)

- Datenblatt und Entwicklungssystem gibt's bei WWW.MICROCHIP.COM

Stromaufnahme bei Versorgung mit 2.4 V: - im Betrieb, OHNE Mithoerton: 60 Mikroampere

- im Betrieb, mit piepsendem Piezo: 200 Mikroampere

- im Standby-Modus: weniger als 1 Mikroampere (i.A. wesentlich weniger)

Der Keyer schaltet sich nach einigen Sekunden "Passivität" selbst in den Standby-Modus und wird durch Betätigung eines Tasters oder Paddles wieder aufgeweckt.

Software

Für den PIC16F628 die Datei "keyer628.hex" (ohne "Semi-BK") bzw. "keyer627_semi_bk.hex" (mit Semi-BK). Die aktuellste Version dieses Dokuments (und die Keyer-Software als Quelltext und programmierbares HEX-File) kann von der QRP-Homepage des Autors geladen werden: WWW.QSL.NET/DL4YHF.

Kommerzieller Einsatz bedarf der Zustimmung des Autors.

Die Rechte an der Software bleiben beim Autor, Modifikationen sind zulässig solange der Hinweis auf die "Herkunft" erhalten bleibt.

Schaltung und Platinenlayout // Ätzvorlage

Gibt's als Grafikdatei auf der Homepage des Autors.

Die Platine kann mit "fliegender Verdrahtung" auf Lochraster aufgebaut werden, maximal "Streichholzschachtel-Format".

Eine einseitig kupferkaschierte Platine, z.T. mit einigen SMD-Bauteilen bestueckt, hat die Abmessungen von etwa 3cm * 3.5 cm. Dabei ist auf der Oberseite noch Platz für zwei Taster und 2.4 V-Memo-Akku (30mAh).

"Bausatz-Anbieter" die dieses Platinchen unter die Leute bringen wollen ohne sich daran eine goldene Nase zu verdienen, sind herzlich willkommen.

Haftungsausschluss

Auch der Autor mag diesen juristischen Kram nicht, aber hier kommt er trotzdem :

Der Autor gibt keinerlei Gewährleistung für Funktion oder Fehlerfreiheit der Hard- oder Software und haftet in keinem Fall für direkte oder indirekte Schäden, insbesondere -aber nicht beschränkt auf- Geräteschäden, die z.B. durch Fehlfunktion von Hard- oder Software oder Bedienungsfehler verursacht werden.

Der Anwender übernimmt das volle Risiko.