# X-NODE / XN13 - 1 Relevador 8A

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FnTSwVnSnVBHn8225pvAK%2FX-NODE%20%20Relay%20XN13%20XIDE%20MICROSIDE%2001.webp?alt=media&#x26;token=38277418-723b-4fb0-816a-505329549659" alt=""><figcaption></figcaption></figure>

El **X-NODE Relay (DK1A1B-5V)** es un módulo que integra un relevador DK1A1B-5V de Panasonic® con una bobina accionada por 5 VDC y conectores de salida tipo clema que tienen una capacidad de conmutación máxima de 250 VAC o 30 VDC con hasta 8 A. Es ideal para aplicaciones en domótica, electrodomésticos o máquinas expendedoras, también en el desarrollo de proyectos donde se requiera el control ON-OFF de dispositivos como alarmas, lámparas, motores o válvulas.

### **TABLA DE CONTENIDO**

1. [**¿Cómo funciona?**](#i.-como-funciona)
2. [**Descripción del hardware**](#ii.-descripcion-del-hardware)
3. [**Especificaciones**](#iii.-especificaciones)
4. [**Pinout**](#iv.-pinout)
5. [**Modo de uso**](#v.-modo-de-uso)
   * [**Protocolo UART**](#protocolo-uart)
   * [**Ejemplo UART Arduino Framework**](#ejemplo-uart-arduino-framework)
   * [**Protocolo I2C**](#protocolo-i2c)
   * [**Ejemplo I2C Arduino Framework**](#ejemplo-i2c-arduino-framework)
6. [**Descargas**](#vi.-descargas)
   * [**Esquemático**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FWawr3v3C5PS4PTtylNbo%2FSCHEMATIC%20%20X-NODE%20Relay.pdf?alt=media\&token=eb6d422a-27db-46ae-8c0f-91b3da186f94)
   * [**Dimensiones**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FLcN0ZyDu3OQbDF7SHhse%2FDIMENSION%20X-NODE%20XN13%20Relay.PDF?alt=media\&token=dcdfb97a-54f2-4b2d-bac5-79cda4b5d1f5)

## **I. ¿Cómo funciona?**

El módulo **X-NODE Relay (DK1A1B-5V)** posee un controlador en hardware integrado con el cual es posible interactuar con relevadores sin tener conocimientos avanzados de hardware, ya que solo es necesario enviar una serie de comandos en formato ASCII por medio del protocolo de comunicación serial UART o usando el protocolo I2C, esto permite que el X-NODE sea compatible con cualquier sistema basado en un microcontrolador, microprocesador o equipos industriales.

**X-NODE Relay (DK1A1B-5V)** es compatible con el estándar [**mikroBUS™**](https://www.mikroe.com/mikrobus) de [**Mikroe®**](https://www.mikroe.com/) para un uso fácil con un gran ecosistema de kits para desarrollo de hardware, también posee conectores JST compatibles con el estándar [**Qwiic®**](https://www.sparkfun.com/qwiic) de [**SparkFun®**](https://www.sparkfun.com/) para una comunicación entre diversos módulos y tarjetas de desarrollo por medio del protocolo I2C de manera rápida y sencilla.

## **II. Descripción del hardware**

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FQwTIk8qPz4AgzQpF9pHd%2FX-NODE%20XN13%20Relay%20R2_XIDE_Microside.webp?alt=media&#x26;token=62396bd6-663a-4e5a-8bda-75218b0c6027" alt=""><figcaption></figcaption></figure>

1. Clemas de conexión a los contactos de salida (NA, NC, COM) del relevador DK1A1B-5V de Panasonic®
2. Conectores JST compatibles con [**Qwiic®**](https://www.sparkfun.com/qwiic)
3. Controlador en hardware
4. Puertos de comunicación UART <> I2C
5. Modelo de X-NODE
6. Tipo de X-NODE
7. Conectores estándar [**mikroBUS™**](https://www.mikroe.com/mikrobus)
8. Versión de hardware: R2
9. Componente principal en el X-NODE

## **III. Especificaciones**

<table data-header-hidden><thead><tr><th width="171"></th><th></th></tr></thead><tbody><tr><td><strong>Tipo</strong></td><td>Relevador</td></tr><tr><td><strong>Aplicaciones</strong></td><td>Integración en proyectos de IoT, domótica, industriales y automatización que requieran el control ON/OFF de dispositivos como alarmas, lámparas, motores o válvulas, también se pueden utilizar para energizar relés y conectores más grandes en esquemas industriales (12V/24V).</td></tr><tr><td><strong>Módulo</strong></td><td>DK1A1B-5V</td></tr><tr><td><strong>Fabricante</strong></td><td><a href="https://na.industrial.panasonic.com/">Panasonic®</a></td></tr><tr><td><strong>Características</strong></td><td>Bobina accionada por 5 VDC, capacidad de conmutación máxima de 250 VAC y 30 VDC hasta 8 A, resistencia de contacto máxima 100 mΩ, resistencia dieléctrica de hasta 2,000 VAC y temperatura de operación de 0 °C hasta 80 °C.</td></tr><tr><td><strong>Interfaz</strong></td><td>UART, I2C</td></tr><tr><td><strong>Compatibilidad</strong></td><td>Estándar <a href="https://www.mikroe.com/mikrobus">mikroBUS™</a> y estándar <a href="https://www.sparkfun.com/qwiic">Qwiic®</a> </td></tr><tr><td><strong>Tamaño</strong></td><td>65.1 x 25.4 x 22 mm</td></tr><tr><td><strong>Voltaje</strong> </td><td>3.3 VDC, 5VDC</td></tr></tbody></table>

{% hint style="info" %}
Para la información técnica completa, puedes descargar las especificaciones del fabricante en el siguiente link: [**Datos Técnicos**](https://na.industrial.panasonic.com/products/relays-contactors/mechanical-power-relays/series/1518/model/1741)
{% endhint %}

## **IV. Pinout**

La siguiente tabla muestra el pinout del **X-NODE Relay (DK1A1B-5V)** con respecto al estándar  [**mikroBUS™**](https://www.mikroe.com/mikrobus) (este último se encuentra en las dos columnas del centro).

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FUfpPOx5PxJ91owVnfdKy%2Fuser-manual-mikrobus-pinout-table.png?alt=media&#x26;token=400fbb0f-073e-411d-adae-d17282a53609" alt=""><figcaption></figcaption></figure>

## **V. Modo de uso**

Para un uso fácil y rápido del X-NODE se puede hacer a través de los comandos en formato ASCII que proporciona el controlador en hardware integrado mediante una comunicación serial UART o de forma más avanzada a través del protocolo I2C.

### Protocolo UART

#### Configuración

La comunicación UART utiliza la siguiente configuración:

* Velocidad de comunicación: 115,200 bps
* Paridad: Ninguna
* Bits de datos: 8
* Bits de paro: 1

#### Sintaxis

El protocolo UART permite enviar instrucciones en texto plano *ASCII*, cada instrucción se compone del **identificador del X-NODE, un comando y un final de línea**.

#### **Identificador**

El identificador **ID**, se conforma por el modelo del X-NODE, que puede localizar en el punto 5 del apartado Descripción de hardware y se complementa con un índice, que puede ser una letra del abecedario, por defecto es la letra **A**, siendo posible configurarlo hasta la letra **Z**. Para poder conectar más de un módulo del mismo modelo en un sistema, deberá configurar un identificador único para cada módulo, brindando la posibilidad de conectar hasta 26 módulos del mismo modelo a través del protocolo UART.

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FNl0DnQk49viXK14vdPNe%2FXN13%20-%20Relay_XIDE_Microside_ID.png?alt=media&#x26;token=8fcc0fef-c24c-4ae5-ad2f-65819f2b1719" alt="XN04_X-NODE"><figcaption></figcaption></figure>

{% hint style="warning" %}
**Nota:** A partir de este punto se utilizará el índice predeterminado del X-NODE **XN13 - Relay** para el resto del manual: **XN13A**.
{% endhint %}

#### Lista de comandos

<table data-header-hidden data-full-width="false"><thead><tr><th width="214"></th><th></th><th data-hidden></th></tr></thead><tbody><tr><td><strong>XN13A?</strong></td><td><p>Verifica si se estableció una comunicación con éxito.</p><p></p><p><strong>Respuesta:</strong> OK</p></td><td></td></tr><tr><td><strong>XN13A+V</strong></td><td><p>Obtiene la versión del firmware actual que integra el X-NODE.</p><p></p><p><strong>Respuesta:</strong> XN13A=Versión</p><p>        <strong>Ejemplo:</strong> XN13A=2.0.0.R02</p></td><td></td></tr><tr><td><p><strong>XN13A+ID=</strong></p><p><strong>(A-Z)</strong></p></td><td><p>Cambia el index del ID por una letra diferente del abecedario de la A a la Z, la nueva letra debe ser en mayúscula. Una vez modificado, para volver a cambiarlo es necesario colocar el ID con el nuevo index.</p><p></p><p><strong>Respuesta:</strong> OK</p><p>       <strong>Ejemplo de envío:</strong> XN13C+ID=H</p></td><td></td></tr><tr><td><p><strong>XN13A+TW=</strong></p><p><strong>(1-126)</strong></p></td><td><p>Cambia el address I2C que viene de fábrica por uno diferente. El nuevo address se escribe en decimal seleccionando un valor de 1 a 126.</p><p></p><p><strong>Respuesta:</strong> OK</p><p>       <strong>Ejemplo de envío:</strong> XN13A+TW=28</p></td><td></td></tr><tr><td><strong>XN13A+S=(0-1)</strong></td><td><p>Cambia el estado del relevador con dos opciones: 1 para activar y 0 para desactivar. </p><p></p><p><strong>Respuesta:</strong> OK</p><p>       <strong>Ejemplo de envío:</strong> XN13A+S=1 (Activa el relevador)</p></td><td></td></tr></tbody></table>

#### Comandos avanzados

<table data-header-hidden><thead><tr><th width="184"></th><th></th></tr></thead><tbody><tr><td><strong>XN13A+ETW=(0-1)</strong></td><td>Habilita (1) o deshabilita (0) la interfaz I2C del dispositivo.<br><strong>Nota</strong>: Esta configuración es volátil, desconectar el dispositivo del suministro de energía o enviar el comando de reinicio restaurará la interfaz I2C.<br><strong>Respuesta:</strong> OK<br><strong>Ejemplo de envío:</strong> XN13A+ETW=0</td></tr><tr><td><strong>XN13A+SLP</strong></td><td>Habilita el modo de descanso profundo del dispositivo para reducir el consumo de energía, durante el descanso profundo el dispositivo no responderá a comandos UART, para despertar el dispositivo envíe un lógico bajo (0) al pin WAKEUP/UPDI<br><strong>Respuesta:</strong> OK<br><strong>Ejemplo de envío:</strong> XN13A+SLP</td></tr><tr><td><strong>XN13A+RST</strong></td><td>Reinicia el dispositivo, los valores no volátiles (ej. ID, address I2C) se conservarán y los valores volátiles volverán a su configuración por defecto.<br><strong>Respuesta:</strong> OK</td></tr></tbody></table>

{% hint style="warning" %}
**Nota:** El modo de descanso profundo del X-NODE **XN13 - Relay** tiene un consumo típico de 5 uA, sin embargo, el relevador puede tener un consumo de hasta 330mA cuando se encuentra encendido.
{% endhint %}

#### Final de línea

El X-NODE solo responderá a un comando cuando se envíe un conjunto de caracteres finalizadores de línea, cada comando debe terminar con estos caracteres: **\<CR+LF>**

* CR significa retorno de carro (carriage return), este carácter se utiliza para indicar a un sistema que la entrada de texto debe moverse al principio.
* LF significa alimentación de línea (line feed), este carácter le indica a un sistema que la entrada de texto corresponde a una nueva línea.

La combinación de ambos caracteres es una manera común con el que las computadoras representan una nueva línea, por ejemplo, en un procesador de texto para separar párrafos.

En el caso del X-NODE los caracteres **\<CR+LF>**, se utilizan para identificar cuando se ha terminado de enviar un comando. Si el identificador corresponde al nodo, si el comando existe y si se finalizó inmediatamente con los caracteres **\<CR+LF>**, entonces el nodo enviará una respuesta.

Dependiendo del sistema, deberá configurar el envío de estos caracteres de maneras diferentes.

### Ejemplo UART Arduino Framework

{% hint style="info" %}
Código de ejemplo para el [XC01 - R5](https://docs.microside.com/plataforma-xide/xide-iot-i4.0/iot/x-nodes/xc01-mcu-wifi-ble-esp32-wroom-32), revisa el manual para utilizar nuestro [XC01 - R5](https://docs.microside.com/plataforma-xide/xide-iot-i4.0/iot/x-nodes/xc01-mcu-wifi-ble-esp32-wroom-32) en **Arduino IDE/PlatformIO**
{% endhint %}

```cpp
// Este ejemplo muestra el control de la salida
// del X-NODE encendiendo y apagando el relevador

#include "Arduino.h"

void setup() {
  // Inicializa el monitor serial
  Serial.begin(115200);

  // Inicializa la comunicación UART en el puerto MikroBUS
  Serial2.begin(115200, SERIAL_8N1, 9, 10);
}

void loop() {
  // Limpiamos el buffer
  if (Serial2.available()) {
    Serial2.read();
  }
  
  // Envía el comando para encender
  Serial2.print("XN13A+S=1");
  printBinary(binary_counter);

  String success = Serial2.readStringUntil('\n');

  // Verificar si la operación fue exitosa
  if ( !success.startsWith("OK") ) {
    Serial.println( "Error" );
    delay( 1000 );
    return;
  }

  delay(5000);

  // Limpiamos el buffer
  if (Serial2.available()) {
    Serial2.read();
  }
  
  // Envía el comando para apagar
  Serial2.print("XN13A+S=0");
  printBinary(binary_counter);

  String success = Serial2.readStringUntil('\n');

  // Verificar si la operación fue exitosa
  if ( !success.startsWith("OK") ) {
    Serial.println( "Error" );
    delay( 1000 );
    return;
  }

  delay(5000);
}

```

### Protocolo I2C

Para poder establecer comunicación se debe conocer la dirección (address) del X-NODE, este se conforma por los dos últimos dígitos del modelo después de “XN”, el cual es necesario convertirlo a formato hexadecimal.

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FIT6C6sf3xmsApia6bxTP%2FXN13%20-%20Relay_XIDE_Microside_ID_i2c.png?alt=media&#x26;token=197e8d37-2434-4edc-b724-62bf3da881c1" alt="X-NODE XN01 MICROSIDE_02"><figcaption></figcaption></figure>

#### Configuración

* Velocidad de comunicación: 100 kHz
* Address: 7 bits

{% hint style="info" %}
**Nota:** Verifica que no cuentes con otro dispositivo con la misma dirección (Address) en el BUS I2C, de ser así recuerda que el X-NODE puede cambiar su dirección I2C con el comando **XN13A+TW=(1-126)**.
{% endhint %}

#### Escritura

Para escribir en un registro del **X-NODE Relay** el maestro I2C debe generar las siguientes operaciones:

1. Enviar una **condición de inicio**: El maestro genera un lógico bajo (0) en el pin SDA, mientras SCL permanece en alto (1).
2. Enviar la dirección del **X-NODE**: El maestro envía la dirección de 7 bits.
3. Enviar el **tipo de operación**: El maestro indica si la operación es de lectura (1) o de escritura (0).
4. Esperar una señal de **reconocimiento (ACK)**: El maestro espera a recibir un lógico bajo (0), como confirmación (Acknowledgment) que exista un dispositivo con la dirección enviada previamente en el BUS I2C. Si no se recibe respuesta (1), significa que hubo un error en la comunicación o la dirección es incorrecta.
5. Escribir **n bytes** de datos: El maestro escribirá en secuencias de 8 bits (1 byte) y en orden del bit más significativo primero (MSB) n cantidad de bytes que desea escribir en el registro, el dispositivo enviará una señal de **reconocimiento (ACK)** por cada byte escrito.
6. Enviar una **condición de paro**: El maestro debe liberar el BUS I2C generando un lógico alto (1) en el pin SDA mientras que SCL se encuentra en un lógico alto (1).

#### Lectura

Para leer en un registro del **X-NODE Relay** el maestro I2C debe generar las siguientes operaciones:

1. Enviar una **condición de inicio**: El maestro genera un lógico bajo (0) en el pin SDA, mientras SCL permanece en alto (1).
2. Enviar la dirección del **X-NODE**: El maestro envía la dirección de 7 bits.
3. Enviar el **tipo de operación**: El maestro indica si la operación es de lectura (1) o de escritura (0).
4. Esperar una señal de **reconocimiento (ACK)**: El maestro espera a recibir un lógico bajo (0), como confirmación (Acknowledgment) que exista un dispositivo con la dirección enviada previamente en el BUS I2C. Si no se recibe respuesta (1), significa que hubo un error en la comunicación o la dirección es incorrecta.
5. Leer **n bytes** de datos: El dispositivo enviará secuencias de 8 bits (1 byte) y en orden del bit más significativo primero (MSB) n cantidad de bytes, al recibir un byte, el maestro deberá generar una señal de **reconocimiento (ACK)** para solicitar 1 byte más, o una señal de **no reconocimiento (NACK)** para indicar que ha finalizado la transmisión y solicitar el dispositivo que libere el BUS.
6. Enviar una **condición de paro**: El maestro debe liberar el BUS I2C generando un lógico alto (1) en el pin SDA mientras que SCL se encuentra en un lógico alto (1).

#### Lista de registros

<table><thead><tr><th width="112">Registro</th><th width="102" align="center">Dirección (hexadecimal)</th><th width="109" align="center">Tipo</th><th width="111" align="center">No. Bytes</th><th>Descripción</th></tr></thead><tbody><tr><td>RELAY</td><td align="center">0x01</td><td align="center">R/W</td><td align="center">1</td><td>Enciende (0x01) o apaga (0x00) el relevador</td></tr><tr><td>STAT</td><td align="center">0x37</td><td align="center">R</td><td align="center">1</td><td>Estado del X-NODE, 0x00 si no hay errores, cualquier otro valor significa error en la comunicación.</td></tr><tr><td>FW</td><td align="center">0x38</td><td align="center">R</td><td align="center">3</td><td>Versión de firmware, en versión mayor, menor y parche: 0x02.0x00.0x00</td></tr><tr><td>UART_ID</td><td align="center">0x39</td><td align="center">R/W - NV</td><td align="center">1</td><td>Permite leer y escribir el índice del ID por una letra diferente del abecedario de la A (0x41) a la Z (0x5A)</td></tr><tr><td>TW_ADD</td><td align="center">0x3A</td><td align="center">R/W - NV</td><td align="center">1</td><td>Permite leer y escribir la dirección I2C del dispositivo por uno diferente de 1 (0x01) a 126 (0x7D).</td></tr><tr><td>UART_EN</td><td align="center">0x3B</td><td align="center">W</td><td align="center">1</td><td>Habilita (0x01) o deshabilita (0x00) la interfaz UART del dispositivo.</td></tr><tr><td>SLEEP</td><td align="center">0x3C</td><td align="center">W</td><td align="center">1</td><td>Habilita (0x01) o deshabilita (0x00) el descanso profundo del dispositivo, el dispositivo despertará si el maestro escribe la dirección I2C del dispositivo en el BUS.</td></tr><tr><td>RESET</td><td align="center">0x3D</td><td align="center">W</td><td align="center">1</td><td>Si se escribe un 0x01 reinicia el dispositivo.</td></tr><tr><td>WHO_AM_I</td><td align="center">0x3E</td><td align="center">R</td><td align="center">2</td><td>El primer byte es el modelo del X-NODE, el segundo byte es la revisión de hardware</td></tr></tbody></table>

{% hint style="warning" %}
**Nota:** El modo de descanso profundo del X-NODE **XN13 - Relay** tiene un consumo típico de 5 uA, sin embargo, el relevador puede tener un consumo de hasta 330mA cuando se encuentra encendido.
{% endhint %}

#### **Registros No volátiles (NV)**

Los registros no volátiles se guardan en la memoria EEPROM del dispositivo, lo que significa que conservarán los valores escritos en ellos incluso si el dispositivo se apaga.

#### Estructura del registro RELAY:

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FtWDJGuNDrv3w3uzx78Vw%2Fxn13-r2-i2c-protocol-register-relay-write.png?alt=media&#x26;token=6c0f67d5-6f6d-4006-be60-af02a1479404" alt=""><figcaption></figcaption></figure>

### Ejemplo I2C Arduino Framework

{% hint style="info" %}
Código de ejemplo para el [XC01 - R5](https://docs.microside.com/plataforma-xide/xide-iot-i4.0/iot/x-nodes/xc01-mcu-wifi-ble-esp32-wroom-32), revisa el manual para utilizar nuestro [XC01 - R5](https://docs.microside.com/plataforma-xide/xide-iot-i4.0/iot/x-nodes/xc01-mcu-wifi-ble-esp32-wroom-32) en **Arduino IDE/PlatformIO**
{% endhint %}

```cpp

// Este ejemplo muestra el control de la salida
// del X-NODE encendiendo y apagando el relevador

#include <Arduino.h>
#include <Wire.h>

void setup() {
  // Inicializa el monitor serial
  Serial.begin(115200);

  // Configura los pines de la comunicación I2C
  Wire.setPins( 12, 13 );
  // Inicializa la comunicación I2C
  Wire.begin();
}

void loop() {
  
  Wire.beginTransmission(0x0D);
  // Selecciona el registro
  Wire.write( 0x01 );
  // Enciende el relevador
  Wire.write(0x01);

  // Verificar si la operación fue exitosa
  if (Wire.endTransmission() != 0) {
    Serial.println("Error");
    delay(5000);
    return;
  }

  delay(5000);

  Wire.beginTransmission(0x0D);
  // Selecciona el registro
  Wire.write( 0x01 );
  // Apaga el relevador
  Wire.write(0x00);

  // Verificar si la operación fue exitosa
  if (Wire.endTransmission() != 0) {
    Serial.println("Error");
    delay(5000);
    return;
  }

  delay(5000);
}

```

## **VI. Descargas**

<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><mark style="color:green;"><strong>Esquemático</strong></mark></td><td><a href="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F9u0smj6eAyqHg2OZuRIn%2FX-NODE%20XN13%20Relay%20R2_XIDE_Microside_SCH.pdf?alt=media&#x26;token=2578b92c-a6bb-4d81-8d6a-386e6341c78f">https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F9u0smj6eAyqHg2OZuRIn%2FX-NODE%20XN13%20Relay%20R2_XIDE_Microside_SCH.pdf?alt=media&#x26;token=2578b92c-a6bb-4d81-8d6a-386e6341c78f</a></td></tr><tr><td align="center"><mark style="color:green;"><strong>Dimensiones</strong></mark></td><td><a href="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FkbIoXAFL8kzydPM5xHn6%2FX-NODE%20XN13%20Relay%20R2_XIDE_Microside_Dimensions.pdf?alt=media&#x26;token=43d5c13b-5ed9-4c42-be69-534a2fb7b2a9">https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FkbIoXAFL8kzydPM5xHn6%2FX-NODE%20XN13%20Relay%20R2_XIDE_Microside_Dimensions.pdf?alt=media&#x26;token=43d5c13b-5ed9-4c42-be69-534a2fb7b2a9</a></td></tr></tbody></table>
