Arduinoboard dient als Plattform

Reinhard, DL3BR hat einen CW-Decoder auf Arduinobasis gebaut und ihn uns vorgestellt. Es rief Begeisterung bei allen Anwesenden hervor. Ein neues Projekt war geboren.
Er hat für uns alle die Bauteile beschafft, die Platinen gefertigt und alles sauber in Tüten verpackt. Und so machten wir uns an die Arbeit. Kaum hatten wir angefangen, kamen noch zwei Nachzügler. Ernst, DO3SEN und Joachim, DL6JS  hatten erst später von unserem Projekt erfahren. So bauen wir nun insgesamt 9 Decoder.

Das fertige Projekt

Im Laufe der letzten Jahre wurden ja schon mehrere Projekte dieser Art veröffentlicht. Der hier vorgestellte CW-Decoder beruht auf dem Bauvorschlag von Reinhard, DL3BR. Unsere Version unterscheidet sich von den bisherigen in Bezug auf die Ansteuerung des Displays und die Verwendung von variablen Speed-Erkennungsroutinen. Wir benutzen die im OV schon bewährte Mikrocontroller-Plattform Arduino in der Version S3v3 Rev.2 und versehen sie mit einem von Reinhard entwickeltem Add-On, unserem “User Interface”.

Das notwendige Basiswissen über Mikrocontroller und die Programmiersprache C, als auch bestimmte Vorkenntnisse zur Entwicklungsumgebung  IDE -Arduino und AVR Studio 5 wird Reinhard uns dann, wenn die Hardware steht, noch näher bringen.

Hardware

Zur Arduino-Plattform soll an dieser Stelle nicht all zu viel gesagt werden. Sie ist ja schon „State of the Art“. Konzentrieren wir uns also auf unsere Add-On‘s. Sie bestehen aus einer Anzeigeeinheit mit Bedienelementen zur Steuerung des Decoders und einem Filterboard. Die Auslegung der Anzeigeeinheit ist variabel, so dass außer dem LCD-Display mit Beleuchtung auch noch Drehgeber oder auch Tasten angeschlossen werden können. Diese Hardware soll dann auch bei dem als nächstes angesagten Bakenprojekt Verwendung finden. Darüber berichten wir dann später. Das Filterboard soll die in der Folge erwähnten Schwächen eines solchen Projektes auffangen. Das  lässt sich mit wenig Aufwand und sehr günstigen Bauteilen auf einer einseitigen Platine realisieren. Dies wird die Erkennung der Zeichen weiter optimieren und unsere Lötkolben nicht einrosten lassen.

Software

Die Programmierung des Atmega 328 erfolgt mit der Entwicklungsumgebung für Arduino. Dort gibt es ja genügend Librarys und Teilprogramme, so das nicht alles neu erfunden werden muss. Dies ist ja auch Sinn und Zweck der ganzen Arduino-Plattform. Sie ist Garant für einen umfangreichen Quellcode/Bibliotheken, sowie entsprechenden Treibern. Wie bei allen Projekten dieser Art, ist auch hier die Programmierung die größte Hürde für uns Amateurfunker. Die grundlegende Mikrocontroller-Software stammt von
http://raronoff.wordpress.com/2010/12/16/morseendecoder 
und wurde aktuell von Hubert, DG4GAH, auf eine Version mit Display-Ausgabe umgeschrieben und optimiert.

Stärken und Schwächen

Die Stärken dieser Schaltung liegen sicherlich in dem minimalen Hardwareaufwand. Um die CW-Audiosignale jedoch zu decodieren und als sie Text anzuzeigen benötigt man eine sehr gute Signalanalyse, d.h.

  • empfindlichen Decoder
  • automatische Verstärkungsregelung (Signalstärke unterschiedlich)
  • tastgeschwindigkeitsunabhängig (Mensch)
  • gute Störaustastung (QRN/QRM)
  • scharfes CW-Filter

 

All diese Kriterien machen eine Profilmetrie sehr schwer, muss sie doch in mathematische Funktionen gefasst werden. Hier sind die Programmierer gefragt!
Die Computerprogramme sind in der Regel auf exakt gegebene Morsezeichen getrimmt. Liegen die Abweichungen außerhalb der meist engen Grenzen, ist das automatische Mitschreiben nicht mehr ausreichend sauber. Ungültige Zeichenfolgen sind die Folge.

In einem weiteren Schritt wird Hubert dann das Ziel verfolgen unsere „alte“ Softwarevariante , welche schon vor längerer Zeit von Reinhard, DL3BR, und Hubert,DG4GAH, auf einem anderen Prozessor-Board entwickelt wurde, vollständig auf Arduino zu implementieren. Dadurch werden dann auch die bereits erwähnten automatischen Speed-Erkennungs , Filter und Anpassroutinen enthalten sein.

Wir freuen uns, das wir Hubert, DG4GAH, als Mitstreiter zur Software-Entwicklung gewinnen konnten. Damit steht uns ein weiterer erfahrener Assembler- und  C-Programmierer zur Seite.
Geplant ist dann noch ein Hardwarefilter als CW-PLL aufzubauen. Das  lässt sich mit wenig Aufwand und sehr günstigen Bauteilen auf einer einseitigen Platine realisieren. Dies wird die Erkennung der Zeichen weiter optimieren und unsere Lötkolben nicht einrosten lassen.

 

“Nachbrenner”

Beim Anschluss verschiedener Mikrofone an unser Filter-Board stießen wir auf ein Problem mit dem Eingangspegel am FSK Demodulator/Tone Decoder (IC2). Der Spannungsteiler, bestehend aus dem Widerstand R21 und dem Potentiometer P3 der den Eingangspegel bestimmt, war falsch definiert. Den Widerstand R21 auf dem Filter Board durch eine Drahtbrücke ersetzen und das Problem ist gelöst.
Wir verwenden übrigens eine Elektret-Kondensator-Mikrofonkapsel Typ MCE 100 von der Firma Reichelt Elektronik.