Jak jsem již zmínil v úvodním článku, DCC Sniffer nám umožňuje přečíst si obsah paketů, které jsou součástí DCC signálu. Pro ty modeláře, kteří nemají příliš zkušeností s Arduinem, uvádím krátký popis co a jak nastavit.

Nejprve instalace a připojení

Sniffer+Nano

Obr. 1 Spojení DCC Snifferu (dole) a Arduina Nano

Pokud jsme doposud neměli instalované Integrované vývojové prostředí (integrated development environment = IDE), je načase to udělat. Ze stránky arduino.cc stáhneme instalační soubor a spustíme ho.

Začneme tím, že modul Arduino Nano zasuneme do DCC shieldu – pozor na orientaci. Mini USB konektor desky Nano a šroubovací konektor shieldu DCC jsou na opačných stranách (obr.1). Všechny obrázky v tomto příspěvku jsou „klikací“ – zvětší se.

Mini USB port vpravo propojíme s PC. Pokud máme Windows 7 a vyšší, měla by instalace driveru proběhnout automaticky a vytvoří se nám nový virtuální sériový port – COM (s číslem, které ještě systém Windows nevyužívá). Poznamenáme (nebo zapamatujeme) si jeho číslo. V mém případě to bylo COM14. Oba naše moduly jsou napájeny z USB portu nadřazeného počítače, napájení tedy nemusíme řešit.

Spustíme program Arduino.exe (v mém případě ho instalátor ve Windows 7 uložil do C:\Program Files (x86)\Arduino). V menu Tools nastavíme postupně Board – Arduino Nano, Processor – ATmega328 a Port (viz výše). Viz obr. 2.

Arduino tools

Obr.2 Menu Arduino Sketch

Program pro ovládání našeho snifferu je RB_DCC_Sniffer_v2.ino. Stáhneme si ho ze stránky autora, nebo zde. V menu File – Open najdeme cestu do adresáře, kam jsme ho uložili a soubor otevřeme. Vyzkoušíme soubor zkompilovat a nahrát do Arduina – ikona Upload v horní liště – druhá zleva, kulatý symbol se šipkou vpravo. Postup vidíme ve spodní části displeje. Pokud se zadaří, máme téměř jistě vyhráno. Pokud ne, hledáme chybu v nastavení.

Do svorkovnice snifferu (na obr.1 je vlevo zelená) připojíme vodiče s DCC napětím (z centrály, z kolejí a pod.). V menu vybereme Tools – Serial Monitor, otevře se další okno s monitorem, sledujícím provoz na nastavením sériovém rozhraní (COM portu). Vpravo dole zvolíme komunikační rychlost 38 400 baudů.

A pak už jen nevěřícně koukáme, co vše nám to v DCC běhá.

 

 

ArduinoSerialMonitor

Obr.3 Serial Monitor

 

 

 

 

 

 

Nastavení zobrazení na monitoru sériové linky

 

Monitor sériové linky nám v „čitelném tvaru“ zobrazí obsah paketů, tak jak jsou centrálou vysílány na DCC sběrnici.

Pomocí pár příkazů, které zadáváme do vrchního řádku monitoru a odesíláme tlačítkem „Send“, můžeme nastavit zobrazování informací ve výstupním okně – jsou popsány v komentáři ve zdrojovém textu na začátku. Doplnil jsem je českým překladem:

// Keyboard commands that can be sent via Serial Monitor:
// Klávesové příkazy, které mohou být zadány přes Serial Monitor:
//
// 1 = 1s refresh time - čas obnovy
// 2 = 2s 
// 3 = 4s (default)
// 4 = 8s
// 5 = 16s
// 6 = 4 DCC packet buffer - velikost zásobníku paketů
// 7 = 8
// 8 = 16
// 9 = 32 (default)
// 0 = 64
// a = show accessory packets toggle - zobrazení paketů příslušenství (zapne/vypne)
// l = show locomotive packets toggle - zobrazení paketů lokomotivy (zapne/vypne)
// i = idle packet display on / off toggle - zobrazení idle paketů (zapne/vypne)
// h = hexadecimal output of packet data on / off toggle - zobrazení paketů hexadecimálně (zapne/vypne)
// b = binary output of packet data on / off toggle - zobrazení paketů binárně (zapne/vypne)

Doporučuji vyzkoušet, slovní popis je zbytečný, příklady najdete kousek níž.

Obr. 4 - Posloupnost paketů DCC

Obr. 4 – Paket DCC

