The ConnectCore 8X SBC Express and ConnectCore 8X SBC Pro assemble an XBee socket that allows you to connect a through-hole XBee module.

See the ConnectCore 8X SBC Pro Hardware Reference Manual for the XBee socket pin-out description.

On the ConnectCore 8X SBC Express:

  • The XBee module is connected through two interfaces:

    • LPUART0 of the i.MX8QXP CPU. LPUART0 is configured (4-wires) on the ConnectCore 8X SBC Express device tree include file and enabled by default on the ConnectCore 8X SBC Express device tree file

    • USB_OTG2 bus.

      The USB_OTG2 bus is also routed to the bottom port of the stackable dual USB A-type connector on the top side of the board. If using the XBee via USB, make sure you don’t connect another device on the USB connector.

    The following XBee lines are connected to i.MX8QXP CPU GPIOs:

    • XBEE_RESET: Connected to GPIO3_IO13

    • XBEE_SLEEP_RQ: Connected to GPIO3_IO16

    • XBEE_ON/SLP_N: Connected to GPIO3_IO14

On the ConnectCore 8X SBC Pro:

  • The XBee module is connected through two interfaces:

    • MCA_UART2 of the MCA. MCA_UART2 is configured (4-wires) on the MCA firmware.

      Use of MCA_UART2 is not yet supported.
    • USB_OTG1 bus.

    The following XBee lines are connected to MCA GPIOs:

    • XBEE_RESET: Connected to MCA_IO15

    • XBEE_SLEEP_RQ: Connected to MCA_IO11

    • XBEE_ON/SLEEP_N: Connected to MCA_IO16

Kernel driver

The XBee does not require a specific driver.

Device tree bindings and customization

The XBee entry on the device tree defines the GPIO used as the reset line. This is used to reset the XBee to a known state when booting Linux:

ConnectCore 8X SBC Express device tree
	xbee {
		digi,reset-gpio = <&gpio3 13 GPIO_ACTIVE_LOW>;
	}

User space

Basic validation

You can use the serial port to check that the XBee module is connected correctly.

  1. Configure the serial port to match the configured speed of the XBee. For example:

    ~# stty -F /dev/ttyLP0 speed 9600 raw
    If your XBee is configured with specific parity and flow control settings, you may have to configure those settings on your serial port.
  2. On one terminal console, read from the serial port:

    ~# cat /dev/ttyLP0
  3. On a different terminal console, write +++ to the serial port:

    ~# echo -n +++ > /dev/ttyLP0

When the connection is successful, the console displays an OK response on the terminal that is reading the port.

See the XBee ANSI C Library for additional information on advanced use of XBee modules.