Emulace centrály z21 na sběrnici Xpressnet

Jelikož byl původní článek již zastaralý, zapojení s LAN modulem bylo přesunuto na konec článku a nová verze je uvedena na začátku.

Toto zařízení slouží k ovládání vaší stávající centrály pomocí příkazů ze sběrnice XpressNet. Zařízení emuluje centrálu z21, umožní vám ovládat vaši centrálu se sběrnicí XpressNet (Lenz, Roco, NanoX, ...) pomocí aplikace Z21 z vašeho přenosného zařízení (smartphonu, tabletu, počítače) přes WiFi spojení. Toto spojení s aplikací zde zajišťuje modul Wemos D1 mini ESP8266 respektive jeho klon.

Zapojení vychází z centrály uvedené na stránce Philippa Gahtow. Zapojení z uvedené stránky bylo osekáno na funkční minimum a modul zde nepracuje jako centrála, ale jako slave ovladač na sběrnici XpressNet.

Zapojení je velice jednoduché, obsahuje pouze WiFi modul Wemos D1 mini (ESP8266), převodník MAX485, step down konvertor, konektory a podpůrné součástky. Použitý konvertor napětí je osazen obvodem MP2315. Rezistory R1 a R2 slouží ke statickému zakončení sběrnice XpressNet, pokud použijete originální obvod MAX485 (pozor na čínské klony), můžete je vynechat. Dioda D1 slouží k oddělení výstupu obvodu MAX485 od vstupu modulu Wemos, který pracuje na napětí 3,3V. Kvůli úbytku napětí, by D1 měla být typu Schottky. Kondenzátor C2 je přidán podle doporučení k modulu Wemos. Jeho kapacita napomáhá stabilnějšímu spojení a není kritická. Na pin D4 se připojuje tlačítko, které slouží jako vypínač a tento pin je vytažen na kladné napájení (pull-up). Toto vytažení by měla zajišťovat LED na desce modulu Wemos. Interní vytažení však nebylo postačující a docházelo k nežádoucímu vypínání, proto byla přidána externí LED1 a R3. Signalizace LED1 není zapotřebí, ale kladné vytažení potřebné je. Pokud LED1 nepoužijete, nahraďte ji propojkou a hodnotu R3 zvolte 10k. Pokud nebudete využívat vypínání pomocí tlačítka, můžete vynechat jumper JP1. Dioda D2 slouží jako ochrana proti přepólování a může být libovolného typu.  Propojka (jumper) JP2 byla přidána, aby tento modul mohl být využit univerzálně (jako slave i master) a v tomto zapojení zůstává rozpojena. Protože je odběr modulu vyšší, než povoluje specifikace sběrnice XpressNet (20mA), neslouží propojka JP2 k připojení napájení modulu z této sběrnice (pro vyzkoušení funkce, bez připojení externího zdroje napájení, je však její využití možné). Napájení je zajištěno přes svorkovnici X1. Před připojením zdroje musí být propojka (jumper) JP2 rozpojena. Použijte stabilizovaný zdroj schopný dodávat proud alespoň 500mA. Pokud použijete napájecí zdroj s napětím 5V, je možné vynechat i konvertor napětí a diodu D2. Pro úsporu místa byl obvod MAX485, společně s diodou D1 a kondenzátorem C3, fyzicky umístěn pod modul Wemos. Na desku je proto nutné, osadit dutinkové lišty dodávané s modulem.

Nyní k programu. Pro úpravu a nahrávání programu bylo použito rozhraní Arduino IDE. Do tohoto rozhraní je nutno doplnit podporu pro čipy ESP8266 a příslušné knihovny (v přiložených souborech). Veškeré nastavení se provádí v souboru config.h odkomentováním (odebráním lomítek "//") nebo zakomentováním maker (přidáním lomítek "//" před makro). V přiložených souborech je vše potřebné nastaveno a není zapotřebí nic měnit. Makro "#define SwitchFormat IB" určuje formát číslování příslušenství (výhybek). Pokud toto makro zakomentujete, číslování příslušenství bude podle RoCo, odkomentované určuje číslování podle Lenz. Další makro "#define FS28" určuje počet rychlostních stupňů lokomotivy. Před nahráváním programu je nutno nastavit frekvenci čipu na 160Mhz. Na obrázku níže můžete vidět nastavení desky a frekvence.

Jelikož jsem měl problémy s aktualizacemi pomocí OTA (over the Air) a v tomto zapojení nebyla použita sběrnice LocoNet, bylo použití OTA zakomentováno. Pokud by jste aktualizace OTA chtěli opět zapnout, najdete toto makro v souboru MCU_config.h pod definicí ESP8266.

