I have two Xbee pro S2B modules on a USB dongle. The modems work ok, but after every reboot (power cycle) I have to put the Xbees in Bypass Mode manually by typing “B” in Hyperterm or XCTU at 9600. This is very annoying since i want to use the Xbee at 19k2 and not 9600. Is the a setting of somesort so that the Xbee S2B always boots so that I can use it for transmitting data directly after reboot?
I have also found that if i put the modules at 19k2 or 38k4 I have to send the “B” at 9600 first. Anyone any ideas?
The radio is designed to work that way. You have two separate distinct halves. A Freescale micro that you can control and an Ember Micro that is controlled by Digi ZigBee code that you cannot touch, except to update. As the device ships from the factory these radios do not have any code on the Freescale except for a locked Bootloader. To use them you must first write a program to make them do the task you want them to do. You do not talk directly to the ZigBee Radio. You talk to the Freescale Micro which then talks at 115.2K Baud via Digi API to the Ember Chip supporting the ZigBee functions. So every time you use the bootloader to put the radio into a special mode called Bypass (which just moves data from the Ember output line to the Dout of the device and reciprocally from the Din line of the device it is moved to the input line of the Ember from the Freescale) you are functionally operating as if the Freescale was not even there — Bypass mode. To make the device act on power up like a standard ZigBee without a Freescale processor (which is what Bypass mode does) you would need to create a program so that on wake up the Freescale would put itself into bypass mode. When the devices were first released they came with sample code called a Transparent App. This has been replaced with a much more complex, (yet simpler to use and understand), SDK based on the Open Source Eclipse IDE. You can select specific device functions in the SDK and it will create stubbed out source code to support those functions you selected. Code in the logic to control those features and you can rapidly create your own transparent app, or most any other functionality that you want. Note: that without some code uploaded or instructions sent to the Bootloader, the device will not act like a standard ZigBee. The radio is designed to work that way.
To solve the baud rate change — Code the radio to send the Baud rate change as part of its Initialization code when you set the radio to bypass mode.
I also had the same problem. A simple solution is to create the one line program:
This will reset the system and tell the bootloader to go into bypass mode.
I already have these device I can use X-CTU to go into terminal mode, and get into bypass mode from the boot loader. From there, I can access the Xbee, send a receive information etc. For this setup, I also only have power, ground, RX and TX connected.
I’m so frustrated after spending weeks on this, and one snafu after the other. I feel like vendors should make it more clear that s2b modules don’t work (normally) without all this extra effort. I had no idea these were even programmable until late in this process of debugging. Is there a reason that the default transparent app was removed?
So, is there no simpler way to just get the s2b to do bypass mode automatically? I found a windows machine, got CodeWarrior setup, found the serial_bypass sample app, compiled it… But then when I try to install, it doesn’t seem to recognize the parralax usb adapter I’m using. I’m hoping to not have to purchase more hardware to program this thing to just do simple serial.
Is there some way to upload it via X-CTU? I can see the freescale menu from there, and when in bypass mode, I can read and write the xbee firmware from there.