E3C DropNet Quick Start Guide

Introduction

E3C DropNet Introduction

The E3C DropNet protocol makes it easy to daisy chain up to 256 devices together sharing a common 3-wire bus. Implementation of the E3C DropNet Protocol requires the appropriate hardware as well as devices with the appropriate firmware. Firmware Requirements: The E3C DropNet system is compatible with all NCD ProXR Enhanced devices that support E3C. This includes ProXR Enhanced and ProXR Lite Enhanced. E3C DropNet is theoretically compatible with Fusion controllers, but has not been tested. If you are retrofitting an older device to use E3C DropNet, it will be necessary to follow the E3C Quick Start Guide (which is different from the E3C DropNet Quick Start Guide).

There is one important difference between retrofitting older devices and purchasing new devices with DropNet modules installed. When you purchase new devices with DropNet Modules installed, you get the latest version of firmware, which includes an important modification. This firmware change doubles the speed of communications by including a target device along with the command. Older versions of firmware will use the E3C Command Set to target a specific device, next, a command will be sent to perform an action. The DropNet firmware combines a target device number with a command to double speed. You may send your controllers to us for a free firmware upgrade that includes the new command structure.

To take advantage of the new command structure which effectively doubles communication speed, please reference the API Quick Start Guide. A very important addition was included to account for E3C DropNet communications. We highly recommend using the new API Structure to simplify device targeting and to get the best possible speed.

Hardware Requirements

E3C DropNet requires two hardware components. First, a DropNet “Head” is used to convert data from a computer to the 3-Wire DropNet Standard. There are many kinds of DropNet Heads. For instance, it is possible to convert WiFi, Bluetooth, USB, RS-232 or Ethernet to the 3-Wire DropNet Standard.

The above photo shows a DropNet Head with a USB Interface Module Installed. The top of the photo shows the USB Connector along with a 2.1mm +12V DC Power Supply Connector with a center positive connection. This device requires a computer grade regulated power supply. The bottom of the photo shows a 3- Wire connector used to connect to E3C DropNet Devices. Only One DropNet Head is allowed per network, so it would not be possible to have two USB ports access the network of devices.

A DropNet Head is capable of driving about 60 devices over 250 Feet of cable using CAT6 network cable. Signal Conditioners will be required to achieve 256 devices in a DropNet chain of devices. Note that it may be possible to extend the distance well beyond 250 feet, similarly, it may be possible to control more than 60 devices. Please think of these numbers as configurations that we have tested rather than limits.

Shown above, an E3C DropNet Communications Module. This module installs into an E3C DropNet Compatible Device. Up to 256 of these modules may be daisy chained from a single DropNet Head over a distance of 1 Mile using Cat 6 network cable.

Signal Conditioners In the event you find the network of devices to be unreliable, you may renew the E3C network signal by adding signal conditioners. Signal conditioners only require the signal to be clean at the point of connection, and then you may extend the cabling and number of devices as needed. Multiple signal conditioners may be used in the signal path, allowing you to control 256 devices using as little as 4 signal conditioners. Signal conditioners do not require any special hardware other than an E3C module plugged into a DropNet circuit board. So it’s possible to build your own signal conditioner with DropNet hardware you may already have!

The above photo shows an E3C Module plugged into a DropNet circuit board. The E3C module terminal block connects to the “weakened” signal (top of photo) and the DropNet terminal block provides a “refreshed” signal (bottom of photo) allowing you to control more devices over longer runs of cable.

Preparation

Before devices are wired to a E3C DropNet Network, it is very important to configure each device with the necessary DropNet settings. Most importantly, it is necessary to program the E3C Device Number and the Baud Rate. We suggest using 9600 baud as the baud rate, though it is possible to go much faster. In addition, each device must be programmed with a unique E3C Device Number. The E3C Device Number is used to determine which controller receives your command. You will use the E3C Device Number frequently in software. No two devices should share the same E3C Device Number, doing so will cause return data to collide, causing unpredictable results.

To configure the settings into your controller, we suggest using a USB interface module. We do not suggest using the E3C DropNet Head for initial device configuration. The USB interface module (part number ZUSB) will provide a reliable connection to each device, allowing you to use our Base Station software to modify device settings. Base Station is a free program, available for download on our web site at http://www.ncd.io/start. After running Base Station, click the “Configure Device” button that appears. Use the Configure Device control panel to change the settings of each device.

Configure Baud Rate

We suggest using 9600 Baud. Faster Baud rates will result in shorter distances of cabling. We do not recommend setting devices beyond 115.2K Baud; however, we have tested 800,000 Baud on a very limited basis with excellent results.

Configure E3C Device Number

Each device must have a unique E3C Device Number. Don’t forget to label each board with its E3C Device Number. Please use the labels that were provided with the E3C DropNet Head. At least one of the devices attached to an E3C DropNet network should be set to E3C Device Number 0.

UART Interface Technology

