Jindra Fučík

GeoDec

Úvod

Tento DCC dekodér je určen k ovládání vestavného elektromagnetického přestavníku výhybek Roco® GeoLine®.
(Následně upravený také pro Tillig TT-Bettungsgleis)
Proto je dekodér navržený tak, aby tvořil funkční ekvivalent originálního dekodéru Roco® 61196. Napájení a DCC signál je použito z konektoru přes napájení přestavníku.
Projekt vznikl pro to, aby si modeláři se znalostí elektroniky měli možnost vytvořit dekodér svépomocí za mnohem menší cenu, než je cena továrního dekodéru. Pro ilustraci následující fotografie ukazují porovnání továrního a vlastního dekodéru.
Dekodér vznikl na základě dekodéru Karol Marcińczak a Paco F. Cañada, ačkoli software jsem kompletně přepsal.

GeoDec

Introduction

This DCC decoder is designed to control inbuilt electromagnetic switch machine for Roco® GeoLine® turnouts.
(subsequently modified also for Tillig TT-Bettungsgleis)
Then decoder is designed as functional equivalent of original decoder Roco® 61196. Power and DCC signal is used from pins for powering switchmachine.
Project was created to help rail-road modellers electronic engineers create own decoder at home with smaller price then factory version. Following photos illustrate factory and home made decoder.
Decoder is based on decoder by Karol Marcińczak and Paco F. Cañada. But I totally re-write software.

Funkce dekodéru

Tato verze dekodéru GeoDec podporuje následující funkce:
  • Kompatibilní se systémem standardu NMRA DCC (zejména Roco® MultiMAUS)
  • Podpora všech 2048 adres pro příslušenství (neplést s adresami lokomotiv)
  • Programování adresy dekodéru zápisem do dvou CV proměnných
  • Nezávislé programování času sepnutí každého výstupu (výchozí nastavení 0,08 sekundy)
  • Změna směru přehazování přestavníku
  • Možnost deaktivace každého výstupu dekodéru pomocí CV
  • Možnost používání zámku dekodéru (Blokování dekodéru proti nechtěnému zápisu) pomocí standardních funkcí CV15/CV16
  • Reset dekodéru s obnovením továrního nastavení (Zápis CV8=33)
  • Programování ve stránkovém a přímém CV režimu

Instalace

Dekodér je navržený tak, aby pasoval do levých výhybek WL, pravých výhybek WR, trojcestných výhybek DWW a křížení DKW (v posledních dvou případech je nutné použít dvojici dekodérů).
Zařízení se připojuje přímo do konektoru v elektromagnetickém přestavníku (Roco 61195) do konektorů pro ovladač. Pinový konektor se jemně zasune do otvorů v přestavníku. Následující fotografie ukazuje namontovaný konektor v levé WL a pravé WR výhybce. Všimněte si, že v levé výhybce je dekodér namontovaný obráceně než v pravé. Při montáži je důležité dodržet polaritu napájecího kablíku, který zajišťuje napájení srdcovky (barevné značky na přestavníku korespondují s barvami vodičů).
Obrázkový návod na montáž dekodéru je na konci tohoto článku.

Decoder functions

This version of decoder support following following functions:
  • Compatible with NMRA DCC standard signal (especially by Roco® MultiMAUS)
  • Support of all 2048 address for accessory (do not mix with locomotive address)
  • Programming decoder address by writing into two CV variables
  • Individual configuration of switching time for both outputs (default value 0.08 sec)
  • Change direction of switching
  • Possibility to de-activate every output in CV
  • Possibility to use decoder lock functionality (Blocking to avoid unwanted CV modification) using standard functionality of CV15/CV16
  • Reset of decoder with restore factory default values (write CV8=33)
  • Programming in paged and direct CV mode

Installation

This DCC decoder is designed to fit left turnout WL, right turnout WR, three way turnout DWW and cross DKW (in last two cases in necessary to use two of decoders).
Device is connected directly to header in switchmachine (Roco 61195) to pins for controller. Gently push pinhead into holes in switchmachine. Following photo show decoder mounted in left WL and right WR turnout. Consider, that in left turnout is decoder mounted upside down than right turnout. During connection is necessary to consider polarity of powering cable, that powering frog (colour markings on switchmachhine should correspond with colours of cables).
Photo manual how to mount decoder is at the bottom of this text.


Programování

Následující tabulka uvádí všechna CV používaná dekodérem. Dekodér používá jak nízká CV podle současné verze normy, tak vysoká, doporučená pro příslušenství starou normou.
Při programování pomocí MultiMAUS pravděpodobně využijete především nízká CV.

