# ADP130 Isolated DIO Module

An optional DIO add-in card is available. The add-in card has an NXP i.MX1050-series microcontroller that can communicate with the host processor over USB. The card provides an interactive shell for configuration on a virtual COM port.

Supported VIN/Input/Output Voltage: 5-48V

## <mark style="color:blue;">Configuration</mark> <a href="#configuring-the-dio-card" id="configuring-the-dio-card"></a>

The add-in card is configured interactively through its shell using a serial terminal emulator program. The shell is accessed differently depending on operating system.

### **Windows Shell Access**

<figure><img src="https://3062424488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlLHqs7kbNoKOFTwGOfH6%2Fuploads%2Fgit-blob-e202912c6a20d3d8a4ac6ec10cb3e91ed836dae3%2F702b4d68cbf93056b7f78aeb080a71ad4e3091383a7721e573499a74e5eef235.png?alt=media" alt="" height="547" width="1024"><figcaption></figcaption></figure>

1. Open Device Manager by pressing Win+X M. Open the “Ports (COM & LPT)” menu.
2. Note the “COM#” numbers on each port listed.
3. Download and install PuTTY from the link above.
4. Open PuTTY. When prompted, enter the COM port number in the “Serial line” text box, then click “Open”.
5. If the port number was correct, a “uart:\~$” prompt should appear. If not, try a different port.

### **Linux Shell Access**

1. Install picocom, e.g. “sudo apt install picocom” on Ubuntu.
2. Open the shell’s virtual COM port with picocom by running “picocom /dev/serial/by-id/usb-OnLogic\_DIO-\*-if00”.
3. Some Linux distributions may not configure udev to produce by-id links. If those links are missing, try /dev/ttyACM0 and similar devices.

Once the shell is open, type “help” for usage information. A description of available shell commands can also be found [**here**](https://static.onlogic.com/resources/firmware/documentation/shell.html).

While the microcontroller shell is intended for human interaction, it can be used to programmatically control the MCU. To avoid a number of pitfalls when doing so, observe the following best practices:

* On Linux, use the symlinked device nodes inside `/dev/serial/by-id` instead of hardcoding `/dev/ttyACMx` device names. `/dev/ttyACMx` numbering is
* unstable; `/dev/serial/by-id/usb-OnLogic_<device>-if00` will reliably point to the terminal interface.
* When writing Linux shell scripts, ensure that the echo flag is disabled on the TTY by running `stty -F /dev/serial/by-id/<device> -echo` before
* interacting with the shell. Most serial libraries (pyserial, serialport-rs, etc.) will automatically disable this flag.
* When sending a command, precede it with a ‘\x03’ byte to clear the terminal’s line buffer and ensure that the command is interpreted correctly. Follow the command with a ‘\r’ or ‘\n’ character to execute the command.
* Send less than 64 bytes at a time. To send longer commands, explicitly flush the port’s output buffer in between each block of 64 bytes.

### **Connection Diagrams**

External Connector Pinout - Note the key notch at pins 7 & 9

<figure><img src="https://3062424488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlLHqs7kbNoKOFTwGOfH6%2Fuploads%2Fqos3IxvURPwBc5RIMzkB%2Fimage.png?alt=media&#x26;token=615609b0-8fea-416f-83b7-7e1d19ab22e1" alt=""><figcaption></figcaption></figure>

Digital Input (Active-Low)

<figure><img src="https://3062424488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlLHqs7kbNoKOFTwGOfH6%2Fuploads%2Fgit-blob-0153204bc3086c325a8bd0579a131f9a8b0d9c2f%2Fa549c467e904466feb2f33ac344cb7552994ff55c7eac1c2a6a959c27ce95929.png?alt=media" alt="" height="104" width="433"><figcaption></figcaption></figure>

Digital Input (Active-High)

<figure><img src="https://3062424488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlLHqs7kbNoKOFTwGOfH6%2Fuploads%2Fgit-blob-9dac3b8fa31ad8b1b2fcb5000d0a07b9c20d96ed%2Fdc5e535291f929649fe34c1025305d80abd2aba151335a1e9a13227ec0c82363.png?alt=media" alt="" height="106" width="433"><figcaption></figcaption></figure>

Digital Output (Low-Side/Sinking)

<figure><img src="https://3062424488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlLHqs7kbNoKOFTwGOfH6%2Fuploads%2Fgit-blob-b30e9b5c13544dc2f29a5b8f060675ae5c8215b0%2Fac9dc846f13fdd64d25c1332074204087a5c26574dcae01e4380efe667b4be2e.png?alt=media" alt="" height="148" width="438"><figcaption></figcaption></figure>
