BeagleBone Black with Skywire Cape using xbee

I have a beaglebone black and trying to use an xbee module with it.

I’ve gotten the xbee to work in AT mode with communications but I require my project to use API mode. I’ve found several frameworks online that I’m trying to leverage such as this one: https://github.com/nioinnovation/python-xbee

I’ve created a sample program to just try and receive messages as a starting point for my project. I’m using XCTU with a usb dongle to try and send frames to my beaglebone but no messages are being received when I try broadcasting my created messages.

Is there anything obvious that I’m missing? I can’t figure out why the beaglebone is unable to receive messages. I think it’s something to do with the channel but the framework I’m using doesn’t seem to support searching channels for the coordinator that I have connected to my laptop.

A follow up question, are there any other frameworks that are good options that you might suggest I research and look into?

Which XBee modules are you working with and what firmware version is installed?

1 Like

I have XBee S2-Pro’s. The one I’m using through XCTU is a coordinator API running 21A7, while the one on the beaglebone black is running router API 21A7.

Can you verify these two versions of code again. Especially your router’s firmware version? What you listed is two coordinators API versions which will not talk to each other.

Sorry, the router is running 23A7, coordinator 21A7. My mistake

Have you verified that your Router is associated to your Coordinator by checking the CH, ID and OP commands? If not, try doing a local network reset on your router to force it to re-associate with your coordinator.

I looked into this and confirmed that all settings are the same between the devices. They linked automatically when I have both running in my XCTU. When I moved the router back to my beaglebone I was still unable to receive data. Could this be a framework issue?

Most certainly could be. You see if it was a radio issue, then you should not be able to communicate with XCTU. But I would suggest verifying that both module have the same CH and OP values.

Sorry, I did confirm that both those values are the same on the devices. I didn’t mention that in the last message.

Is this a programmable module? If it is not, I would suggest talking with the manufacture of the Beagle Bone system to see what is wrong with the Code. It could be as simple as needing API mode 1 or 2.

I changed the program to API mode 2 and things have started to work. Flow control is set to the default settings. Looks like it was just a character escaping issue. Also had to explicitly state in the xbee python framework I was using that it was using escaped mode.

Thanks for all your help