Picture of XMAS Internet Sequencer

This note describes how to implement a large XMAS light sequencer (for a small neighbourhood or across differents countries) using an Arduino implementation of NearBus system. This implementation will allow you to manage up to 16 lights from the web with a precision of 100 ms that provide enough capacity to implement powerful light effects at large scale.

This video shows a implementation with three Arduino platforms (Ethernet) synchronized independently (from a remote NearHub) with a time slot of 250 ms. Because there are 4 lights in this example, two Arduinos uses one channel and the third uses two channels. The lights are switched by a modified plugable outlet (with internal micro-relay).

The NearBus System
The NearBus system has two main components, the remote device controller or "NearAgent" and the Cloud Hub Manager or "NearHub". These components communicate in a periodic way through the NearBus protocol. The main feature of NearBus system is to allow you to control the remote agent form the cloud via a set of web API interface (NearAPI). Additionally the Agent implements a NearBIOS code, a set of basic MCU functions (ADC, Digital I/O, etc.) that allows you control the agent from the web in the same way as a traditional Microcontroller Unit.

Although the NearBus system has an extensive set of features, in this App Note we only analyze the features required for the sequencer implementation. For more information about the NearBus System please refer to the project overview.

How does it work?
This implementation allows you to control up to 16 independent light systems connecting each to a different NearBus Agent. The Agents are not linked together, instead there are only linked through Internet to the NearHub. To synchronize each light system the NearBIOS implements a pseudo NTP system that allows to synchronize all the agents with a precision about 100 ms. The Web Interface should be used in shared mode (between multiple users) to simplify the interaction when the light sequence is defined (see picture)