Layout Lights

Purpose and concept

The  “LayoutLights” concept was born when I wanted to remotely control (using a PC with a USB port)  the lights on the train layout.
I wanted to be able to switch on and off all the lights in buildings, structures and on platforms, streets and  other locations.The basic principle is simple :
* one master controller has  a USB interfact to the PC
* the master can control up to 15 slaves, with 4 outputs each, a total of 60  outputs
* the master remembers last saved situation in EEPROM so that at switch on, all is restored
* master and slaves communicate over a single  wire   (serial protocol in  half duplex mode) on a TTL 5V level
* slaves each have  4 channels output which drive  4  darlington NPN transistord  (BD139) so they can handle 4 x 1 A at  5..20 V* master chip =  ATMEGA 328 PU
* slave chips  =  ATTiny 85The communication between PC and  master :
*  XXYYYY
—>    XX  =  slave number  ( 01 — 15)
—>    YYYY =  4 bits  one for each output   (0000….1111)
*  20xxxx   =   synchronize EEPROM to current memory   (save all)
*  30xxxx   =   get data from EEPROM to memory  (restore all)
*  40xxxx   =   Set all outputs to current memory setting
*  99xxxx   =   RESET all EEPROM data  to 0  (full system reset)Initializing the master memory :

* either run the system and enter a  990000  from the PC  to reset all EEPROM to zero
* or upload  the init script from the source before actually uploading the code in to the master controller

Schematics

Schematics

Physical build pictures

One Wire Serial Protocol

The One Wire serial protocol is quite simple…  See below

Between cycles, the ports of both master and slave toggle between INPUT and OUTPUT mode accordingly.

The 200 mSEC cycle time is VERY long, extremely slow, but we want to make sure it works ok.  Accuracy is more important than speed at this level.

X=50 mSec high signal,
__ = 5° mSec low signal
ACK  =  150 mSec acknoledgement
db1..4 =  150 mSec status bit 1..4
chk = Timing Check 150 mSec pulse

MASTER    : ______XXX_____db1_db2_db3_db4_chk_____

SLAVE        : __________ACK_________________________ACK_

Source Files and code

layoutlightmaster.dsn

Download File

layoutlightslave.dsn

Download File

layoutlightiniteeprom.ino

Download File

layout_light_master.ino

Download File

layout_light_slave.ino

Download File


About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top