IO-204 Web Gateway

Introduction

The IO-204 Web Gateway helps bridge the gap between the physical world and the World Wide Web. The IO-204 Web Gateway and online tools at www.ioBridge.com allow you to easily get your projects on the web (note that for the PRO web gateway the url is www.ioBridgePRO.com). There is no need to run a home web server or track ever changing dynamic IP addresses. The IO-204 Web Gateway takes care of the internet connectivity and the user customizable widgets on the ioBridge website remove the need for complex programming. Just plug in your IO-204 module, register on the ioBridge website and within minutes, you’ll be interacting with lights, switches, servos and sensors. Keep your widgets private on your secure ioBridge dashboard or publish them on your website for the entire world to enjoy!

ioBridge IO-204

Features

  • 4 I/O channels, with separate digital input, analog input and digital output
  • Pulse Counting, Pulse Output and Serial Data Output functions available on all 4 digital outputs
  • Attach up to 4 Smart Boards for more complex functions
  • Time interval based or event based data delivery
  • On-board logic rules for control even when it’s offline.
  • Works on any 10/100/1000Base-T auto-negotiated network
  • Works on Static or Dynamic IP based networks, through firewall
  • Highly secure encryption based communication
  • Configurable MAC address and DHCP host name
  • Network status indicator
  • Non-volatile memory keeps your settings during power down
  • Configurable network disconnect failsafe settings
  • Upgradeable firmware over Internet
  • RoHS Compliant

Module Breakdown

I/O Channels

Analog Input

The analog input on each channel uses 10bit analog-to-digital conversion (ADC). As an input voltage varies from 0V to 5V DC the raw analog values ranges from 0 – 1023.

Digital Input

The digital input accepts voltages of 0v and +5v DC to indicate digital logic of 0 and 1. The digital input can also count the negative and positive edges of input signals.  The DI is connected to +5V internally using a 27 kohm resistor so it will read 1 or “high” by default.

Digital Output

The digital output pin on each channel can generate digital logic of 0 and 1 by outputting 0v and +5v DC. The output current is limited to 20ma. The digital output also transmits pulses at microsecond pulse widths and asynchronous serial data at bauds rates of 300, 600, 1200, 2400, 4800, 9600, 19200 at variable pacing.

Pin-outs

Requirements

Network

The IO-204 module requires a 10/100/1000Base-T auto-negotiated Ethernet connection. Because of the way the IO-204 module communicates with the server, no additional ports need to be opened on the firewall or router.

MAC Filtering

If the network uses MAC address filtering, the module’s MAC address will need to be added to the router’s “allow” table. The MAC address of the module is configurable via the ioBridge.com Interface.

IP Addressing

If the network uses DHCP, the module will request an IP address and obtain an IP automatically by default. If DHCP fails, the module sets itself to an IP address of “169.254.19.77”. By using the telnet menu, the IP Address, Subnet Mask, Gateway, and DNS Addresses are configurable.

Getting the IO-204’s IP Address

It is possible to check the IO-204’s IP address by rapidly pressing the LINK button 3 times row. The IP address will shown on the LED display one digit at a time. An underline character represents a dot.

Accessing the Configuration Menu

By default, the IO-204 is configured to dynamic IP assignment. The unit’s IP address, gateway, subnet mask and DNS can to changed through a configuration menu. The menu is only accessible via telnet when the IO-204 is in “LINK” mode.

  1. Attach the IO-204 to your network.
  2. Check the IO-204’s IP address by rapidly clicking the LINK button 3 times.
  3. After you have the IP address, hold down the LINK button for a few seconds until the LED display begins to flash.
  4. Open a telnet client and access the menu…Windows XP: click Start, Run, then type “telnet XXX.XXX.XXX.XXX” (replacing XXX.XXX.XXX.XXX with the IO-204’s IP address and without the quotes) into the box and click OK.Windows Vista/7: By default, the telnet client is disabled. To enable it, go to Control Panel → Programs → Programs and Features → Turn Windows Features On or Off. Then check the box beside “Telnet Client”. Now open the start menu and type “telnet XXX.XXX.XXX.XXX” (replacing XXX.XXX.XXX.XXX with the IO-204’s IP address and without the quotes) into the box.
  5. From the telnet configuration menu, change to static IP by typing 1 then enter. The other addresses are configurable by choosing the menu number and hitting enter.Note: The backspace and delete keys to not work with the telnet menu. If a mistake is made while entering an IP address, it is best to exit the option by hitting enter and trying again.
  6. Some options require the IO-204 to be rebooted before the setting takes affect. For example, switching from static IP to dynamic IP. If a reboot is needed the IO-204 will show a message to let you know. Typing r at the command prompt will cause a reboot.
  7. If no reboot is required, use q to quit the configuration menu.

