Jindra Fučík

DCC Metr

DCC Meter

Celkem hodně lidí má potřebu "něco" měřit na DCC. Většinou se snaží k tomu používat kdejaký levný multimetr a diví se, že každý ukazuje něco jiného. Tak jsem si řekl, že si udělám měřící přístroj, který bude ukazovat alespoň přiměřeně blízko pravdě a navíc i nějaké užitečné hodnoty.

Jako základ jsem použil stejný princip, jaký využívají levné modulové voltmetry z Číny, které zajisté znáte jako třímístný led segmentový display na miniaturní destičce s jedním čipem a třemi drátky. Já namísto OTP procesoru použil trochu univerzálnější typ PIC16F15344. Přidal jsem integrovaný ampérmetr ACS712ELCTR-05B a pak běžnou bižuterii. Ten ampérmetr je trochu problematický, sice má dostatečnou rychlost, ale ne pro obdélníkový signál, takže občas vykazuje nečekaný šum v řádu až 100 mA. Ale pro ukázku zatížení na půl-ampéry je úplně dostačující.

Pak jsem přidal ještě funkce pro čtení a vyhodnocování DCC signálu. Ty jsou v praxi mnohem užitečnější. Vyhodnocování DCC signálu se dá zobrazit třemi způsoby. Buď jako počet správně přijatých datagramů a počet datagramů s chybou. Nebo jako zobrazení příkazů pro příslušenství. A nebo jako zobrazení příkazů pro multifunkční dekodéry (lokomotivu).

Měření napětí a proudu

Měření napětí je jednoduchá a základní funkcionalita. Při měřen se měří horní hrana obdélníku a filtrují se horní a dolní špičky. DCC metr je schopný měřit napětí až do hodnoty 30V. Tato hodnota platí právě pro napěťové špičky. Pokud tedy máte nějakou obzvlášť zarušenou centrálu pro velká měřítka (větší než H0), může docházet k problémům.

Měření proudu je spíš doplňková funkcionalita. Většina metod měření proudu, jiná než měření DC před vytvořením obdélníkového signálu, je zatížená poměrně značným zkreslením. DCC metr používá metodu měření magnetického toku snímáním sondou s vyhodnocováním Hallova efektu. Sonda pro měření 5 Ampér nemá příliš velkou přesnost při měření na úrovni miliampér. Konec konců takovou hodnotu přesnosti při provozu komutátorových motorů nikdy nepoužijete, protože je daleko za hranou šumu. Pro měření protékajícího proudu je nutné připojit DCC metr na izolované koleje, nebo mezi centrálu (zesilovač) a koleje. Správné zapojení je takové, že je zdroj signálu (centrála/zesilovač) nalevo a spotřebič (lokomotiva/kolejiště) napravo. Signál jde po směru šipky na plošňáku. Maximální špičkový proud je 5 A.

Na display jsou prostě zobrazené hodnoty s písmeny V a A (písmeno V je na sedmisegmentovém display k nerozeznání od U, ale víme, že je to V).

A lot of people like to measure "something" by electric meters on their layouts. They are trying to use any cheap multimeter. They are surprised, that various meters display dramatically different values. I decided to build my own meter, that will display relatively stable and close to true values. On the top it will present some useful values.

I use principle of cheap China modular meters as a basis. You know them for sure as three digit led segments displays on miniature PCB with one chip and three wires. I'm using more universal PIC16F15344 instead OTP processor. I was added integrated ampere-meter ACS712ELCTR-05B and usual passives on top. The ampere-meter is a little problematic. It have good enough speed, but not for rectangular signal. Then it present unexpected noise on level about 100 mA. But for presentation of load on level of half-ampere is good enough.

I was added functions to read and evaluate of DCC signal. They are in reality more useful. Evaluation of DCC signal can be displayed by three variants. First is number of correct and damaged packets. Second is display commands for accessory. Last is display commands for multi function (locomotive) decoders.

Voltage and currency measurement

Measurement is simple and basic functionality. It measure top edge of of square wave, with filtering upper and lower peaks. DCC meter is able to measure voltage up to 30V. This value is defined especially for voltage peaks. If you have some extra noisy boosters for large scales (bigger than H0), you can have problems with overload.

