The ConnectCore 8X SBC Pro assembles 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 Pro:

  • The XBee module is connected through two interfaces:

    • MCA_UART2 of the MCA. MCA_UART2 is configured (4-wires) and enabled on the default ConnectCore 8X SBC Pro device tree.

    • 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

See MCA UART serial port[{XREF_bsp_r_usb-2-0_PRTL}], and MCA General Purpose Input/Output (GPIO) for more information about these interfaces.

Kernel driver

The XBee does not require a specific driver.

Device tree bindings and customization

The XBee does not have specific device tree bindings. If using GPIOs of the CPU for controlling some XBee lines (RESET_N, SLEEP_RQ…​) you can configure the pinctrl for these as part of the UART node that’s connected to the XBee socket.

User space

XBee control lines

Digi Embedded Yocto provides a script that initializes the GPIOs connected to the RESET_N and SLEEP_RQ lines. The script requests such GPIOs through the sysfs, configures them as outputs, and:

  • sets SLEEP_RQ line low (for having XBee running)

  • sets RESET_N line low and high (to reset the XBee)

If you are using different GPIOs than the Digi reference board defaults for connecting to the XBee, define them in your project’s conf/local.conf file:

conf/local.conf
# XBee
XBEE_RESET_N_GPIO = "220"
XBEE_SLEEP_RQ_GPIO = "216"

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/ttyXBee 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/ttyXBee
  3. On a different terminal console, write +++ to the serial port:

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

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

See XBee libraries for additional information on advanced use of XBee modules.

See also

See Cellular for additional information on the use of XBee cellular devices.