
Einleitung
Viele ältere VHF- und UHF-Transceiver von Yaesu besitzen werkseitig keinen integrierten CTCSS-Encoder oder sind nur mit optionalen Steckmodulen vom Typ FTS-12 nachrüstbar, die heute kaum noch erhältlich sind. Auch mein Yaesu FT-211RH verfügte über keine Subton-Erzeugung, was den Betrieb über moderne Relais mit CTCSS-Zugang verhindert.
Der hier beschriebene CTCSS-Encoder wurde für den Yaesu FT-211RH aufgebaut und getestet.
Aufgrund der ähnlichen internen Architektur vieler älterer VHF-Transceiver von Yaesu lässt sich das Konzept jedoch auch auf andere Modelle mit vorbereitetem Tone-Modul-Steckplatz übertragen. Dazu zählen insbesondere Geräte mit identischer oder kompatibler Anschlussbelegung für das optionale CTCSS-Nachrüstmodul.
Ziel dieses Projektes war die Entwicklung eines kompakten, frequenzstabilen CTCSS-Encoders in Eigenbau, der sich unauffällig in das Gerät integrieren lässt und sich über das vorhandene Bedienmenü des Funkgerätes nutzen lässt.
Als Signalquelle kommt ein kleiner Mikrocontroller vom Typ ATtiny25 zum Einsatz, der mittels Direct Digital Synthesis (DDS) ein sinusförmiges NF-Signal im Bereich von 67 Hz bis 250 Hz erzeugt. Die Ausgabe erfolgt über eine hochfrequente PWM mit nachgeschaltetem RC-Tiefpass.
Besonderes Augenmerk lag auf:
- exakter Frequenzzuordnung der CTCSS-Stufen
- sauberem, spektral möglichst reinem Sinussignal
- stabiler Datenübernahme
- minimalem Eingriff in die Originalschaltung
Der folgende Beitrag beschreibt Konzept, Hard- und Software sowie die Integration in das Gerät im Detail.
Direct Digital Synthesis (DDS) und PWM im ATtiny25
Wer sich nicht für die Theorie der interessiert, sollte diesen Abschnitt überspringen.
Die komplette Frequenzerzeugung erfolgt rein softwarebasiert.
Es ist lediglich ein einfacher RC-Tiefpass erforderlich, um aus dem PWM-Signal ein sinusförmiges Analogsignal zu gewinnen.
Grundprinzip der Direct Digital Synthesis (DDS)
Die Sinuserzeugung erfolgt im Mirocontroller rein numerisch mittels eines Phasenakkumulators.
Bei jedem Timer-Interrupt wird ein fester Schrittwert (phase_step) zu einem 32-Bit-Akkumulator addiert:
phase_accu = phase_accu + phase_step
Die oberen 8 Bit des Akkumulators adressieren eine vorab berechnete Sinus-Tabelle mit 256-Werten.
Vorteile dieses Verfahrens:
- Sehr hohe Frequenzauflösung
- Phasenstetigkeit bei Frequenzwechsel
- Keine Drift durch RC- oder LC-Glieder
- Keine Laufzeitberechnung von Sinusfunktionen
Die resultierende Ausgangsfrequenz ergibt sich aus:
Abtastrate im Projekt
Timer0 läuft im Fast-PWM-Modus mit:
- Systemtakt: 8 MHz
- Prescaler: 1
- 8-Bit Zähler
Damit ergibt sich die Interrupt- bzw. Abtastfrequenz:
Zum Beispiel stehen für einen CTCSS-Ton von 250 Hz somit:Abtastwerte pro Periode zur Verfügung – mehr als ausreichend für eine saubere Sinusform.
PWM als Digital-Analog-Wandler
Der ATtiny25 besitzt keinen echten Digital-Analog Wandler (DAC).
Die Wandlung erfolgt über:
- 8-Bit Fast-PWM
- PWM-Frequenz ebenfalls 31,25 kHz
- Nachgeschalteten RC-Tiefpass
Die PWM moduliert die Pulsbreite proportional zum Sinustabellenwert (0–255).
Der RC-Tiefpass bildet daraus die gemittelte Spannung:Da die PWM-Frequenz rund 125-fach über der maximalen Nutzfrequenz liegt, kann der Tiefpass die Trägerkomponente wirksam unterdrücken.
Frequenzgenauigkeit
Der ATTiny25 besitzt einen internen 8 MHz RC-Oszillator, ein externer Quarz wird daher nicht benötigt. So ergibt sich eine typische Genauigkeit von ±1 %.
Für einen 88,5-Hz-Subton bedeutet das: ±0,885Hz
Diese Abweichung liegt gut innerhalb der Toleranz der Frequenzdecoder bei den meisten Relais.
Yaesu Schnittstelle – Protokoll Reverse Engineering
Im Original Modul von Yaesu ist ein Schieberegister vom Typ 4094 verbaut. Damit war sofort klar, wie das Funkgerät die Daten zum CTCSS-Modul überträgt. Eine kurze Messung mit dem Oszilloskop bestätige die Annahmen.
- 8x CLOCK mit DATEN, danach STROBE
- CLOCK und STROBE sind HIGH für ca. 10µs, Gesamtdauer ca. 385µs
- Es werden beim Wechsel von RX nach TX und umgekehrt auch Daten gesendet, allerdings ohne Strobe. Diese werden ignoriert
- Niedrigste Frequenz 67 Hz wird als 0101 1101 gesendet
- nächster Wert 71,9 Hz ist dann 0101 1100 und so weiter, immer 1 weniger
Firmware für ATTiny25 erstellen
Entwicklungsumgebung
- Arduino IDE
- ATtinyCore (Spence Konde) Library
- Programmer: USBasp (ISP, kein Bootloader)
Wichtige Einstellungen im Menü „Werkzeuge“:
- Board: ATtiny25
- Clock: 8 MHz (Internal)
- millis()/micros(): Disabled
- Programmer: USBasp
Das Deaktivieren von millis() ist notwendig, da der Encoder den Timer0-Overflow-Interrupt selbst verwendet.
Kompilieren und Flashen
- Programmer anschließen (MISO, MOSI, SCK, RESET, VCC, GND).
- „Bootloader brennen“ ausführen, um die Fuse-Bits korrekt zu setzen (8 MHz intern, kein CKDIV8).
- „Sketch hochladen mit Programmer“ auswählen.
Die Firmware wird direkt per ISP in den Controller geschrieben.
Hardware und Integration in den Yaesu FT-211RH
Überblick
Der CTCSS-Encoder besteht aus einer kompakten ATtiny25-Platine mit:
- Mikrocontroller (ATtiny25, 8 MHz intern)
- RC-Tiefpass am PWM-Ausgang
- Versorgungsspannungsentkopplung
- Anschlusspunkten für DATA, CLOCK, STROBE und TONE_C
- NF-Ausgang zum Modulator
Ziel war eine Lösung, die elektrisch dem originalen Yaesu-CTCSS-Modul entspricht und ohne zusätzliche Bedienelemente auskommt.
Der Aufbau ist auf einer Lochrasterplatine leicht realisierbar.
| Yaesu-Pin | Funktion | zum ATTiny Port | ATtiny25 Pin | Bemerkung |
|---|---|---|---|---|
| 1 | Tone_OUT | PB1 | 6 | DDS-Sinus PWM Ausgang |
| 2 | +5V | Vcc | 8 | +5 V Betriebsspannung |
| 3 | STROBE | PB3 | 2 | Eingang |
| 4 | DATA | PB0 | 5 | Eingang |
| 5 | CLOCK | PB2 | 7 | Eingang |
| 6 | AF_IN | – | – | Verbunden mit Pin 8 |
| 7 | TONE_C | PB4 | 3 | Eingang |
| 8 | AF_OUT | – | – | Verbunden mit Pin 6 |
| 9 | TX | – | – | nicht verwendet |
| 10 | GND | GND | 4 | Masse |
Schaltungskonzept
Der Encoder erzeugt ein sinusähnliches NF-Signal per PWM (OC0B).
Dieses Signal wird über einen RC-Tiefpass geglättet und anschließend in den NF-Modulationspfad des Transceivers eingespeist.
Wichtige Punkte der Beschaltung:
- Versorgung: +5 V aus dem Gerät
- Modul Erkennung: Durch den Widerstand an „TONE_C“ erkennt das Funkgerät, dass ein Modul angeschlossen ist
- NF-Ausgang: Der Pegel wird mit dem Trimmpotentiometer so eingestellt, dass die Modulation im zulässigen Bereich bleibt