Current measurement is more additional functionality than core functionality. Majority of current measurement methods (different than measure on DC level, before signal creation), is impacted by big inaccuracy. DCC meter use method of measure magnetic flow detected by Hall effect measuring probe. Probe for 5 Amp maximum current have not enough accuracy for measuring on milliampere level. By the way, that value is impossible when measuring DC motors with PWM to have any accuracy. It as far away from noise level. For current measurement it is necessary to connect DCC meter to insulated tracks or between booster and tracks. Correct connection is, that signal source (command station, booster) is connected to left hand side and appliances (locomotive, layout) are connected to right hand side. Signal should be flowing as presented by arrows on PCB. Maximum peak current is 5 Ampere.

Values on display are simple presented with letters V and A (Character V is very similar to U on segment display, but you knot that is V).


DCC meter V/A

Zobrazení počtu správných a poškozených datagramů

Toto je jedna z užitečnějších funkcí. DCC metr prostě zobrazuje počet správných datagramů (paketů) na horním (zeleném) display. A počet poškozených datagramů na spodním (červeném) display. Je zajímavé sledovat, jak se změní počet datagramů, když se do seznamu ovládaných lokomotiv přidá lokomotiva s dlouhou adresou, nebo když se přidá lokomotiva se 128 rychlostními kroky. Případně pokud se začne ovládat analogová lokomotiva na adrese 0.

Display number of correct and damaged packets

This is one of very useful functions. DCC meter simply display number of correctly received packets on upper (green) display. It display as well number of damaged (incorrectly received) packets on bottom (red) display. It is interesting to watch how number of packet changes, when long address locomotive is added to list of controlled locomotives, or when locomotive is controlled with 128 speed steps. Or when one analogue locomotive on address 0 becomes operated.

DCC meter OK/Error packets

Zobrazení příkazů pro příslušenství

Druhá z užitečnějších funkcí. Tuto funkci doceníte zejména při tvorbě ovládacích panelů, pokud si nejste jistí, jak máte nastavené Xbus TCO, nebo jiný ovladač pro příslušenství. DCC metr zobrazuje všechny příkazy pro příslušenství. Zobrazuje jak základní příslušenství (výhybky), tak rozšířené příslušenství (návěstí, točny a další). Příkazy se zobrazují tak, že poslední je zobrazen na horním (zeleném) display a pokud přijde další, posune se dolů a nový se zobrazí nad ním. Pokud DCC přestane vysílat signál pro příslušenství, zobrazí se znak "----".

Protože na display je celkem málo pozic a v DCC se může vyskytovat až 2048 adres pro základní příslušenství a stejný počet adres pro rozšířené příslušenství, je potřeba zobrazovat znaky dostatečně úsporně. Proto jsou informace kódovány následujícím způsobem:
- žádná informace o příslušenství
- Základní příslušenství (výhybka) číslo 1234 ve směru rovně. Svítí první tečka.
- Základní příslušenství (výhybka) číslo 1234 ve směru do odbočky. Svítí druhá tečka.
- Základní příslušenství (výhybka) číslo 1234 žádná akce (Tento datagram slouží k přidělení času pro komunikaci dekodéru na RailCom). Svítí segment vlevo dole.
- Rozšířené příslušenství číslo 1234 (akční data nejsou zobrazena). Svítí obě tečky.
- Rozšířené příslušenství číslo 1234 žádná akce (Tento datagram slouží k přidělení času pro komunikaci dekodéru na RailCom). Svítí obě tečky a segment vlevo dole.
Zobrazení se zdá na první pohled složité, ale v běžném provozu se uživatelé setkávají jen s prvními třemi variantami.

U nás se často vyskytují systémy Roco, které nesprávně odesílají adresu výhybky. Nicméně je možné si přepnout zobrazení do režimu Roco. Režim Roco se aktivuje zapsáním hodnoty 1 do CV48.

Pozor: v režimu výhybek nefunguje programování CV.

Display accessory commands

This is second very useful functionality. You will appreciate this functionality during creation of control panels, when you are not sure, how your Xbus TCO, or other accessory controller, is configured. DCC meter display all accessory commands. It display basic accessory decoder commands (turnouts), as well extended accessory commands (signalling masts, turntables etc.). Commands are displayed with last one on top (green) display. When next one will come, then is moved to bottom (red) line, and new one is displayed on top. When DCC stops transmitting accessory commands, line "----" is displayed.

