Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close

Pyctu - a XBee configuration tool

I like to use XBee modules, but I don't like to use Windows. If you want to configure your XBee module the choices are XCTU, a Windows GUI, or use AT commands from a serial emulator. If you want to update or change the firmware the only tool is XCTU.

Pyctu aims to provide the functionality of XCTU from Linux. As of now it can configure modules that have AT firmware and API firmware as well. It can also do firmware updates.

However, everything doesn't work perfectly and the curses-based UI is probably difficult for someone (besides me) to use. I'm putting Pyctu package out there to see if anyone is interested in using it, and hopefully to get feedback or contributions that will improve it.

To use pyctu you need to plug your XBee into a serial to USB adaptor and type (assuming your adaptor is mounted at /dev/ttyUSB0)::

$ pyctu /dev/ttyUSB0

Now you should get the first screen of the interface::

┌─────────────────────────────────────────────────────────────────────────────┐
  networking  rf  serial  tools                                              
_____________________________________________________________________________
  address_high:                        13A200                                
  address_low:                         409825C1                              
  aes_encryption_enable:               0                                     
  aes_key:                             OK                                    
  channel:                             11                                    
  coordinator:                         ERROR                                 
  destination_address_high:            0                                     
  destination_address_low:             0                                     
  mac_mode:                            ERROR                                 
  node_discover:                       <enter>                               
  node_id:                                                                   
  pan:                                 0                                     
  source_address:                      34BD                                  
  xbee_retries:                        ERROR                             
└─────────────────────────────────────────────────────────────────────────────┘

Now, if you wanted to change, say, the pan id, you would hit the down arrow until the value for pan was highlighted and then push 'enter'. You will now have a popup for entering a pan id::

┌─────────────────────────────────────────────────────────────────────────────┐
  networking  rf  serial  tools                                              
_____________________________________________________________________________
  address_high:                        13A200                                
  address_low:                         409825C1                              
  aes_encryption_enable:               0                                     
  aes_key:                             OK                                    
  channel:                             11                                    
  coordinator:                         ERROR                                 
  destination_address_high:            0                                     
  destination_address_low:             0                                     
  mac_mode:       ┌──────────────────────────────────────┐                   
  node_discover:                   pan                                     
  node_id:        22                                                       
  pan:            └──────────────────────────────────────┘                   
  source_address:                      34BD                                  
  xbee_retries:                        ERROR                                 
└─────────────────────────────────────────────────────────────────────────────┘

I'll be adding more documentation, but for now I just want to see if anyone is interested in this thing.

Recent activity

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.