Modellbahn
 
Ein interessantes Bastelgebiet


Vor vielen Jahren fing alles mit einer control Unit 6021 von Märklin an, es wurde jedoch schnell klar das dieses Gerät leider nicht update fähig war und auch Erweiterungen und Kombinationen nicht einfach waren. Als von Uhlenrock die Intellibox vorgestellt wurde, war dieses eine sehr interessante alternative. Die Intellibox ist jetzt schon etliche Jahre alt, funktioniert, bis auf einige Taster, immer noch hervorragend und konnte immer wieder upgedatet werden. Aktueller Stand ist Version 2.0

Die Intellibox bietet viele Anschluss Möglichkeiten die inzwischen auch fast alle ausgenutzt wurden. Als erstes wurde ein Booster benötigt der genügend Strom für die Anlage zur Verfügung stellt. Vor einigen Jahren wurde in einer Elektronik Zeitschrift ein Booster vorgestellt der auch heute noch aktuell ist und hervorragende dienste leistet. Von verscheinen Entwicklern wurden weitere Entwicklungen angeboten die diesen Booster sehr zuverlässig und kompatibel gemacht haben. So gibt es eine Erweiterung für die Kurzschlusserkennung mit der man diesen Booster auch an den 5polligne Boosteranschluss der 6020/6021 oder Intellibox anschließen kann und bei dem auch die Steuereinheit über einen Kurzschluss, den der Booster erkannt hat, informiert wird und den Bahnstrom abschaltet. Der Booster kann je nach Aufbau bis zu 10 Ampere Strom liefern.

An der Intellibox befindet sich noch ein LOCONET Anschluss der es ermöglicht verschiedene andere Geräte, die auch über einen Loconet Anschluss verfügen, zu verbinden. Für die Steuerung der Märklin Drehscheibe (7268) kann man das Turn Control von Fleischmann verwenden. Die Drehscheiben von Fleischmann und Märklin sind baugleich, daher kann die Märklin Drehscheibe direkt ohne Änderung an das Turn Control angeschlossen werden. Das Turn Control kann man über den LOCONET Anschluss mit der Intellibox verbinden und über das Keyboard genauso bedienen wie man es gewohnt ist.

Auch die erste Mobile Station von Märklin kann man mit dem "mobile station Adapter" von Uhlenbrock über das LOCONET mit der Intellibox verbinden. In diesem Adapter befindet sich ein Sniffer, der die Daten von der Mobile Station erkennt und über die LOCONET Verbindung an die Intellibox weiter leitet. Da zu meinen Geräten auch ein einfacher Delta Fahrregler "Controller 67025" gehört, war es mal interessant zu wissen ob auch dieser über den mobile station Adapter angeschlossen werden kann. Der Anschluss ist relativ einfach, der Fahrregler mit einem Trafo verbinden, den mobile station Adapter ebenfalls mit einem Trafo verbinden, war für den Test die einfachste Lösung, das braune und rote Kabel mit den Anschlüssen x und y verbinden. Der Schiebeschalter steht auf 1, also Adresse 78, eine Dampflok mit dieser Adresse stand auf dem Gleis und siehe da sie bewegt sich. Der mobile station Adapter kann die Daten von dem Delta Fahrregler 67025 erkennen und über den LOCONET Anschluss an die Intellibox weiter leiten. Es gibt nur einen haken, der Umschaltbefehl zur Fahrtrichtungsänderung wird nicht erkennt, Geschwindigkeit und das Licht Ein- und Ausschalten funktioniert. Habe das gleiche mit einer Control Unit 6021 getestet und da funktioniert auch der Umschaltbefehl.

Schade das es mit dem Fahrregler 67025 nicht geht, so hätte er noch eine Aufgabe gehabt. Da er kaum Leistung abgibt, kann man mit ihm nicht viel anfangen.

Eines Tages viel mir ein Profi-Boss von Fleischmann in die Hände, er besitzt auch einen LOCONET Anschluss. Mit diesem Profi-Boss ist es auch möglich Märklin Loks im Motorola Format über die Intellibox zu steuern und er kann noch mehr, auch die Weichen können damit gesteuert werden.