Programming

Following table present all supported CVs. Decoder using low name CVs defined by actual specification and also high name CVs defined by old specification for accessories.
During programming using MutliMAUS will be used low name CVs.

CV Values
CV#CV#defaultmin-maxvýznammeaning
151351-255Primární adresa, spodní částPrimary address low part
251430-3Aktivace výstupů
BIT0(1) - povolit výstup A
BIT1(2) povolit výstup B
Output activation
BIT0(1) - enable output A
BIT1(2) enable output B
351580-255Čas sepnutí výstupu A
(*10ms; 1=10ms, 2=20ms, 0=2560ms)
Activation time for output A
(*10ms; 1=10ms, 2=20ms, 0=2560ms)
451680-255Čas sepnutí výstupu B
(*10ms; 1=10ms, 2=20ms, 0=2560ms)
Activation time for output B
(*10ms; 1=10ms, 2=20ms, 0=2560ms)
7 3.0ROVýrobní verze, aktuálně 3.0, pouze pro čteníManufacturing version, actual is 3.0, read only
8 13ROID výrobce, aktuálně 13 - domácí výrobaManufacturer ID, actual 13 - DIY
952100-7Primární adresa, horní část (adresa = CV9*256+CV1)Primary address upper part (address = CV9*256 + CV1)
15 00-255Zámek dekodéru, proměnlivá část (klíč)Decoder lock, variable part (key)
16 00-255Zámek dekodéru, statická část (zámek)Decoder lock, static part (lock)
29 128128Konfigurace (BIT7(128) = dekodér příslušenství)Configuration (BIT7(128) = accessory decoder)
3354500-1Přehození směru rovně/odbočkachange direction forward/turn
3454630-3Konfigurace dekodéru
BIT0 (1) ukládat poslední stav a vracet se k němu po zapnutí
BIT1 (2) při programování využívat spotřebu cívek
Decoder configuration
BIT0 (1) save last used state and return to it after start up
BIT1 (2) use coils consumption during programming

Nastavení adresy

Dekodér je vytvořen pro používání adres kompatibilních s centrálami Roco. Nastavení adresy 1 tedy způsobí, že dekodér bude reagovat na adresu výhybky 1 na ovladači MultiMAUS. (Pokud používáte systém Lenz, musíte nastavovat adresu o 4 větší. To znamená, že adresa 5 = SW-1 na ovladači.)
Pro adresy 1-256 stačí nastavit adresu do CV1 a hodnotu CV9 nechat rovnou 0. Pro adresy větší než 256 je nutné použít následující vzorec:

adresa výhybky = CV9 * 256 + CV1

Například hodnotu 300 nastavíme jako CV9=1, CV1=44 (1*256 + 44 = 300).
Pozor: hodnota 0 v CV1 se interpretuje jako 256.
Příklady nastavení uvedeme v následující tabulce.

Address configuration

Decoder is ready to use addresses compatible with Roco command stations. Setting of address 1 will mean, that decoder will react to turnout5 address 1 on MultiMAUS controller. (Once you are using system Lenz, you should set up address increased by 4. It mean, that address 5 = SW-1 on throttle)
For address 1-256 is enough to write address into CV1 and keep CV9=0. For address greather than 256 is necessary to use following formula:

Turnout address = CV9 * 256 + CV1

For example value 300 will be configured as CV9=1, CV1=44 (1*256 + 44 = 300).
Note: value of 0 in CV1 mean 256.
Examples of configurations can be found in following table.

Address
Adresa
Address
123...255256257258...300...511512513...600
CV1123255012442550188
CV9000001111122

Nastavení výstupů

Čas sepnutí výstupů lze nastavit samostatně pro každý směr. Pro výstup A v proměnné CV3, pro výstup B v proměnné CV4. Čas je uveden v krocích po 10ms. (Výchozí hodnota 8 tedy znamená 80ms = 0,08sec. Hodnota 50 by znamenala 500ms = 0,5sec.) Pro běžné použití kdy přestavník pracuje správně je tato výchozí hodnota dostatečná a není nutné jí měnit.
Pokud potřebujeme změnit směr přepínání přestavníku, stačí změnit hodnotu CV33 z 0 na 1.

Zámek dekodéru