Electrical

The IO-204 module requires a regulated electrical supply of 5V at 200mA on a 2.5mm coaxial connector (center is +5V). The standard wall adapter supplied with the module is rated for approximately 1 Amp. This extra current allows external circuits and devices to be powered directly from I/O channel connectors.

Firmware

Upgrade

The IO-204 module’s firmware can be upgraded. This is initiated from the module settings page of the ioBridge web interface (Look for the upgrade link on the left side under “Module Details”).

Upgrading a module will require the following steps:

  1. Make sure all the channel are set to I/O mode
  2. Unplug any boards or circuits from the I/O channels
  3. Make sure the module is online
  4. Click the “Start Upgrade” button
  5. The LED display will begin to make a circular pattern as the new firmware is downloading. The LED display will show an F when download is finished (usually within 1 or 2 minutes).
  6. Hold down the module’s LINK button until the LED display begins to flash and immediately let go of the button.
  7. Within a few seconds the module will begin to reprogram itself. During the time, both the red and green indicator LEDs will be lit. It is important not disturb the module’s power supply at this time. This should only take a few seconds.
  8. The module will reset and come back online with the new firmware.
  9. Plug your interface boards back in and reconfigure your channel modes for the proper settings
  10. If any on-board rules were running on the module, they will need to be “re-synced” as they get deleted during the upgrade process

Tip: When holding down the LINK button to get the LED display flashing in step 6, make sure you release the button as soon as it starts flashing. If you hold it down too long the module will think something is wrong and it will abort the upgrade.

Firmware Versions

C4.9

– Fixed a bug that prevented some on-board variables from being saved in non-volatile RAM

C4.8

– Added support for a future feature involving on-board rules.

C4.7

– Increased TCP buffer size to enable operation on a Hughes Satellite connection.

C4.6

– Extended DNS timeout.
– Fixed a bug that stopped static IP mode from being selectable via telnet menu.
– Added a “last Chance” watchdog timer to catch modules hanging on DNS requests.

C4.5

– Adjusted TCP buffer to help IP fragmentation issues on networks with tiny MTUs.
– Fixed a bug that stopped static IP mode from being selectable via telnet menu.
– Fixed a bug that led to incorrect pulse counts if onboard rules were used to push digital input state changes.

C4.4

– Added a system-wide watchdog timer. Although it’s very rare that an IO-204 will hang, this should reset the module in that situation.
– Reallocated TCP and MAC buffers. This should improve performance with IO-204s connected over ATM links.
– Added a additional check for when a DNS query fails.
– Added additional 32 bit variables to on-board rules.
– Modified on-board rules variables so they don’t automatically reset upon syncing rules.

C4.3

– Fixed a bug that stopped DNS resolution on certain networks.
– Modified the UDP checksum routine to increase compatible with other wireless bridges.
– Modified the DHCP routine to time-out and reset when the transaction fails.
– Changed the on-board rules routine to ensure that the rules are executed in proper order to support pulse count data logging.

C4.2

– Fixed a bug that kept the on-board rules from reading the state of a digital output correctly when an output pulse was being used on the same pin.
– Tweaked network initialization routine. This should help with the twitching servo problem during local network outages.
– Fixed a bug that delayed the start of pushed updates after power up.

C4.1

– Fixed a bug that stopped the Serial Smart Board from receiving bursts of data. This fix should also make smart channel communication more robust.

C4.0