The UART Interface Technology setting in Base Station>Device Configuration should be set to “E3C DropNet”. This setting has two very important advantages:

  1. E3C Device Number 0 will be “Enabled” on power-up (Only the Ready LED will light on Device 0. All other E3C DropNet devices will power up in “Disabled” mode (both Busy and Ready LEDs will be lit).
  2. When “E3C DropNet” is selected as an interface technology, communication time is greatly improved, as we have removed a 10ms delay between commands to allow the fastest possible communications.

Wiring Take note the output of the DropNet Head goes to the Input of the E3C Module. Similarly, the Output of the E3C Module connects to the Input of the DropNet Head. A common ground wire is required between all DropNet devices and the DropNet Head. Please follow the wiring diagram shown below to build your own E3C DropNet Network.

NCD Base Station Software

Use the NCD Base Station software to communicate with your connected E3C compatible communications modules. Run the Base Station software and select the correct COM port.

When running Base Station Software, you should see a screen similar to the one above.  Click on the “E3C Device Networking Command Set” option.  The following interface window will open.  Use this interface to select a device for which you would like to route commands.

Use this slider to choose an E3C Device Number (choose a particular device you want to talk to). When reading an E3C device number, this slider will adjust and the number will be displayed to the right of the slider.

  1. Use this button to Enable the selected E3C Device ONLY. All other devices with other E3C device numbers will be ignored.
  2. Read the E3C Device Number stored in the controller.
  3. Discovers E3C Device Numbers in a E3C compatible network (Experimental Feature).
  4. Disable ALL E3C Devices. Use this function if you want to lock out access to all devices on an E3C network.

NOTE: Please Use Device Configuration to Change the E3C Device Number of your controller.

E3C Commands

Discover E3C Device Numbers on the Network

This command tells all devices to report their device numbers. Each controller will report their device number using a time slot method which prevents data collision. Higher device numbers report back first. Lower device numbers report back last. We recommend having one device with a device number of 1 to signify the end of the discovery function. Each device will report back 3 bytes. The first byte is Header byte of 85. The second byte is a device number. The third byte is an 8-Bit Checksum value that equal Device Number +85. Your software will need to use the lower 8 bits to compare the checksum. Follow this method:

  1. Wait for a Header Byte to be Received
  2. Store the 2nd Byte in DevNumber Variable
  3. Store the 3rd Byte in CkSum Variable
  4. LogicalCKSum = (85 + DevNumber) And 255 5. If CKSum = LogicalCKSum then Data Packet is Valid
    In Step 4, we use the Math function “And” to isolate the lower 8-bits of the computer value. The “And” function is supported in most programming languages.
Send Bytes: Byte 1: Byte 2: Byte 3:
Decimal: 254 247 1
HEX: 0xFE 0xF7 0x01

The controller will send the following bytes back to your computer:

Receive Bytes: Header: Device Number: Checksum:
Decimal: 85 0-255 0-255
HEX: 0x55 0x00-0xFF 0x00-0xFF

Discover E3C Device Numbers and Names on the Network

This command tells all devices to report their device numbers and names. Each controller will report their device number and name using a time slot method which prevents data collision. Higher device numbers report back first. Lower device numbers report back last. We recommend having one device with a device number of 0 to signify the end of the discovery function.

Each device will report back 19 bytes. The first byte is a Header byte of 86. The second byte is a device number. The Next 16 Bytes contain the device name. The last byte is an 8-Bit Checksum value that equals 86 + Device Number + . Your software will need to use the lower 8 bits to compare the checksum. Follow this method:

  1. Wait for a Header Byte to be Received
  2. Store the 2nd Byte in DevNumber Variable
  3. Store Bytes 3 to 18 in an Array
  4. Store the Last Byte in CKSum Variable
  5. LogicalCKSum = (86 + DevNumber + Name Array Sum) And 255 6. If CkSum = Logical CKSum then Data Packet is Valid

In Step 5, we use the Math function “And” to isolate the lower 8 bits of the computed value. The “And” function is supported in most programming languages.

Send Bytes: Byte 1: Byte 2: Byte 3:
Decimal: 254 247 2
HEX: 0xFE 0xF7 0x01

The controller will send the following bytes back to your computer:

Receive Bytes: Header: Device Number: Device Name: (16 bytes) Checksum:
Decimal: 85 0-255 (0-255) x 16 0-255
HEX: 0x55 0x00-0xFF (0x00-0xFF) x 16 0x00-0xFF

Disable all E3C Devices

This command will disable all E3C devices.

Send Bytes: Byte 1: Byte 2:
Decimal: 254 247
HEX: 0xFE 0xF7

This command will NOT respond with any data.

Enable a Selected Device Number

This command will enable a selected device number (0-255) and disable all other controllers. This command will reply with its device number. For instance, if you send 254 252 108 to enable device 108, the controller with a device number of 108 will report back the device number 108. All other devices will be disabled and will not report anything back to the controller.

Send Bytes: Byte 1: Byte 2: Byte 3: Device Number
Decimal: 254 252 0-255
HEX: 0xFE 0xFC 0x00-0xFF

The controller will send the following byte back to your computer, confirming the device has been selected:

Receive Bytes: Device Number:
Decimal: 0-255
HEX: 0x00-0xFF

Note:  It is the responsibility of the selected device to respond.  If you do not receive a response from the selected device, make sure the device number is properly stored and all wired connections are secure.

How does E3C Work?

First of all, each device must be assigned a device number from 0 to 255. The ProXR Controller must be programmed with a device number, which is accomplished using the “Device Configuration” button of Base Station software.

E3C stands for Enabled 3-Wire Communication. Put simply, all devices will respond to your commands when powered up.

Using the E3C command set, you can specify which devices will listen and which devices will ignore your commands. Note that E3C commands are never ignored by any device, regardless of the commands you send to the controller.

Maximizing Speed

Please review the “API Quick Start Guide” for hints on DOUBLING communication speed. Controllers with the latest firmware that support DropNet have been improved to allow you to specify an E3C Device Number as part of the command. Previously, two commands were required: one to target the device using the E3C command set, another to perform an action on the device (such as controlling a relay). By combining targeting and commands within the same communication packet, we have effectively cut the communications in half, doubling communication speed. The API Quick Start Guide contains complete details and simple changes you can make to our code to maximize the potential of DropNet enabled devices.