Anschluss an das Funkgerät
Die Integration erfolgt gemäß den Angaben im Service- bzw. Einbauhinweis des Herstellers für das originale CTCSS-Steckmodul FTS-12.
Im Yaesu FT-211RH ist dafür eine vorbereitete Schnittstelle vorhanden.
Dabei sind folgende Punkte relevant:
- Anschluss an die vorgesehene Steckerleite des optionalen Subton-Moduls
- Nutzung der vorhandenen ENC-Schaltlogik
- Aktivierung über die interne Steuerleitung (TONE_C)

Auftrennen eines Widerstandes
Gemäß Originalanleitung muss vor dem Einbau ein Widerstand im NF-Pfad aufgetrennt werden, um das CTCSS-Signal korrekt einzuschleifen.
Das Foto zeigt die kleine CTCSS Zusatzplatine vertikal an der Seitenwand montiert. Davor, direkt unter dem Trimmpotentiometer, befindet sich der Widerstand.
Für den Eigenbau-Encoder wird exakt derselbe Eingriff durchgeführt.
Der Eingriff ist:
- ohne Einfluss auf die restliche NF-Schaltung
- reversibel (Widerstand überbrückbar)
- ohne zusätzliche Leiterbahntrennungen
- Der originale Steckverbinder (10-polig weiss im Bild) ist schwer zu beschaffen.
- Alternativ kann die Stiftleiste ausgelötet und direkt verdrahtet werden.
- Bei mir war zufällig ein ähnliches Steckverbindersystem mit gleichem Rastermaß vorhanden. So ist das Modul jetzt steckbar.
- Die kleine Leiterplatte kann mit doppelseitigem Klebeband befestigt werden – so war es auch beim Original vorgesehen.

