Create Project Need help?

Extension for XBee and 8 additional I/Os for Elektor Embedded Linux Board (Gnublin)

Status: Proposal
June 22, 2014


This Gnublin module allow to add wireless communication between devices using an XBee RF module ( Communication is based on the 802.15.4 standard designed for point-to-point and star communications over-the-air. The modules require minimal power and provide reliable delivery of data between devices.

The XBee RF modules interface to a host device through an asynchronous serial interface. In the most basic operation they can be used as a wireless serial cable. This Linux Board extension communicate with the host via the I2C interface thanks to the SC16IS750 (Single UART with I2C bus / SPI interface). This chip provide 8 additional programmable I/O pins.



The extension provides two pin headers where the XBee RF can be plugged directly. These headers only provides the power (3V3 and GND), the RX, TX, RTS and CTS signals. Note that this extension could be used for any UART capable modules.

Here is the explanation of the jumpers.

  • JP1 : A0 I2C address
  • JP2 : A1 I2C address
  • JP3 : I2C SCL pull-up resistor
  • JP4 : I2C SDA pull-up resistor
  • JP8 : RX shortcut; connect the RX with the XBee header
  • JP9 : TX shortcut; connect the TX with the XBee header
  • JP10 : CTS shortcut; connect the CTS with the XBee header
  • JP11 : RTS shortcut; connect the RTS with the XBee header
  • JP12 : IRQ shortcut; connect the IRQ with GPIO11 of the Gnublin connector



A C++ and Python module is available. This module uses the Gnublin-API and is therefore compatible with it. More information about Gnublin can be found on the wiki ( or in the series of articles (Embedded Linux) published in the Elektor Magazine.

Source codes is available on Github at Read the README file for instruction about compilation and installation. Here is a summary assuming the gnublin-api is installed.

git clone

git clone

# edit the gnublin-modules/ file

cd gnublin-modules/module_sc16is750 make

Here is a simple example on how to send a message over the air using the module. More advanced utilization of the module could be seen in the module_sc16is750/test_sc16is750.c file.

int main(void) {

    gnublin_module_sc16is750 xbee(0x4d);



    xbee.write("Hello Word !\n", 13);

    return 1;



Known Issues

  • Python module not yet ready. Will come soon.
  • Enabling the THR interrupt will block all others interrupts to be fired. Do not set CONF_INF_THR while initializing UART (initUART).
  • RTS and CTS between SC16IS750 and XBee has not yet been tested. Do not shortcut the JP10 and JP11 jumper.


Update - 2014/07/16

Pyhton module could now been build using the following command :

make python-module

The support to build the python module has been added in the gnublin-make repository. So you must update it.

Here is an example in python for sending a message.

import gnublin_module_sc16is750 as sc16is750

xbee = sc16is750.gnublin_module_sc16is750(0x4d)


xbee.write("Hello Word !\n", 13)


Read the full post
Show less
Extension with XBee plugged
Headers and jumpers

Loading comments...