Dekodér je primárně určen pro použití z centrálou Roco MultiMAUS a zesilovačem Roco 10764. Tato kombinace nemá samostatnou programovací kolej a programování v servisním režimu tak vždy probíhá na hlavní trati. Tím by docházelo k přepsání všech dekodérů, nebo by bylo nutné je při každém programování odpojovat.
Proto byl zaveden takzvaný zámek dekodéru. Zámek dekodéru umožňuje zamčení dekodéru proti nechtěnému přepsání hodnot CV.
Použití zámku je velice jednoduché. Dekodér umožňuje používat programování (čtení i zápis) pouze v případě, že je hodnota CV15 a CV16 shodná. Ve výchozím stavu je tato podmínka splněna, neboť jsou CV15=0, CV16=0.
Pokud chceme dekodér zamknout proti zápisu (a také čtení), nastavíme libovolnou jinou hodnotu do CV16 (například 1). Potom je hodnota CV15=0 a hodnota CV16=1 různá a dekodér přestane reagovat na požadavky na programování. Dekodér lze odemknout zápisem hodnoty 1 do CV15. Pak bude CV15=1 a CV16=1, tedy shodná hodnota a dekodér lze programovat a číst.
V praxi se nejčastěji používá model, kdy se do CV16 zapíše stejná hodnota jako je adresa dekodéru. Pak při programování jednoduše nejprve provedeme zápis do CV15="adresa dekodéru, který chceme programovat" a následně programujeme. Pokud chceme na stejné trati programovat lokomotivy, nejprve zapíšeme do CV15 hodnotu 0 a následně můžeme programovat lokomotivu. (hodnotu 0 zapisujeme i po skončení programování)
Pro případ, že dostaneme dekodér, který je v zamčeném stavu a nevíme jaká je hodnota v CV16, existuje jednoduchá pomůcka. Do CV15 zapíšeme hodnotu 255, to je univerzální klíč, který odemkne všechny dekodéry, takže jej používáme výhradně pokud je dekodér jediný připojený. Po odemčení dekodéru se většinou používají jednoduché příkazy jako obnovení výchozího nastavení (zápis CV8=33), nebo nastavení nové hodnoty zámku (zápis CV16=0, CV15=0).

Konfigurace ostatních funkcí

Proměnná CV34 umožňuje další konfigurace. První přídavná funkce je pamatování si posledního stavu a návrat k tomuto stavu. Tato funkce je užitečná, pokud máme kolejiště větších rozměrů a nebo používáme k řízení počítač. Pak je vždy po zapnutí definováno, v jakém stavu je výhybka. Naopak mnohem méně užitečná je v případě, kdy například děti kombinují ruční a elektronické přehazování výhybek, tam je spíše na závadu, že při obnovení ze zkratu výhybky přeskočí do pozice do které byly uvedeny elektronicky.
Druhá funkce je zahrnutí cívek přestavníku do vyvolávání ACK signálu. To je užitečné, pokud máme k dispozici centrálu která je schopná číst obsah CV. Pro použití spolu s Roco MultiMAUS a zesilovačem Roco 10764 je skoro výhodnější tuto funkcionalitu vypínat, neboť vede k mírnému pohybu jazyků. Programování je vždy indikováno bliknutím LED na dekodéru.
Pro zjednodušení následující tabulka uvádí všechny dostupné kombinace.

Outputs configuration

It is possible to setup time different time for both directions. For output A the time is set in CV3, for output B time is set in CV4. Time is configured in scale of 10ms. (Default value is 8, then it mean 80ms = 0.08sec. For example value 50 will mean 500ms = 0.5sec.) For usual usage, when switch machine working well, is this default value enough and it is no necessary to change it.
Once we need to change direction of movement, then it is possible to change CV33 from 0 to 1.

Decoder lock

Decoder is primary designed to use with command station Roco MultiMAUS and booster Roco 10764. This combination have not separated programming track and programming in service mode is done on main track. Then it will mean to re-program all decoders, or will be necessary to disconnect them for every programming.
Then I decided to use functionality called decoder lock. Decoder lock allow to lock decoder against unwanted change of CV values.
Usage of decoder lock is really simple. Decoder allow to use programming (read and write) only in case, that values of CV15 and CV16 are equal. In default state this condition is met, because CV15=0 and CV16=0.
Once we want to lock decoder for write (and also read), we should setup any other value into CV16 (for example 1). Then value CV15=0 and CV16=1 is different and decoder will stop react to requests for programming. It is possible to unlock decoder by setting up value 1 into CV15. Then we will have CV15=1 and CV16=1, then equal values and it will be possible to program and read decoder
It is practical to use model, when we are locking decoders CV16 with same value as address of decoder is. Then during a programming we simple starting with write into CV15="address of requested decoder" and then we can programming it. Once we want to program locomotives on same track, then before programming we will write CV15=0 and then we can programming locomotives. (value of 0 we are writting also at the end of programming)
In a case we will receive decoder in locked state and we do not know value of CV16, we can use small trick. Value 255 in CV15 nean "universal unlock", which unlock all decoders on track, then we can use it only if decoder is connected alone. After this kind of unlock we are usually using simple commands such as restore factory defaults (write CV8=33), or setup nev values of locks (write CV16=0 and CV15=0).