HF- und EMV-Aspekte
Da es sich um ein 2-m-Gerät mit recht hoher Sendeleistung handelt, ist besondere Sorgfalt notwendig:
- 100 nF + 47 µF direkt am Controller
- Kurze Masseverbindungen
- RC-Filter dicht am PWM-Pin
- Kurze Leitungen zur Hauptplatine
Im praktischen Betrieb zeigte sich keinerlei Beeinflussung durch HF-Einstrahlung.
Bedienung
Nach der Installation des Eigenbau-CTCSS-Encoders lässt sich die Subton-Funktion vollständig über das vorhandene Bedienmenü des Yaesu FT-211RH steuern.
- Programmierung im Menü „TONE“:
Die gewünschten CTCSS-Frequenzen werden über das Standard-Menü des Transceivers ausgewählt. - Speichern auf Memory-Kanälen:
Jeder Memory-Kanal kann individuell mit einem CTCSS-Ton belegt werden.
Beim Abspeichern wird die gewählte Subton-Frequenz zusammen mit allen anderen Kanaleinstellungen gesichert. - Automatische Aktivierung:
Beim Aufrufen eines Memory-Kanals wird der zugehörige Subton automatisch aktiviert.
Die Statusanzeige ENC signalisiert, dass der CTCSS-Encoder aktiv ist.
Im Bild ganz zu Beginn des Beitrags sieht man das Funkgerät eingestellt auf einen Relaiskanal mit aktivem CTCSS.
Damit bleibt die Bedienung vollständig kompatibel zum Originalgerät und erfordert keine zusätzlichen Schalter oder Bedienelemente. Der Funkbetrieb über CTCSS-Relais ist so nahtlos in den gewohnten Ablauf integriert.
Zusammenfassung
Der Eigenbau-CTCSS-Encoder auf Basis des ATtiny25 ermöglicht dem Yaesu FT-211RH die Nutzung moderner Relais mit Subton-Zugang.
Die Nachrüstung des CTCSS-Encoders zeigt, wie sich analoge Signale heute effizient über digitale Methoden erzeugen lassen. Mit einem kleinen Mikrocontroller wie dem ATtiny25 lässt sich ein präzises sinusförmiges NF-Signal vollständig softwarebasiert erzeugen.
