XBee Problematic 2-way Comms

I’ve been stuck trying to find the solution to this problem for quite a while even though it’s a simple fix:

Problem – I can send messages to my PC ok, however my Beaglebone doesn’t register any messages I try to send to it. When I try I get weird behaviour : the xbee attached to the PC seems to receive the messages it sent - this is from the XCTU console on the PC:

received:

hello this is BBB

hello this is BBB

sent:

hello this is PC

received:

hello this is PC

I’m running x2 XBee Pro S1’s

XBee_PC is attached to my PC via a sparkfun Xbee Explorer

XBee_BBB is attached to the UART2 port on my Beaglebone Black rev C by x4 wires – RX, TX, GND, 3.3V (setup includes decoupling cap)

Xbee Settings:

XBEE_PC XBEE_BBB

CH - Channel C C

ID - Pan ID 123 123

DH 0 0

DL 2 1

MY 1 2

CE End Device [0] Coordinator [1]

The program on the Beaglebone is as shown below – it pauses at ‘waiting for message’ even when I send messages to it from XCTU (ser.read() doesn’t return anything either)

import Adafruit_BBIO.UART as UART
import serial
from time import sleep

UART.setup("UART2")
ser = serial.Serial(port="/dev/ttyO2", baudrate=9600)
ser.open()

msg = 'hello this is BBB \n'
print 'attempting to send message... '
for i in range(2):
     sleep(0.1)
     ser.write(msg)

while True:
     print 'waiting for message... '
     try:
          data = ser.readline()
          print data
          sleep(0.1)
     except Exception as e: print(e)
     except KeyboardInterrupt:
          break
ser.close