Because display have slightly limited number of positions and DCC can produce up to 2048 addresses for basic accessory and same amount for advanced accessory, it is necessary to display values effective enough. Based on that, information is coded following way:
- No accessory information available
- Basic accessory (turnout) number 1234 in straight direction. First dot is on.
- Basic accessory (turnout) number 1234 in diverge direction. Second dot is on.
- Basic accessory (turnout) number 1234, no operation packet (this packet is used to reserve time on RailCom for decoder communication). Bottom left segment is lighting.
- Extended accessory number 1234 (action data are not presented). Both dots lighting.
- Extended accessory number 1234, no operation packet (this packet is used to reserve time on RailCom for decoder communication). Both dots and botton left segment lighting.
Display look like complicated, but in real operation users see first three variants only.

In Europe are popular products of Roco, they are using incorrect adressing method for accessory. But it is possible to switch display to Roco mode. Roco mode is activated by write value 1 to CV 48.

Note: in accessory mode is not possible to write CVs.

DCC meter accessory

Zobrazení informací pro multifunkční (lokomotivní) dekodér

Zobrazení informací pro multifunkční (lokomotivní) dekodér je spíše doplňkovou funkcionalitou. DCC metr zobrazuje stav lokomotivy - tedy její směr, rychlost a funkce F0 (světla), F1, F2 a F3. DCC metr má v tomto případě vlastnosti běžného lokomotivního dekodéru. Stejně jako běžný lokomotivní dekodér se také programuje. DCC metr rozeznává všechny tři druhy adresování. Běžná krátká adresa, dlouhá adresa a adresa soupravy. Běžná krátká adresa se ukládá do CV 1, dlouhá adresa do CV 17 a CV 18 a adresa soupravy (consist) do CV 19. Hodnoty CV lze zapisovat jak v režimu programování na hlavní trati (PoM), tak v servisním režimu (na programovací koleji). DCC metr se snaží být k signálu co nejpasivnější, nemá proto žádné prostředky pro vytváření ACK pulzů. Tím pádem není možné z nich hodnoty CV číst.

DCC metr rozeznává tři druhy adres lokomotivy.Adresa se zobrazuje na horním řádku.
Krátká adresa začíná písmenem "L" a pokračuje číslem.
Dlouhá adresa pro své zobrazení potřebuje všechny 4 číslice.
Adresa pro jízdu v soupravě začíná písmenem "c" a pokračuje číslem. Pokud je při jízdě v soupravě zvolen obrácený směr, je za písmenem "c" ještě tečka

Na druhém řádku jsou zobrazeny informace o zvoleném rychlostním stupni a funkcích. Rychlostní stupeň může být buď krátký - tedy 14/28 jízdních kroků, nebo dlouhý - tedy 128 jízdních kroků. Přepínání 14/28 jízdních kroků se provádí pomocí CV 29 bit 1 (2). DCC metr zobrazuje zvolený jízdní stupeň tak, jak je odesílán v protokolu. Proto si můžete všimnout, že například při 28 jízdních stupních uvidíte u stojící lokomotivy rychlost 0, a pak jízdní stupně 4 až 31. Je to proto, že hodnoty 1 až 3 jsou vyhrazeny pro různé formy zastavení a málokdy se vyskytují. Rychlost a směr jízdy jsou zobrazeny na prvních třech znacích následujícím způsobem:
14/28 jízdních stupňů, jízda vpřed. Jízdní stupeň 15. Jsou zobrazeny jen dvě číslice a tečka vpravo (směr šipky vpřed).
14/28 jízdních stupňů, jízda vzad. Jízdní stupeň 15. Jsou zobrazeny jen dvě číslice a tečka vlevo (směr šipky vzad).
128 jízdních stupňů, jízda vpřed. Jízdní stupeň 15. Jsou zobrazeny tři číslice a tečka vpravo.
128 jízdních stupňů, jízda vzad. Jízdní stupeň 105. Jsou zobrazeny tři číslice a tečka vlevo.
Dekodér nemá platná data pro jízdu. Nelze určit rychlostní stupeň.
Na poslední pozici se zobrazují informace o aktivních funkcích. Jsou zobrazeny jen funkce F0 (světla), F1, F2 a F3. Zobrazení funkcí je následující:
Funkce F0 (světla), jízda vpřed. Svítí svislý segment vpravo.
Funkce F0 (světla), jízda vzad. Svítí svislý segment vlevo.
Funkce F1. Svítí spodní vodorovný segment.
Funkce F2. Svítí prostřední vodorovný segment.
Funkce F3. Svítí horní vodorovný segment.
Funkce lze kombinovat, je tedy možné rozsvítit několik segmentů současně.