Kvůli používání aplikace Z21 i s jinými centrálami, jsem pro připojení v nastavení aplikace zvolil IP adresu 192.168.1.111. Pokud by jste spojení nemohli navázat, nastavte aplikaci na standardní IP 192.168.0.111. Reset na tovární nastavení (tuto adresu) se provádí přivedením napájecího napětí při stisknutém tlačítku na pinu D4 (konektor JP1). 

Poznámka: Zmíněné zapojení je pouze experimentální, bylo vyrobeno na univerzální desce a nemohu tak zaručit replikovatelnost a správnou funkci. Toto zařízení jsem testoval pouze s centrálou NanoX, u jiných centrál není funkčnost zaručena. Podle testů není zařízení funkční ve spolupráci s centrálou Lenz LZ100. Při testování bylo zařízení napájeno ze sběrnice XpressNet (zdroj odpojen a můstek JP2 spojen).

Při tomto testu se nouzové zastavení nechovalo korektně: při nouzovém vypnutí z aplikace se sice lokomotiva zastavila, ale koleje zůstaly pod napětím. Na druhém připojeném ovladači přitom bylo nouzové zastavení zobrazeno správně. 

Pokud jsem z druhého ovladače spustil čtení #CV v přímém režimu, centrála NanoX zamrzla (přestala reagovat) a do kolejí šlo plné stejnosměrné napětí (lokomotiva se rozjela plnou rychlostí). Před zkoušením doporučuji vypnout na lokomotivě v #CV29 analogový provoz. 

Přiložené soubory programu Eagle opět slouží pouze pro ruční výrobu a nelze je použít pro generování gerber souborů. 

Původní zapojení s Arduinem a modulem LAN

Původní návod lze nalézt na stránkách Philippa Gahtow a zapojení tamtéž. Já našel zařízení, které dokáže emulovat centrálu z21 na stránkách modeláře Martina. Zařízení stačí připojit na sběrnici Xpressnet a router a pomocí tabletu s nainstalovanou aplikací Z21můžeme ovládat lokomotivy a příslušenství kolejiště. Protože je zařízení na Martinových stránkách velice dobře popsáno, popíšu zde pouze své technické řešení.

 K sestavení zařízení stačí Arduino Uno, ethernet shield a pár součástek. Protože se mi na těch pár součástek opravdu nechtělo vyrábět desku, použil jsem desku prototypovou (koupit ji můžete pod názvem "prototype shield", nebo zkráceně "protoshield"). Prodávají se ve více verzích od úplně samostatných desek, přes stavebnice, částečně osazené, až po osazené dutinkovými lištami a doplněné nepájivým kontaktním polem. Použil jsem tu kompletně osazenou, ale doporučuji koupit neosazenou. Protože je kompletní deska osazená pinovými lištami s krátkými piny, síťový konektor ethernet shieldu neumožňuje sestavení prototypové desky s deskou ethernet shieldu. V prototypové desce je proto zapotřebí vyříznout prostor pro síťový konektor, a to je lepší udělat na desce neosazené. Pokud použijete desku neosazenou a osadíte ji lištou s dlouhými piny, síťový konektor vám nebude překážet. Pokud se vám však nechce upravovat prototypovou desku, a máte radši "čistější řešení", můžete si desku zakoupit od modeláře Martina (pokud ještě má). Do prototypové desky je potřeba piny konektoru RJ12 při osazování trochu přihnout, ale pokud máte přesně navrtané otvory pro plastové západky konektoru, není problém osadit jej rovně. Konektor je ještě přilepen a poté fixován připájeným drátkem. Místo napěťového stabilizátoru je použit měnič s obvodem MP2307. Poskládanou sestavu jsem nakonec umístil do krabičky vyrobené z cuprextitu.

Ještě přidám upozornění pro modeláře, kteří používají klon ethernet shieldu W5100. Pokud je vaše připojení nestabilní, nebo dokonce nelze spojení vůbec navázat, je na vině rezistorové pole na desce shieldu s chybnou hodnotou 510Ω. Většina routerů se s tím dokáže vypořádat a komunikace s shieldem je funkční a stabilní. Stačí však vyměnit kabel a může vás čekat nepříjemné překvapení v podobě výpadků komunikace. Dříve než pak budete hledat chyby v software, zkuste váš problém vyřešit doplněním dvou rezistorů přímo na piny LAN konektoru.