– Added user configurable on-board logic rules. This will allow the module to perform functions regardless of whether it is online or offline.
– Added Telnet configuration menu for DHCP/Static IP option, Gateway, Subnet Mask and DNS. The menu is only accessible when the module is in LINK mode.
– Changed the module to assign itself an IP address if DHCP isn’t available.
– Added the ability for the module to display its IP address. This feature is initialized by quickly pressing the LINK button 3 times in row.
– Added pulse counting to all four digital inputs. The pulse edge count types are positive, negative and both.
– Completely rewrote parsing routines. Processes commands considerably faster now.
– Fixed DHCP issue when using the IO-204 with Mac OS X as a wireless bridge
– Changed the hard-reset feature. The IO-204 now requires the button to be pressed for a few seconds as power is applied. Previously, it was possible to accidentally hard-reset the module when plugging in the power cable.
– Removed the need to put the module in LINK mode when upgrading the firmware. This makes it easier to upgrade the firmware when physical access to the unit it difficult. (actually this hasn’t fully been implemented yet.)
– The IO-204 no longer resets itself when the network goes down or the LAN cable is unplugged.
– Changed the display to show no number when there is no network preset. It used to show a zero which was very bright and basically unnecessary.
– Changed the start-up network negotiation sequence to end in 8 instead of 9.
– Changed IO-204 to know immediately when LAN cable is unplugged. It used to take up to 25 seconds.

C3.9x

This is a beta firmware. If you have it, upgrade.

C3

– Module now pushes data on analog input trigger and reset
– Pulse function added for digital output
– Shortened the length of time a number is displayed during a channel command
– Added a UDP checksum routine
– Added support for networks using the DHCP broadcast flag
– Module would sometimes reset if a channel was set for a smart board, but none was plugged in. This fix will decreased the likelihood of this happening.
– Module now averages 16 analog input samples instead of using a single data point. This should help in noisy environments
– Added a work-around for legacy DHCP/BOOTP relays on large enterprise networks. (Thanks Lennon)
– Added serial out function on the digital output pin

C2.9

This is a beta firmware. If you have it, upgrade.

C2

Original firmware version.

Factory Defaults

The module contains non-volatile memory, meaning settings are stored even when the device is not powered. In the event that the module’s memory needs to be returned to the factory default settings, a hard reset is required.

To perform a hard reset:

  1. Unplug the power cord
  2. While holding down the LINK button, plug the power cord in – keep the LINK button pressed until the LED display shows a rotating pattern for a second or two indicating the module is re-writing its memory
  3. Release the LINK button

Indicators

When performing various operations on the module, the module will indicate the status through two visual indicators: surface-mount Red/Green Connectivity Status LEDs and a 7-segment LED display.

Connectivity Status LED

When the Connectivity Status LED is green, the module is authenticated and connected to a server. When the status LED is red, the module is not fully associated to a server. During a hard-reset or firmware upgrade, both the red and green LED will flash rapidly for about a second.

LED Display

The LED display is used to convey information for a variety of reasons. In general if the the Connectivity Status LED is red the LED Display is an error message and if the Connectivity Status LED is green, the LED Display is which channel is currently active when commands are being processed.

LED Display during startup (Connectivity Status LED is red)

The module goes through a series of steps to get Internet connectivity. Normally the entire process takes just a few seconds. The current step is shown on the LED display during startup. If the module fails to get online, knowing the step that fails may be helpful for troubleshooting network problems.

  • Red Status Light Only – Module has booted successfully, looking for network connection
  • 1 – Network connection has been established
  • 2 – Successful DHCP transaction, the module now has an IP address
  • 3 – Starting DNS resolution
  • 4 – DNS resolved
  • 5 – Looking for an Internet gateway
  • 6 – Internet gateway found, initialing connection with server
  • 7 – Connected to server
  • 8 – Authentication
  • Green Status Light Only – Everything is OK, begin normal operation

LINK Mode

Programming Mode

Hard-reset Mode

Onboard Rules Acknowledgment

Channel Activity

IP Address Display

Getting Started

Power up

The module doesn’t have a power switch. It’s a piece of networking equipment that is meant to be on all of the time. To power it up, just plug in a network cable and the power cord. Assuming the basic network requirements are met, the module will get online by itself. Digits, increasing from 1 to 8, will be shown on the LED display and the Connectivity Status LED will turn green. The module may restart itself and start the process over again if a connection attempt fails.

Link Module

If you have a new module, the first step is to link the module to your account. You will have to have physical access to the module and know the serial number.

  1. Under the Module tab, click “Link Module”
  2. Enter Serial Number (found on top label of module) and click “Next”
  3. Press and hold the “Link” button on module and click “Next”
  4. Enter the numbers that appear on the module

Additional Resources