NAUTIZ X2 back docking connector

This document provides details on the back docking connector on the Nautiz X2. You’ll need this information to build your own accessory or to communicate with the UART port from your app.

PIN assignment

nautiz x2 back connector

Pin Description Pin Description
1 GND 7 NA
4 UART3-RX 10 VDD3V3-A
5 VDD3V3-B 11 GND
6 GPIO5 12 GPIO2
Please note that currently only UART3 and VDD3V3-B can be accessed and used by the Android system.

Accessing the UART-port

To actually access the UART from your app, you’ll have to connect to /dev/ttyMT3 from your app. We recommend performing the connection setup using C and to use a JNI to enable the rest of your code to communicate with the port. You can take a look at the source code of the LF RFID backpack demo app for such an implementation. You can find the demo app in the Dev download here.

Important changes with OS NX2V100R001C02B031

Starting with OS version NX2V100R001C02B031 and later, both VDD3V3 pins are disabled by default. This is done to improve battery life and to prevent the active pins from causing a short circuit when there is no accessory or cover installed.

This means that most software must be updated to enable the pin before communication with the accessory. This is also the case for apps using the LF RFID backpack (NX2-1030). It is best performed in the JNI part of your code where you can use the function below.

enum {
    IOCTL_EXT_UART2_ENABLE = 0x20,  // 0x20 Enable UART2 Communication
    IOCTL_EXT_UART2_DISABLE = 0x21, // 0x21 Disable UART2 Communication
    IOCTL_EXT_UART2_PMU_ON = 0x22,  // 0x22 Enable VDD3V3-A to output DC 3.3V
    IOCTL_EXT_UART2_PMU_OFF = 0x23, // 0x23 Disable VDD3V3-A to output DC 3.3V
    IOCTL_EXT_UART3_ENABLE = 0x30,  // 0x30 Enable UART3 Communication
    IOCTL_EXT_UART3_DISABLE = 0x31, // 0x31 Disable UART3 Communication
    IOCTL_EXT_UART3_PMU_ON = 0x32,  // 0x32 Enable VDD3V3-B to output DC 3.3V
    IOCTL_EXT_UART3_PMU_OFF = 0x33, // 0x33 Disable VDD3V3-B to output DC 3.3V

int scandev_ioctl_set(int ctl_code, int arg_value) {
    int retVal = 0;
    int fd = -1;
    fd = open("/dev/scandev", O_RDONLY);
    if ( fd != -1 ) {
        retVal = ioctl(fd, ctl_code, arg_value);
    } else {
        retVal = -errno;
        LOGE("Fail to open /dev/scandev, error %s.", strerror(errno));
    return retVal;

To actual enable or disable the VDD3V3-B pin, use the calls below.

// Enable serial port 3 VDD power output
scandev_ioctl_set(IOCTL_EXT_UART3_ENABLE, 1);
scandev_ioctl_set(IOCTL_EXT_UART3_PMU_ON, 1);

// Disable serial port 3 VDD power output
scandev_ioctl_set(IOCTL_EXT_UART3_DISABLE, 0);
scandev_ioctl_set(IOCTL_EXT_UART3_PMU_OFF, 0);
Was this article helpful?
Copyright © 2020 Handheld Group. All rights reserved.
Images, texts and other material downloaded from the Handheld web pages may not be reproduced in any form, without prior written permission from the Handheld Group.
Algiz® and Nautiz® are registered trademarks of Handheld Group AB. l Privacy Policy l GDPR l