The XBeePlus Arduino is an XBee radio-sized Arduino-compatible microcontroller that can be “stacked” directly underneath the radio. It is intended for use with devices that already use the XBee’s 20-pin footprint. Future designs could easily utilize other microcontrollers or host sensors. The goal is to create plug-and-play tools for prototyping new concepts that extend the popular radio’s feature set. A few iterations have created a prototype that works well, supports USB programming, wireless programming, I2C, SPI, digital and analog I/O!
XBeePlus Arduino
This is the second iteration of an Arduino-compatible board the size of an XBee that fits right underneath the radio. It uses the ATMega32U4 so in Arduino you can program it as a Leonardo board.
Features
-
I2C
-
SPI
-
scriptable interruption of:
-
all UART transactions
-
XBee pin sleep controls
-
-
local support for:
-
association indicator
-
commissioning button
-
-
17 total digital i/o pins (14 Arduino, 4 XBee)
-
6 configurable as ADC analog inputs
-
4 configurable as PWM analog outputs
-
2 attachable interrupts
-
-
USB serial programming
-
wireless programming
-
EEPROM
-
multiple UARTs
-
Use of all Arduino libraries, e.g. servo, stepper, displays, capacitive sensing, rfid, sd cards etc.
Pinouts
Bottom of XBeePlus Arduino:
Physical Pin | Function | Arduino Connection |
1 | Power supply | VCC |
2 | Arduino software TX | D11 (softserial TX) |
3 | Arduino software RX, PWM | D10 (softserial RX) |
4 | MISO (spi), digital i/o | MISO (spi) |
5 | input for Arduino reset | RESET |
6 | digital i/o, analog output | D9 |
7 | MOSI (spi), analog input, digital i/o | MOSI (spi) |
8 | analog input, digital i/o | D8/A8 |
9 | PWM, interrupt, digital i/o | D7 |
10 | GND | GND |
11 | SCK (spi), digital i/o | SCK (spi) |
12 | SDA (i2c) interrupt, digital i/o | D2/SDA (i2c) |
13 | SCL (i2c), interrupt, PWM, digital i/o | D3/SCL (i2c) |
14 | analog input, digital i/o | D4/A6 |
15 | PWM, digital i/o | D5 pwm |
16 | analog input, PWM, digital i/o | D6/A7 pwm |
17 | analog input, digital i/o | A3 |
18 | analog input, digital i/o | A2 |
19 | analog input, digital i/o | A1 |
20 | analog input, digital i/o | A0 |
Top of XBeePlus Arduino
XBee Physical Pin | Â Function | Â XBee Connection |
1 | Power supply | VCC |
2 | Arduino RX | D0 RX |
3 | Arduino TX | D1 TX |
4 | – | – |
5 | – | Â – |
6 | – | – |
7 | – | – |
8 | – | |
9 | control for pin sleep | D12 |
10 | GND | GND |
11 | – | – |
12 | CTS | A4 |
13 | – | – |
14 | voltage reference | VCC |
15 | association output | <led> |
16 | RTS | A5 |
17 | Arduino Reset (p1) via cap. | <capacitor> for reset |
18 | Â – | – |
19 | Â – | – |
20 | – | – |
Schematics & Board Layout
XBeePlus Arduino 2.0-schematic
Code
Program as an Arduino Leonardo board!
Licensing
Not determined, leaning toward open source hardware.
Very interesting. I’ve been working with xbees to create wireless sound instruments, and your web page has been extremely helpful. In my project I use an accelerometer to convey information about a performer’s movements. I use the data to drive little vibrator motors attached to acoustic sound devices. (seashells, tin cans, walnut shells…) The resulting sounds “feed back” to the performer, evoking further response. I’ve used xbees in api mode without any arduino microprocessor as described by you, but I would like to find a way to use them that was “full duplex” so that signals could be simultaneously transmitted and received. At the moment I find that transmissions to drive the motors interfere with reception of data from the sensor/xbee. According to the digi international page, using an xbee in SPI mode should make this possible, and your xbeePlus Arduino would appear to make this a possibility with no additional footprint. Are there any plans to release this device as a commercial product? Is it possible to purchase one from you?
You should definitely check out the XBee3 line from Digi. It runs MicroPython natively so you can program it to do whatever you need, no adapters or additional microcontrollers required. MicroPython turned out to be a better fit than Arduino, for security reasons but also because it’s an excellent framework that is very easy to learn and use.
https://www.digi.com/products/embedded-systems/digi-xbee/rf-modules/2-4-ghz-rf-modules/xbee3-zigbee-3
https://www.digi.com/resources/documentation/digidocs/PDFs/90002219.pdf
Thank you. I’ll certainly take a look at micropython. Up to now I’ve been using a Teensy 3.2 which runs arduino code.