Skip to main content

Device Reference

Complete reference of all Brainboxes devices supported by the Brainboxes.IO library.

ED-Series (Ethernet Remote IO)​

ED-series devices provide digital and/or analog IO lines accessible over Ethernet. All ED devices connect via TCPConnection and support both ASCII (port 9500) and Modbus TCP (port 502) protocols.

Digital IO Devices​

ClassProductDigital InputsDigital OutputsDescription
ED588ED-588888 DI + 8 DO + Serial Gateway
ED516ED-51616016 Digital Inputs + Serial Gateway
ED527ED-52701616 Digital Outputs + Serial Gateway
ED538ED-53884 (relay)8 DI + 4 Relays + Serial Gateway
ED004ED-004444 DIO + RS-232
ED204ED-204444 DIO + RS-232
ED008ED-008888 Digital IO Ports
ED038ED-03833 (relay)3 Relays + 3 Digital Inputs

Analog IO Devices​

ClassProductAnalog InputsAnalog OutputsSensor TypeDescription
ED549ED-54980Voltage/Current/Temp8 Analog Inputs + Serial Gateway
ED560ED-56004Voltage/Current4 Analog Outputs + Serial Gateway
ED582ED-58240RTD (PT100/PT1000)4 RTD Temperature Inputs + Serial Gateway
ED593ED-59380Thermocouple8 Thermocouple Inputs + Serial Gateway

Edge Controller​

ClassProductDigital IOSerial PortsDescription
BB400BB-40081Industrial Raspberry Pi Edge Controller

The BB-400 has the same IO as the ED-008 but also runs Linux, allowing code to execute locally on the device.

Digital I/O vs Digital Inputs and Digital Outputs​

Note ED-008, ED-004, ED-204 and BB-400 have Digital IO Lines. These lines can behave as either inputs or outputs depending on how they are wired (see manual). From a software perspective simply treat the device as having distinct input and distinct outputs and only read the data which is useful.

E.g. BB-400 has DIO 0 connected to an LED (output) and DIO 1 connected to a button (input)

// connect to BB-400
using (EDDevice ed = EDDevice.Create("192.168.0.100"))
{
// set DIO0, wired to LED, to ON
ed.Outputs[0].Value = 1;
// read DIO1, wired to button, input state
Console.WriteLine($"Button is: {ed.Inputs[1].Value == 1 ? 'on':'off'}");
}

ES-Series (Ethernet to Serial)​

ES-series devices convert Ethernet TCP/IP connections to physical serial ports. Each port connects via its own TCP connection (ports 9001, 9002, etc.).

Light Industrial RS-232 Devices​

ClassProductPortsDescription
ES246ES-24611-port RS-232
ES257ES-25722-port RS-232
ES357ES-3572Enhanced 1-port RS-232 + 1-port RS422/485
ES446ES-4461PoE 1-port RS-232
ES457ES-4572PoE 2-port RS-232
ES701ES-70144-port RS-232
ES279ES-27988-port RS-232

Light Industrial RS-422/485 Devices​

ClassProductPortsDescription
ES313ES-31311-port RS-422/485
ES320ES-32022-port RS-422/485
ES413ES-4131PoE 1-port RS-422/485
ES420ES-4202PoE 2-port RS-422/485
ES346ES-34644-port RS-422/485
ES842ES-84288-port RS-422/485

Industrial RS-232/422/485 Devices​

ClassProductPortsDescription
ES511ES-5111Industrial 1-port RS-232/422/485
ES522ES-5222Industrial 2-port RS-232/422/485
ES551ES-5511Industrial Isolated 1-port RS-422/485
ES571ES-5711Industrial 1-port RS-422/485 + Ethernet Switch

Common Patterns​

The factory method auto-detects the device type by connecting and reading the device's XML configuration:

// ED-series: returns the correct subclass (ED588, ED516, etc.)
using (EDDevice ed = EDDevice.Create("192.168.0.100"))
{
Console.WriteLine($"Found: {ed.GetType().Name}");
Console.WriteLine($"Full Debug Description: {ed.Describe()}");
}

// ES-series: returns the correct subclass (ES246, ES257, etc.)
ESDevice es = ESDevice.Create("192.168.0.100");

Direct Construction​

When you know the device type, construct it directly to avoid the auto-detection network call:

// ED-series with auto-created connection
// set port the port number of either the ascii protocol (default 9500) or Modbus protocol (default 502)
var connection = new TCPConnection("192.168.0.100", portNumber);
var ed = new ED588(connection);
ed.Connect();

// ES-series (constructor creates connections for all ports) each serial Port has its own TCP port number therefore not required in the constructor for the device
var es = new ES246("192.168.0.100");
es.Connect();

Modbus TCP​

To use Modbus TCP instead of ASCII, set the device through the web UI to Modbus TCP mode and use the correct TCP port (default 502)

var connection = new TCPConnection("192.168.0.100", TCPConnection.DEFAULT_MODBUSTCP_PORT);
var ed = new ED588(connection, new ModbusTCPProtocol());
ed.Connect();

Default TCP Ports​

PortPurpose
9500ASCII protocol (ED-series default)
502Modbus TCP protocol
9001ES-series serial port 1
9002ES-series serial port 2
9003+ES-series serial ports 3+
80Device web configuration page (used by factory methods)