Other functions

Configuration variable CV34 allow other configurations. First additional functionality is "remember last state" and return to it after startup. This functionality is useful when you have big size layout or you are using computer co control layout. Then it is always defined position of turnouts after startup. Thiss functionality is less useful in a case when kids combining manual (hand) control with electronic turnout switching. Here is not wanted this switch of turnouts after every restore from short.
Second additional function is use of switch machine coils to create ACK pulse. This functionality is useful once we have command station with possibility to read CV values. For usage with Roco MultiMAUS and Roco 10764 it seems like better to disable this functionality, because it may cause small movement of point rails. Programming is always indicated by blinking of LED on the decoder.
For simplify the situation following table list all possible combinations.

CV Values
CV34VýznamMeaning
0Vypnuto - vhodné pro ovládání Roco stertsetem, při kombinaci ručního a elektronického ovládáníOff - good for Roco startsets with combination of manual and electronic switching
1Vracet se k poslednímu stavu - vhodné pro Roco startset při pouze elektronickém (počítačovém) ovládáníRemember last used position - good for Roco startsets with electronic control only (computer)
2Zahrnout cívky do potvrzování - vhodné pro systémy, které dokáží číst obsah CV (NanoX, Lenz) a kombinaci ručního a elektronického ovládáníUse coils for ACK - good for systems with ability to read CV values (NanoX, Lenz) and manual + electronic switching
3Vše zapnuto - vhodné pro pouze elektronicky řízené systémy s možností čteníAll on - good for electronic only controlled systems with ability to read CV values

Verze pro TT kolejivo

Dekodér jsem také tvarově upravil pro modelovou velikost TT a kolejivo Tillig Bettungsgleis. Jedná se o stejný dekodér, pouze jinak tvarovaný a upravený pro připojen vodičů na místo konektorů. V případě kolejiva Tillig je nutné dekodér do výhybky přilepit pomocí oboustranné lepící pásky. A to vždy tak, aby byly součástky uvnitř a hladká strana ven. Před přilepením je nutné k dekodéru připájet vodiče od přestavníku a napájec vodiče tak, jak ukazují montážní obrázky dole.

Version for TT scale

I was also created version for model scale TT and track system Tillig Bettungsgleis. It is same decoder, only with different shape and prepared for soldering wires instead of using sockets. In case of Tillig track system is necessary to fix decoder inside turnout by using adhesive tape. Decoder should be always fitted with components inside and flat PCB outside. Before fixing is necessary solder wires from switch machine and powering wires. Montage instructions follows.
Pokud máte problém s osazováním, nebo s výrobou desek plošných spojů, využijte nabídky na TOMTO web-shopu, kde si můžete objednat komponenty nebo hotový dekodér. Once you have problems with soldering or creating PCB boards, please use order it form THIS web-shop, where you can order some parts or finished decoder.
Roco GeoLine H0

Připravíme si: výhybku, dekodér, přestavník 61195, vrut 2,5x6 a šroubovák | We will need: turnout, decoder, switch machine 61195, screw 2,5x6mm and screwdriver


Výhybku otočíme | turnout from bottom side


Vyštoubujeme stávající přestavník | Dismount current switch machine


Připravýme si elektrický přestavník | Prepare electric switch machine


Podle potřeby přehodíme čep pro ruční ovládání na levou nebo pravou stranu | If needed, we can change position of hand button between left and right position


Přišroubujeme přestavník | Mount switch machine


Připojíme napájecí drátky, POZOR na správné pořadí barev | Connect power cable, NOTE about correct colours


Zasuneme dekodér | Plug the decoder


Zajistíme šroubkem | Fix with screw
Hotovo | Done.

Tillig TT Bettungsgleis

Připravíme si: výhybku s přestavníkem a dekodér | We will need: turnout with switch machine and decoder


Detail připojení vodičů k dekodéru, vpravo přestavník vlevo přívod | Detail of soldered wires on right hand to switch machine, left hand to tracks


Připájíme vodiče. Pozor na dodržení barev | Solder wires. Keep on mind colours


V této pozici přilepíme dekodér do výhybky | fix decoder to turnout with this position

Hotovo | Done.