Display functions for multi-function (locomotive) decoders

Display functions for multi-function (locomotive) decoders is more additional functionality. DCC meter displays locomotive status - it mean speed, direction and functions F0 (lights), F1, F2 and F3. DCC meter acting in this case as usual locomotive decoder. It is programmed as well same way as usual locomotive decoder. DCC meter recognize all three kinds of addressing. Usual short address, long address and consist address. Usual short address is stored in CV 1, long address is stored in CV 17 and CV 18 and consist address is stored in CV 19. CV values can be written using programming on main track (PoM), as well using service mode programming (on programming track). DCC meter trying to be very passive to signal, then it have no resources to create ACK pulses. It mean, it is not possible to read CV values back.

DCC meter recognize three types of locomotive addresses. Address is present on top line.
Short address starting with "L" letter and continue with number.
Long address need all 4 numbers for display.
Consist address starting with character "c" and continue with number. Once consist travel direction is reversed, character "c" is followed by dot.

Second line display information about used speed step and functions. Used speed step can be short - it mean 14/28 speed steps, or long - it mean 128 speed steps. Switch between 14/28 speed steps is done by bit 1 (2) of CV 29. DCC meter display used speed step as it is transferred in protocol. You can realize, that for example with 28 speed steps you will see speed 0 when locomotive is standing and steps 4 to 31 when travelling. It is because values 1 to 3 are dedicated for various variants of stop command and they are not usual in layout. Direction and speed are displayed on first three characters by following way:
14/28 speed steps, forward direction. Speed step 15. Two digits are displayed with dot on right (front of arrow).
14/28 speed steps, backward direction. Speed step 15. Two digits are displayed with dot on left (tail of arrow).
128 speed steps, forward direction. Speed step 15. Three digits are displayed with dot on right.
128 speed steps, backward direction. Speed step 105. Three digits are displayed with dot on left.
Decoder have no valid data for travel. It is not possible to identify speed and direction.
Last position is dedicated for display information about active functions. Functions F0 (lights), F1, F2 and F3 are displayed. Functions are displayed as follows:
Function F0 (lights), forward direction. Right hand vertical segment lighting.
Function F0 (lights), backward direction. Left hand vertical segment lighting.
Function F1. Bottom horizontal segment lighting.
Function F2. Middle horizontal segment lighting.
Function F3. Top horizontal segment lighting.
Functions can be combined, multiple segments can be lighting together then.

DCC meter loco decoder

Ovládání pomocí tlačítka

DCC metr je vybaven jedním tlačítkem. Ovládání je velmi jednoduché. Stiskem tlačítka dojde ke zvolení následující funkce. Při dlouhém stisku (cca 2 sec.) dojde k uložení aktuálně zobrazené funkce jako výchozí. To se hodí, pokud například často používáme funkci zobrazení počtu přijatých datagramů a nikoli napětí, pak si krátkým stiskem zapneme tuto funkci a pak jí pomocí dlouhého stisku uložíme jako výchozí. Když pak příště přiložíme DCC metr na koleje, rovnou zobrazí počet přijatých datagramů. Hodnota se ukládá do CV 47 a má následující význam: 0 - měření napětí a proudu; 1 - zobrazení počtu přijatých datagramů; 2 - zobrazení příslušenství; 3 - zobrazení dat pro multifunkční (lokomotivní) dekodér. Hodnotu lze běžným programováním přepsat.

Pozor na to, že v režimu zobrazení příslušenství DCC metr nelze programovat. Pokud máme tento stav jako výchozí a centrála na začátku programování v servisním režimu odpojuje napájení, je velmi těžké měnit hodnoty CV. Je mnohem praktičtější si nejprve pomocí tlačítka zvolit jako výchozí například režim zobrazení dat pro multifunkční dekodéry.

Seznam dostupných CV

DCC metr umožňuje používat několik základních CV, potřebných zejména pro funkci zobrazení informací pro multifunkční dekodéry. Jednotlivá CV lze měnit běžnými způsoby. Buď pomocí programování na hlavní trati (PoM), nebo pomocí programování v servisním režimu (na programovací koleji).