Co to vlastně vidíme?

 

Každý řádek výpisu obsahuje adresu lokomotivy nebo zařízení, pro které následující příkaz (data v paketu) platí. Pak je stručný popis příkazu. Volitelně je možné zobrazit i binární a hexadecimální tvar paketu.

Pokud někdo má zájem o hloubější studium, popis paketů lze najít v NMRA Standardu S-9.2.

Pro ty, kteří nepovažují angličtinu za rodný jazyk, přebírám jeden odstavec ze stránky autora snifferu a doplňuji jej českým komentářem.

Some examples of DCC packet readout:
Několik příkladů přepisu DCC paketů:

Loc 1902 Forw 21 = loc 1902 speedstep 21 driving forward
= lokomotiva 1902, rychlostní stupeň 21, jízda vpřed
Loc 4 Rev 14 = loc 4 speedstep 14 driving backwards
= lokomotiva 4, rychlostní stupeň 14, jízda vzad
Loc 4 L F4-F1 0 = loc 4 lights off, F4 off, F3 off, F2 off, F1 off
= lokomotiva 4, světla vyp, F4 vyp, F3 vyp, F2 vyp, F1 vyp (číslice nula může být zapsaná jako 00000)
Loc 4 L F4-F1 11 = loc 4 lights off, F4 off, F3 off, F2 on, F1 on (leading zero’s are not shown)
= lokomotiva 4, světla vyp, F4 vyp, F3 vyp, F2 zap, F1 zap (úvodní nuly jsou potlačeny, tedy 11=00011)
Loc 4 L F4-F1 10001 = loc 4 lights on, F4 off, F3 off, F2 off, F1 on
= lokomotiva 4, světla zap, F4 vyp, F3 vyp, F2 vyp, F1 zap
Loc 4 F8-F5 1010 = loc 4 F8 on, F7 off, F6 on, F5 off
= lokomotiva 4, F8 zap, F7 vyp, F6 zap, F5 vyp
Loc 4 CV 4 Write 3 = loc 4 write value 3 into CV4
= lokomotiva 4, zápis hodnoty 3 do CV4
Acc 4 1:3 1 On = Accessory 4 (= module 1 port 3) On, pulse = 1
= výhybka (příslušenství) 4 (= modul 1, port 3) zap, puls = 1
Acc 5 2:0 0 On = Accessory 5 (= module 2 port 0) On, pulse = 0 (a module has 4 ports)
= výhybka (příslušenství) 5 (= modul 2 port 0) zap, puls = 0 (modul má 4 porty)

Podle mého zjištění je zobrazení maličko odlišné:

Loc 4 Rev128 8
Loc 4 Rev128 1
Loc 4 Forw128 10

Možná, že software byl inovován, ale já tam za Rev nebo Forw vidím ještě počet používaných rychlostních stupňů (číslice 128).

Pokud zapneme přepínač „b“ (binární zobrazení), pak za tímto zápisem následují „Data“ v binárním tvaru:

show packet data in binary = 1

Loc 4 Rev128 2 Data 100 111111 11
Loc 4 Rev128 1 Data 100 111111 10
Loc 4 Rev128 Stop Data 100 111111 0
Loc 4 Forw128 20 Data 100 111111 10010101
Loc 4 Forw128 20 Data 100 111111 10010101

Pokud zapneme také přepínač „h“ (hexadecimální zobrazení), pak přibyde ještě interpretace dat v šestnáctkovém tvaru:

show packet data in hexadecimal = 1

Loc 4 Forw128 20 Data 100 111111 10010101 Hex 4 3F 95
Loc 4 Forw128 20 Data 100 111111 10010101 Hex 4 3F 95
Loc 4 Forw128 20 Data 100 111111 10010101 Hex 4 3F 95

Dalším použitím přepínače „b“ nebo „h“ se príslušné zobrazení opět vypne.

 
show packet data in hexadecimal = 0

Loc 4 Rev128 61 Data 100 111111 111110
Loc 4 Rev128 61 Data 100 111111 111110

show packet data in binary = 0

Loc 4 Rev128 61

To samé platí i pro přepínače „l“, „a“ a „i“ – pomocí těchto voleb vypínáme a zapínáme zobrazování paketů pro lokomotivy, příslušenství nebo „idle“ (= udržovací pakety) – viz výše.

Přeji hodně úspěchů v analyzování paketů. Připomínky a popis dalších zjištění jsou vítány.

Leave a reply

required