Jetzt fehlte noch irgend eine Drahtlose Fernsteuerung. Die Infra Control von Märklin war nur schwer zu bekommen. Meine alte Intellibox war jedoch für den Anschluss eines Infrarot Empfängers vorbereitet der nur noch besorgt und angeschlossen werden musste. Als Fernbedienung kam eine Piko Digi-Fern zum Einsatz, sie ist Baugleich mit der Uhlenbrock Fernbedienung. Zusammen mit der Digi-Fern von Piko bekam ich auch eine Digi 1 Anschlussbox von Piko.

Mit dieser Box kann ein Märklin User eigentlich nichts anfangen da sie den Bahnstrom im DCC-Format liefert. Aber es geht ja eigentlich mehr uns basteln und Testen. Also wurde diese Piko Digi 1 untersucht. Auf der Platine befindet sich ein Prozessor der seine Informationen über einen Infrarot-Empfänger erhält. Nun kamen mir meine Atmega Projekte zu Hilfe. Auf einer Platine hatte ich mal einen RC5 Infrarot Empfänger aufgebaut der die Empfangenen Daten im Display anzeigt und siehe da, die Digi-Fern sendet RC5 Signale. Mit einem selbst gebauten Handsender, der diese RC5-Signale erzeugen kann, wurde die Piko Digi 1 Box getestet und es funktioniert. Wer jetzt Spaß am basteln hat, könnte sich damit eine Modellbahn Steuerrung mit einem ATMega aufbauen. Alle Rückmeldungen könnten zum ATMega laufen und dieser muss nur die Zugsteuerung übernehmen, die Daten um die Loks zu steuern sendet er über RC5 an die Piko Digi 1 die dann die Daten in das DCC-Format umsetzt und an den Decoder in der Lok sendet. Ok, es geht auch einfacher, aber es ist ein bastel Projekt für lange Winterabende.

 


Umbau eines Keyboard 6040 zu einem LOCONET Keyboard

Vor einiger Zeit hatte ich ein defektes Keyboard 6040 bekommen und die Hoffnung, dieses reparieren zu können. Leider musste ich feststellen, dass der Prozessor (MAB8420) den Geist aufgegeben hatte. So etwas gibt es wohl kaum fertig programmiert zu kaufen. Nach dieser Feststellung lag das Keyboard einige Zeit ungenutzt in der Ecke. Jetzt kam mir die Idee dieses Keyboard in ein LOCONET-Keyboard umzuwandeln. Dazu muss nur die Original Prozessorplatine entfernt und durch eine neue, selbst konstruierte Platine, ersetzt werden. Da viele Ports benötigt werden und zufällig ein ATMega162 vorhanden war, wurde alles an diesen Prozessor angepasst. Als erstes wurde eine 4x8 Matrix für die 32 Taster an die Ports des ATMegas gelegt, dabei wurden 4 Leitungen als Ausgang und 8 Leitungen als Eingang beschaltet. Damit kann man nun alle 32 Taster abfragen. Nun noch 6 Leitungen zur Ansteuerung der beiden LED-Treiber (HEF4724) und die LEDs können die Schaltstellung anzeigen. Zusammen mit der Spannungsversorgung (2 Anschlüsse) und Masse ergibt das genau 21 Anschlüsse so wie sie auf der Platine mit den Tastern vorhanden sind. Die Software, in BASCOM geschrieben,  zum erkennen und senden der Loconet-Befehle lies sich schnell erstellen, auch die Abfrage der Taster und Ansteuerung der LEDs war kein Problem. Jetzt kann das Keyboard die Schaltinformationen für die Weichen über den LOCONET-Anschluss zu einer Intellibox senden und auch auf Veränderungen die von anderen Geräten gesendet werden reagieren und die entsprechende LED Ein- oder Ausschalten.
 

     

Umbau einer Central Control zu einem LOCONET Fahrpult

