Inhaltsverzeichnis
- Warum überhaupt ein eigener Fahrregler?
- Was bei der Recherche auffiel
- Welche Anforderungen daraus entstanden
- Günstige Standardkomponenten statt Speziallösungen
- Analog fahren mit moderner Technik
- Warum PWM beim Modelleisenbahn-Fahrregler genauer untersucht werden muss
- Der erste technische Prototyp
- Modularer Softwareaufbau
- Von Anfang an für GitHub und Open Source geplant
- Wie die Projektserie weitergeht
Ein moderner Fahrregler für eine analog betriebene Modelleisenbahn klingt zunächst nach einem überschaubaren Projekt. Ein Regler, ein Ausgang für das Gleis und ein Schalter für die Fahrtrichtung – damit wäre die Grundfunktion bereits vorhanden. Bei genauerer Betrachtung wurde jedoch schnell deutlich, dass ein brauchbarer PWM-Fahrregler für die Modelleisenbahn weit mehr können sollte als nur die Geschwindigkeit einer Lok zu verändern.
Aus dieser Überlegung ist das Projekt MOBA-Module PWM-Analogfahrregler entstanden. In dieser mehrteiligen Serie dokumentiere ich die Entwicklung Schritt für Schritt: von den ersten Anforderungen über Prototypen und Messungen bis zu einer späteren, ausreichend geprüften Veröffentlichung als Open-Source-Projekt. Teil 1 beschreibt bewusst nur den Ausgangspunkt, die Recherche und die Entscheidungen, die den Rahmen für die weitere Arbeit bilden.
Warum überhaupt ein eigener Fahrregler?
Für analoge Modelleisenbahnen gibt es fertige Fahrregler in unterschiedlichen Ausführungen. Der Anlass für ein eigenes Projekt war deshalb nicht, dass es grundsätzlich keine brauchbaren Geräte gäbe. Gesucht war vielmehr ein Fahrpult, dessen Aufbau, Bedienung und Software vollständig nachvollziehbar bleiben und das sich später an unterschiedliche Anforderungen anpassen lässt.
Bei einem einfachen Regler wird die Fahrgeschwindigkeit meist direkt über ein Potentiometer eingestellt. Das funktioniert und ist für viele Anlagen völlig ausreichend. Für mein Projekt sollte die Bedienung jedoch reproduzierbarer werden. Eine bestimmte Fahrstufe soll gezielt wieder eingestellt werden können. Beschleunigen und Abbremsen sollen kontrolliert erfolgen, ein Richtungswechsel darf nicht versehentlich unter Last stattfinden, und ein klarer Stoppzustand soll jederzeit erkennbar sein.
Dazu kommen Fragen, die bei einer ersten Demonstrationsschaltung oft noch keine Rolle spielen: Wie hoch ist der aktuelle Gleisstrom? Wie verhält sich der Motortreiber bei einer Überlastung? Welche PWM-Frequenz wird tatsächlich ausgegeben? Wie wird ein Fehler angezeigt? Und wie bleibt die Software auch nach mehreren Erweiterungen noch verständlich? Aus diesen Punkten wurde nach und nach ein eigenständiges Entwicklungsprojekt.
Was bei der Recherche auffiel
Zu Beginn habe ich nach bestehenden Konzepten für analoge Fahrregler gesucht. Dabei zeigte sich eine große Bandbreite: von sehr einfachen Schaltungen mit linearer Spannungsregelung über PWM-Aufbauten mit Potentiometer bis zu Arduino-Projekten mit Display, Drehgeber, Strommessung oder zusätzlichen Schutzfunktionen.
Viele dieser Ansätze enthalten interessante Einzelideen. Manche konzentrieren sich auf eine möglichst einfache Geschwindigkeitssteuerung. Andere legen den Schwerpunkt auf ein Display, auf ein bestimmtes Bedienkonzept oder auf eine Schutzschaltung. Häufig blieb jedoch offen, wie sich ein Aufbau später erweitern lässt, wie Messwerte und Fehlerzustände zusammengeführt werden oder wie nachvollziehbar die Software nach mehreren Änderungen noch bleibt.
Die Recherche war deshalb keine Suche nach einer Schaltung, die nur noch kopiert werden musste. Sie half vielmehr dabei, die eigenen Anforderungen zu schärfen. Einige Ideen werden in abgewandelter Form in die Entwicklung einfließen, andere passen nicht zum geplanten Aufbau. Welche Entscheidung sich am Ende bewährt, muss durch praktische Tests geklärt werden.
Welche Anforderungen daraus entstanden
Der geplante PWM-Fahrregler soll nicht nur einen Tastgrad ausgeben. Bedienung, Motoransteuerung, Messung, Schutz und Softwarestruktur müssen als gemeinsames System betrachtet werden. Für die ersten Entwicklungsphasen ergibt sich daraus folgende Anforderungsliste:
- fein einstellbare und reproduzierbare Fahrstufen
- Bedienung über einen Drehgeber
- kontrolliertes Beschleunigen und Abbremsen
- sichere Fahrtrichtungswechsel
- eindeutig erkennbarer Stoppzustand
- separater rastender Stoppschalter
- Anzeige wichtiger Betriebs- und Messwerte
- untersuchbare und später sinnvoll einstellbare PWM-Frequenz
- Anzeige von Fahrstufe und Tastgrad
- Messung von Versorgungsspannung und Gleisstrom
- Überstrom- und Kurzschlussbehandlung
- Überwachung des Motortreibers
- verständliche Anzeige von Fehlerzuständen
- modular aufgebaute und erweiterbare Software
Diese Liste beschreibt Entwicklungsziele, keinen fertigen Funktionsumfang. Einzelne Punkte können sich ändern, wenn Messungen oder Fahrversuche zeigen, dass eine andere Lösung sinnvoller ist. Auch die Reihenfolge der Umsetzung bleibt bewusst offen.
Günstige Standardkomponenten statt Speziallösungen
Ein wichtiger Grundsatz des Projekts ist die Verwendung allgemein verfügbarer Standardkomponenten. Der Fahrregler soll nicht von einem exklusiven Modul oder einer Sonderanfertigung abhängen, die später kaum noch zu beschaffen ist. Bevorzugt werden Bauteile, die bei verschiedenen Elektronik- oder Modellbauhändlern erhältlich sind und sich mit üblichen Werkzeugen verarbeiten lassen.
Dazu zählen weitverbreitete Mikrocontrollerboards, handelsübliche Displays, Standard-Drehgeber, gewöhnliche Taster und Schalter, verfügbare Motortreibermodule, übliche Steckverbinder sowie normale Widerstände, Kondensatoren und Schutzbauteile. Für frühe Versuche eignen sich Steckbrett und Lochrasterplatine; später kann daraus eine einfach reproduzierbare Platine entstehen.
Günstig bedeutet dabei nicht, ungeeignete Bauteile möglichst weit außerhalb ihrer Belastungsgrenzen zu betreiben. Kritische Komponenten müssen ausreichend dimensioniert sein. Schutzfunktionen, zuverlässige Anschlüsse und elektrische Sicherheit haben Vorrang vor der niedrigsten möglichen Materialsumme. Wenn sich ein zunächst ausgewähltes Modul im Test nicht bewährt, wird es ersetzt und die Entscheidung dokumentiert.
Analog fahren mit moderner Technik
Das Projekt ist ausdrücklich für den analogen Lokomotivbetrieb vorgesehen. Es entsteht keine DCC-Zentrale, keine Decoderlösung und keine automatische Anlagensteuerung. Das ist keine Bewertung digitaler Systeme, sondern eine bewusste Abgrenzung des Projekts.
Viele analoge Lokomotiven können weiterhin sinnvoll genutzt werden. Für eine kleinere Anlage, ein Testgleis oder einen überschaubaren Modulbetrieb ist nicht zwingend eine vollständige Digitalsteuerung erforderlich. Gleichzeitig lassen sich moderne Bedien- und Anzeigefunktionen auch in einem analogen Fahrregler umsetzen.
Gerade die technische Beschäftigung mit Motoransteuerung, PWM, Messwerten und Schutzfunktionen macht den analogen Fahrregler zu einem interessanten Elektronikprojekt. An vorhandene Arduino-Erfahrungen auf MOBA-Module knüpfen bereits Projekte wie die Arduino-Pendelzugsteuerung für das Mini-Diorama und die dimmbare LED-Beleuchtung mit Arduino an. Der neue Fahrregler geht jedoch deutlich weiter, weil Bedienung, Leistungsteil, Messung und Fehlerbehandlung zusammengeführt werden sollen.
Warum PWM beim Modelleisenbahn-Fahrregler genauer untersucht werden muss
Bei der Pulsweitenmodulation wird die Gleisspannung in schneller Folge ein- und ausgeschaltet. Der Tastgrad beschreibt das Verhältnis zwischen Ein- und Ausschaltzeit und beeinflusst damit den wirksamen Leistungsanteil, der dem Motor zur Verfügung steht.
Der Tastgrad ist aber nur ein Teil der Betrachtung. Auch die PWM-Frequenz kann sich auf Motorgeräusch, Fahrverhalten, Erwärmung und Verluste in der Ansteuerung auswirken. Unterschiedliche Lokomotiven und Motorbauarten können auf dieselbe Einstellung verschieden reagieren. Deshalb wäre es nicht sinnvoll, bereits zu Beginn eine einzige Frequenz als grundsätzlich optimal festzulegen.
Die späteren Versuche sollen mehrere Einstellungen vergleichbar machen. Dabei müssen nicht nur subjektiver Fahreindruck und Geräusch betrachtet werden, sondern auch Stromaufnahme, Verhalten beim Anfahren, Langsamfahrt und mögliche Belastungen für Motortreiber und Motor. Die konkrete Mess- und Testmethodik folgt in einem späteren Teil.
Der erste technische Prototyp
Als erster technischer Ausgangspunkt ist ein Aufbau mit einem Arduino Mega 2560 vorgesehen. Dazu kommen ein 3,5-Zoll-TFT mit ILI9486-Controller, ein Drehgeber, ein Joystick oder zusätzliche Bedienelemente, ein separater rastender Stoppschalter, ein Motortreiber sowie Baugruppen für Strom- und Spannungsmessung.
Diese Auswahl ist zunächst eine Entwicklungsplattform, keine endgültige Stückliste. Der Arduino Mega bietet für den frühen Prototyp ausreichend Anschlüsse und lässt sich in der Arduino IDE unkompliziert bearbeiten. Das größere Display schafft Platz für Fahrstufe, Tastgrad, Frequenz, Messwerte und Fehlermeldungen. Ob alle Komponenten bis zum späteren Aufbau erhalten bleiben, entscheiden erst die praktischen Tests.
Modularer Softwareaufbau
Auch bei der Software soll die spätere Wartbarkeit von Anfang an berücksichtigt werden. Ein einzelner, immer länger werdender Sketch wäre für einen kurzen Versuch möglich, würde aber mit Displaysteuerung, Eingaben, Motoransteuerung, Messung und Fehlerbehandlung schnell unübersichtlich.
Deshalb werden die Aufgaben in getrennte Module aufgeteilt. Bedienung, Anzeige, Motorsteuerung, Messwerterfassung und Fehlerbehandlung sollen klar voneinander abgegrenzt bleiben. Beim Arduino-Mega-Zweig werden die Dateien so organisiert, dass sie in der Arduino IDE als übersichtliche Tabs sichtbar sind. Eine unnötige Verzeichnisstruktur, die diesen einfachen Arbeitsablauf erschwert, ist nicht vorgesehen.
Quellcode und technische Bezeichnungen werden überwiegend auf Englisch geführt. Die Dokumentation soll langfristig auf Deutsch und Englisch bereitstehen. Die erste Bedienoberfläche ist auf Deutsch geplant; eine zusätzliche englische Oberfläche kann später ergänzt werden.
Von Anfang an für GitHub und Open Source geplant
Das Projekt wird bereits während der Entwicklung unter dem Arbeitsnamen pwm-model-railway-controller in einem privaten GitHub-Repository organisiert. Einen öffentlichen Link gibt es zu diesem Zeitpunkt noch nicht. Die Freigabe ist erst vorgesehen, wenn ein ausreichend geprüfter Entwicklungsstand erreicht ist und die Dokumentation den Aufbau nachvollziehbar beschreibt.
GitHub soll dabei nicht nur als Dateiablage dienen. Änderungen, Versuche und Korrekturen lassen sich dort einem konkreten Entwicklungsstand zuordnen. Stabile und experimentelle Varianten können getrennt werden, bekannte Fehler und offene Aufgaben bleiben sichtbar, und spätere Releases können eindeutig dokumentiert werden.
Die endgültige Open-Source-Lizenz ist noch nicht festgelegt. Vor einer öffentlichen Veröffentlichung wird geprüft, welche Open-Source- oder gegebenenfalls Dual-License-Regelung zum Projekt passt. Verwendete Bibliotheken und Fremdkomponenten behalten unabhängig davon ihre jeweiligen eigenen Lizenzen.
Langfristig sollen Schaltpläne, Software, Aufbauhinweise, Tests und bekannte Einschränkungen so dokumentiert sein, dass andere Modellbahner die Entwicklung nachvollziehen und nach der Veröffentlichung eigene Verbesserungen vorschlagen können. Das ist ein Ziel für einen späteren Stand, keine Behauptung über bereits beteiligte Mitentwickler.
Wie die Projektserie weitergeht
Die nächsten Beiträge werden den Prototyp schrittweise konkretisieren. Dazu gehören die Auswahl und Prüfung des Motortreibers, der Aufbau der Messung, verschiedene PWM-Einstellungen, das Bedienkonzept und die Struktur der Software. Später folgen Fahrversuche mit unterschiedlichen Lokomotiven, Schutzfunktionen, mögliche Platinenlösungen und ein geeignetes Gehäuse.
Dabei ist ausdrücklich vorgesehen, auch verworfene Ansätze zu dokumentieren. Eine zunächst plausible Komponente kann sich als unpraktisch erweisen, Messwerte können eine Annahme widerlegen, und Anforderungen können sich durch den Werkstattbetrieb verändern. Diese Korrekturen gehören zum Projekt und sollen nicht nachträglich aus der Dokumentation verschwinden.
Teil 1 legt damit nur den Rahmen fest. Der MOBA-Module PWM-Analogfahrregler ist noch kein fertiges System und noch keine vollständige Bauanleitung. Die weitere Serie soll zeigen, wie aus Anforderungen, Standardkomponenten, Messungen und nachvollziehbaren Entscheidungen Schritt für Schritt ein nachbaubares Open-Source-Projekt entstehen kann.
English version
A modern controller for an analogue model railway initially sounds like a manageable project. A controller, an output for the track and a switch for the direction of travel – that would already provide the basic function. On closer inspection, however, it quickly became clear that a practical PWM controller for a model railway should do far more than merely change the speed of a locomotive.
This consideration led to the MOBA-Module PWM-Analogfahrregler project. In this multi-part series, I document the development step by step: from the initial requirements through prototypes and measurements to a later, sufficiently tested release as an open-source project. Part 1 deliberately covers only the starting point, the research and the decisions that define the framework for the work ahead.
Why build a controller at all?
Ready-made controllers for analogue model railways are available in various designs. The reason for starting my own project was therefore not that usable devices do not exist. Instead, I was looking for a model railway controller whose construction, operation and software would remain fully understandable and which could later be adapted to different requirements.
With a simple controller, the speed is usually set directly with a potentiometer. That works and is entirely adequate for many layouts. For my project, however, the controls should be more reproducible. It should be possible to return deliberately to a particular speed step. Acceleration and braking should be controlled, a change of direction must not happen accidentally under load, and a clear stop state should be recognisable at all times.
This raises questions that often play no role in an initial demonstration circuit: What is the current track current? How does the motor driver behave under overload? Which PWM frequency is actually being output? How is a fault indicated? And how can the software remain understandable after several extensions? These points gradually turned the idea into a development project in its own right.
What the research revealed
At the beginning, I looked for existing concepts for analogue controllers. The range proved to be broad: from very simple circuits with linear voltage regulation and PWM designs using a potentiometer to Arduino projects with a display, rotary encoder, current measurement or additional protection functions.
Many of these approaches contain interesting individual ideas. Some focus on making speed control as simple as possible. Others concentrate on a display, a particular operating concept or a protection circuit. What often remained unclear was how easily a design could be extended later, how measurements and fault states could be brought together, or how understandable the software would remain after several changes.
The research was therefore not a search for a circuit that only needed to be copied. Instead, it helped to refine my own requirements. Some ideas will influence the development in adapted form, while others do not fit the planned design. Practical tests will have to show which decisions ultimately prove successful.
The requirements that emerged
The planned PWM controller should do more than output a duty cycle. Operation, motor control, measurement, protection and software structure have to be considered as one system. This results in the following list of requirements for the initial development phases:
- finely adjustable and reproducible speed steps
- operation using a rotary encoder
- controlled acceleration and braking
- safe changes of direction
- a clearly recognisable stop state
- a separate latching stop switch
- display of important operating values and measurements
- a PWM frequency that can be investigated and later adjusted sensibly
- display of the speed step and duty cycle
- measurement of supply voltage and track current
- overcurrent and short-circuit handling
- monitoring of the motor driver
- clear indication of fault states
- modular and extensible software
This list describes development goals, not a finished set of functions. Individual points may change if measurements or running tests show that another solution makes more sense. The order in which they are implemented also remains deliberately open.
Affordable standard components instead of special solutions
An important principle of the project is the use of widely available standard components. The controller should not depend on an exclusive module or a custom-made component that may later be difficult to obtain. Preference is given to parts that are available from different electronics or model-making suppliers and can be handled with ordinary tools.
These include widely used microcontroller boards, commercially available displays, standard rotary encoders, ordinary push-buttons and switches, readily available motor driver modules, standard connectors, and common resistors, capacitors and protection components. A breadboard and stripboard are suitable for early experiments; later, this may lead to an easily reproducible circuit board.
Affordable does not mean operating unsuitable components as far beyond their load limits as possible. Critical components must be adequately rated. Protection functions, reliable connections and electrical safety take priority over the lowest possible material cost. If a module selected at first does not prove suitable in testing, it will be replaced and the decision documented.
Analogue operation with modern technology
The project is expressly intended for analogue locomotive operation. It is not intended to become a DCC command station, a decoder solution or an automatic layout control system. This is not a judgement on digital systems, but a deliberate boundary for the project.
Many analogue locomotives can continue to be used effectively. A small layout, a test track or a manageable modular setup does not necessarily require a complete digital control system. At the same time, modern control and display functions can also be implemented in an analogue model railway controller.
Working with motor control, PWM, measurements and protection functions is precisely what makes an analogue controller an interesting electronics project. Existing Arduino experience on MOBA-Module already includes projects such as the Arduino shuttle train controller for the mini diorama and the dimmable LED lighting with Arduino. The new controller goes considerably further, however, because operation, the power stage, measurement and fault handling are to be combined.
Why PWM needs closer examination in a model railway controller
With pulse-width modulation, the track voltage is switched on and off in rapid succession. The duty cycle describes the ratio between the on-time and off-time and therefore influences the effective proportion of power available to the motor.
The duty cycle is only one part of the picture. The PWM frequency can also affect motor noise, running behaviour, heating and losses in the drive circuitry. Different locomotives and motor designs may respond differently to the same setting. It would therefore not be sensible to define one frequency as universally optimal at the start.
Later experiments are intended to make several settings comparable. This means looking not only at subjective running quality and noise, but also at current consumption, starting behaviour, slow running and possible loads on the motor driver and motor. The specific measurement and testing method will follow in a later part.
The first technical prototype
The initial technical starting point is a setup based on an Arduino Mega 2560. It will be accompanied by a 3.5-inch TFT display with an ILI9486 controller, a rotary encoder, a joystick or additional controls, a separate latching stop switch, a motor driver, and modules for current and voltage measurement.
This selection is initially a development platform, not a final bill of materials. The Arduino Mega provides enough connections for the early prototype and can be developed easily in the Arduino IDE. The larger display provides room for the speed step, duty cycle, frequency, measurements and fault messages. Practical tests will determine whether all components remain part of the later design.
Modular software structure
The future maintainability of the software is also to be considered from the beginning. A single sketch that keeps growing would be possible for a short experiment, but it would quickly become confusing once display control, inputs, motor control, measurement and fault handling are added.
The tasks will therefore be divided into separate modules. Operation, display, motor control, measurement acquisition and fault handling should remain clearly separated. In the Arduino Mega branch, the files will be organised so that they remain visible as clear tabs in the Arduino IDE. An unnecessary directory structure that complicates this straightforward workflow is not planned.
Source code and technical names will mainly be written in English. In the long term, the documentation should be available in German and English. The first user interface is planned in German; an additional English interface can be added later.
Planned for GitHub and open source from the beginning
During development, the project is already being organised in a private GitHub repository under the working name pwm-model-railway-controller. There is no public link at this stage. Release is only planned once a sufficiently tested development state has been reached and the documentation describes the construction in a reproducible way.
GitHub is not intended to serve merely as file storage. Changes, experiments and corrections can be assigned to a specific development state. Stable and experimental versions can be kept separate, known faults and open tasks remain visible, and later releases can be documented unambiguously.
The final open-source licence has not yet been determined. Before public release, I will examine which open-source or, where appropriate, dual-licensing arrangement is suitable for the project. The libraries and third-party components used will retain their respective licences regardless of that decision.
In the long term, circuit diagrams, software, assembly notes, tests and known limitations should be documented so that other model railway enthusiasts can follow the development and suggest their own improvements after publication. This is a goal for a later stage, not a claim that external contributors are already involved.
How the project series continues
The next articles will make the prototype more concrete step by step. They will cover the selection and testing of the motor driver, the measurement setup, different PWM settings, the operating concept and the software structure. Later stages will include running tests with different locomotives, protection functions, possible circuit board solutions and a suitable enclosure.
The series is expressly intended to document discarded approaches as well. A component that initially appears plausible may prove impractical, measurements may disprove an assumption, and requirements may change through workshop use. These corrections are part of the project and should not later disappear from the documentation.
Part 1 therefore only defines the framework. The MOBA-Module PWM-Analogfahrregler is not yet a finished system or a complete construction guide. The rest of the series is intended to show how requirements, standard components, measurements and understandable decisions can gradually lead to a reproducible open-source project.