Pozor: v režimu zobrazení příslušenství DCC metr nelze programovat. Pokud máme tento stav jako výchozí a centrála na začátku programování v servisním režimu odpojuje napájení, je velmi těžké měnit hodnoty CV. Je mnohem praktičtější si nejprve pomocí tlačítka zvolit jako výchozí například režim zobrazení dat pro multifunkční dekodéry.

Pozor: DCC metr se snaží být k signálu co nejpasivnější, nemá proto žádné prostředky pro vytváření ACK pulzů. Tím pádem není možné něj hodnoty CV číst.

Dostupná CV by měla být shodná se stejnými CV v lokomotivách, výjimku mohou tvořit CV 47 a CV 48, která jsou specifická pro DCC metr

Controlling using button

DCC meter is equipped by one button. Control is very simple. Press the button mean chose of next functionality. Long press (more than 2 sec) mean store current functionality as power on default. That is useful, when you for example use very often functionality for display number of received packets and not voltage. You can select this functionality by one short click and then save it as default by one long press. When DCC meter is connected to track next time, it will display number of received packets immediate. Value is stored as CV 47. It have following meaning: 0 - voltage and current meter; 1 - display number of received packets; 2 - display accessory; 3 - display data for multi function (locomotive) decoders. Value can be overwritten by usual CV programming.

Note: when accessory commands are displayed, programming is not possible. Once you have this state as default, and your command station disconnect power at the begin of service mode programming, it is very hard to change CV values. It is much practical to set different mode as default.

List of available CVs

DCC meter allow to use few basic CV, they are necessary mostly for display information for multi functional decoders. CVs can be changed by usual ways. They can be changed using programming on main track (PoM); they can be changed by service mode programming (on programming track).

Note: when accessory commands are displayed, programming is not possible. Once you have this state as default, and your command station disconnect power at the begin of service mode programming, it is very hard to change CV values. It is much practical to set different mode as default.

Note: DCC meter is trying to by as much as possible passive to DCC signal. It mean, it have no resources to provide ACK pulses. It is not possible to read CVs back then.

Available CVs are same as they equivalents with usual locomotive decoders. CVs 47 and 48 can be exceptional. They are specific for DCC meter.

CVVýchozí
Defalt
VýznamMeaning
13Primární adresa (krátká adresa)Primary address (short address)
114Časový limit pro data multifunkčních dekodérů (v násobcích 0,5 sec; hodnota 4 znamená 2 sec; hodnota 0 znamená vypnuto.)Timeout value dor multifinction decoders data (multiplied by 0.5 sec; value 4 mean 2 sec; value 0 mean disabled)
17192Dlouhá adresa, horní částLong address, upper part
183Dlouhá adresa, dolní částLong address, lower part
190Adresa pro jízdu v soupravěConsist address
296Konfigurace
BIT 0(1) - obrácení směru jízdy
BIT 1(2) - 14/28 jízdních kroků
BIT 5(16) - Dlouhá adresa aktivní
Configuration
BIT 0(1) - reverse travel direction
BIT 1(2) - 14/28 speed steps
BIT 5(16) - Long address active
470Funkce aktivní po zapnutí (0 - měření napětí a proudu. 1 - zobrazení počtu přijatých datagramů, 2 - zobrazení příslušenství. 3 - zobrazení dat pro multifunkční (lokomotivní) dekodér)Power on menu (0 - Voltage and current measurement, 1 - Number of received packets, 2 - display accessory packets, 3 - display mult function (locomotive) decoder information)
4801 = Zapnutí Roco režimu adresování výhybekSet 1 to activate Roco turnouts numbering mode

Hardware

Hardware je poměrně jednoduchý. V podstatě už byl popsán na začátku. Procesor PIC16F15344 a integrovaný ampérmetr ACS712ELCTR-05B. Pro buzení znaků displaye je použit demultiplexer 74HC138. Pak pochopitelně sedmi segmentové displaye se společnou katodou. Já použil celkem malé KW2-391. Ostatní je vlastností plošňáku a programu.

Hardware

Hardware is relatively basic. It is already described on top of document. Processor PIC16F15344 and integrated ampere meter ACS712ELCTR-05B. For driving display characters is used demultiplexer 74HC138. And then of course common cathode seven segment displays. I was used small one KW2-391. Other is about board and software.

DCC meter schematic
DCC meter top
DCC meter bottom


Download: PCB gerber