Eine alte Steuereinheit, noch aus den Anfängen der Digitalen Modellbahn Steuerung, für die es keine Verwendung mehr gab, wurde zu einem LOCONET-Fahrpult umgebaut. Dazu wurde die alte Prozessorplatine entfernt und durch eine neue, mit einem ATMega16, bestückte, ersetzt. Die Platine mit den Tastern, der Anzeige und dem Fahrregler blieb an ihrer stelle. Diese Platine besteht aus 3 Bereichen die an den ATMega angeschlossen wurden. Teil 1 ist die Matrix mit den Tastern, dazu sind 5 Leitungen vorgesehen von denen 4 auf Low- und abwechselnd eine auf High-Pegel gelegt wird. An dem Anschluss an dem der High-Pegel zurück kommt wurde ein Taster betätigt. Auf Grund dieser Beschaltung lasen sich Maximal 5 x 4 = 20 Taster abfragen, vorhanden sind 18. Die Beschaltung und Abfrage des Fahrreglers ist ähnlich. Auch hier gibt es 5 Anschlüsse von denen aber einer nur als Rückleiter dient. Man muss also nur 4 Leitungen im Wechsel mit High-Pegel belegen und schauen auf welcher von den anderen 4 Leitungen der High-Pegel zurück kommt. Zum Ansteuern der LEDs und der 7-Segment-Anzeige ist auf er Platine ein IC (M5486) vorhanden, dieses ist ein LED Display Driver dem die Informationen über ein 33 Bit Schieberegister zugeführt werden. Von diesem IC werden 3 Ports, DATA IN, CLOCK IN und LOAD, an den ATMega Angeschlossen. Nun noch etwas Software in BASCOM zum Abfragen der Taster, des Fahrreglers, zur Steuerung des Anzeige-ICs und natürlich das wichtigste das LOCONET-Protokoll bearbeiten und schon hat man einen brauchbaren Fahrregler der zusammen mit einer LOCONET fähigen Zentrale, (Intellibox oder LOCONET-Adaper für Central-Unit 6021) Loks steuern kann. Die Software ist so geschrieben, dass 99 Adressen eingegeben werden können, (alte Motorola Decoder können nur 80 Adressen, neue Decoder können bis zu 254) über die Taste Funktion und die Taste Off kann das Licht Ein- und Ausgeschaltet und über die Tasten F1 bis F4 können die Sonderfunktionen geschaltet werden. Wenn nun von einem anderen Fahrregler die gleiche Lok (selbe Adresse) gesteuert wird, werden die Funktionen Licht An/Aus, F1 bis F4 und Fahrtrichtung erkannt und entsprechend in der Anzeige (LEDs) geändert. Da der Fahrregler über definierte Stellungen verfügt, kann die Fahrstufe (Geschwindigkeit) nicht mit übernommen werden. Dieses kann, bei Betätigung des Fahrreglers, zu abrupten Änderungen der Geschwindigkeit bei der Lok führen, wenn zuvor von einem anderem Fahrregler die Geschwindigkeit verändert wurde.
 

     

Umbau einer Central Control 6022 zu einem Fahrpult (6035)

Eine central control 6022 bietet relativ wenig Anwendungsmöglichkeiten. Man kann mit ihr 4 Lok-Adressen ansprechen und 4 Weichen steuern. Um sie dennoch weiter zu verwenden, zumal wenn das Gerät einen defekt aufweist, kam man sie zu einem reinen Fahrpult mit Keybord umbauen. Die Platine, auf der sich die Steuerung befindet (untere), wurde entfernt. Hier wurde eine Platine eingebaut auf der sich eine Stecker- und eine Buchsenleiste sowie ein Spannungsregler 7805 befinden. Nun noch die Leitungen mit der Fahrregler- und Keybord-Platine verbinden und man kann, nach dem anstecken an eine Zentrale (6020 oder 6021), 4 Loks mit den Adressen 1=10, 2=20, 3=30 und 4=40 steuern. Mit den Keybord Tasten können 4 Weichen über ein Modul mit den Adressen 253 bis 256 geschaltet werden. Als Funktion steht jedoch nur das Ein- und Ausschalten der Spitzenbeleuchtung (Licht) zur Verfügung.
 

     

Motorola Signal Modul Decoder

Irgend wann kam uns die Idee, es müsste doch auch möglich sein die Motorola Daten mit einem ATMega und BASCOM zu erkennen. Also ging es im Internet auf die Suche nach Informationen, leider ohne großen erfolg. Das einzige was man finden konnte waren Beschreibungen wie das Signal aussieht. Aber genau das war es dann was uns auf die Idee brachte selber etwas zu entwickeln. Aller Anfang ist schwer aber am ende zählt nur das Ergebnis und unser Ergebnis ist auf jeden fall brauchbar. Es sollte nur eine Einheit werden mit der man Lichtsignale Ansteuern kann und es funktioniert super. (Schaltplan).
 


'*******************************************************************************
'**  Programm zum decodieren von Motorola Weichen Befehlen                    **
'**                                                                           **
'**  Autor   : DL4FBZ & DL1ZAX                                                **
'**  Datum   : 05.02.2012                                                     **
'**  Version : 1.2                                                            **
'**                                                                           **
'**  Prozessor : ATtiny 2313 mit 8 MHz                                        **
'**                                                                           **
'*******************************************************************************

$regfile = "attiny2313.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 8
$framesize = 24

'*******************************************************************************
'**   Deklaration Unterprogramm                                               **
'*******************************************************************************
Declare Sub Check_adresse()

'*******************************************************************************
'**   Deklaration Variablen                                                   **
'*******************************************************************************
Dim Adresse As Byte
Dim Befehl As Byte
Dim Bit_zaehler As Byte
Dim Dauer As Integer
Dim Impulse As Long
Dim Modul_adresse As Byte

'*******************************************************************************
'**   Deklaration der Ports                                                   **
'*******************************************************************************
Config Portd.= Input                                      ' Eingang für Impulse
Config Portb = Output                                       ' Ausgang zu den Weichen
Portb = 127

'*******************************************************************************
'**   Decoderadresse des ersten Moduls                                        **
'*******************************************************************************
Modul_adresse = 192                                         ' Modul Adresse 1-4

'*******************************************************************************
'**   Deklaration Interrupt zum erkennen der Impulse                          **
'*******************************************************************************
Config Int0 = Rising
On Int0 Int0_isr
Enable Int0
Enable Interrupts

'*******************************************************************************
'**   Deklaration Timer1 für die Impuls Messung                               **
'*******************************************************************************
Config Timer1 = Timer , Prescale = 1
On Timer1 Overflow
Enable Timer1
Start Timer1

'*******************************************************************************
'**   HAUPTPROGRAMM                                                           **
'*******************************************************************************
Do
  ' Hier gibt es nichts zu tun!
Loop

'*******************************************************************************
'**   Adresse und Befehl auswerten                                            **
'*******************************************************************************
Sub Check_adresse()
  Disable Int0
  Adresse.= Impulse.10
  Adresse.= Impulse.11
  Adresse.= Impulse.12
  Adresse.= Impulse.13
  Adresse.= Impulse.14
  Adresse.= Impulse.15
  Adresse.= Impulse.16
  Adresse.= Impulse.17

  If Adresse = Modul_adresse Then
    Befehl = Impulse
    Select Case Befehl
      Case 195                                              ' Weiche 1 Grün
        Portb = 191
      Case 3                                                ' Weiche 1 Rot
        Portb = 127
      Case 0                                                ' Weichen Befehl zurück setzen
    End Select
  End If
  Enable Int0
End Sub

'*******************************************************************************
'**   Interrupt behandlungs Routine                                           **
'*******************************************************************************
Int0_isr:
   Stop Timer1
   Dauer = Tcnt1
   Tcnt1 = 0
   Start Timer1

   Shift Impulse , Left
   Incr Bit_zaehler
   Waitus 30
   Impulse.= Pind.2

   If Bit_zaehler > 1 Then
     Select Case Dauer
       Case 750 To 800
         If Bit_zaehler = 18 Then
           Call Check_adresse()
           Bit_zaehler = 0
           Impulse = 0
         End If
       Case Else
         Bit_zaehler = 1
         Impulse.= Pind.2
     End Select
   End If
Return

'*******************************************************************************
'**   Timer zurück setzen wenn längere Zeit keine Daten gesendet wurden       **
'*******************************************************************************
Overflow:
  Stop Timer1
  Tcnt1 = 0
  Bit_zaehler = 0
  Impulse = 0
Return