Change baudrate with AT commands

Hi all,

I’m in trouble with the BD command to change programmatically the baud rate in a
XBee Pro S1.

The case:
I’ve more than 800 embedded systems in the world that use either XBee Pro S1 and XBee3
in a custom broadcast token ring net (upon 802.15.4).

All chips are programmed with XCTU to work at 56700.

Now we would increase programmatically (upgrading our embedded firmware) from 57600 to 115200 using the BD + AC command at board startup and gain some improvements in communication with DIGI modules.
This because I can’t back to us all the DIGI modules to be re-programmed to work with 115200.

ALL works fine with XBee3, all modules change from 57600 to 115200 using following code:

				; ATBD7
				ApiFrameId = ApiFrameId + 1
				aTx[1] = COM_START_DELIMITER
				aTx[2] = 0
				aTx[3] = 5
				aTx[4] = API_AT_COMMAND
				aTx[5] = ApiFrameId
				aTx[6] = ASCII.CHAR_B
				aTx[7] = ASCII.CHAR_D
				aTx[8] = 7
				CALL RADIO_API_OPERATIONS
				IF subResultF
					RETURN
				ENDIF

				; apply changes - ATAC
				; this messare is without check for subResultF due to 
				; baudrate changes.
				ApiFrameId = ApiFrameId + 1
				aTx[1] = COM_START_DELIMITER
				aTx[2] = 0
				aTx[3] = 4
				aTx[4] = API_AT_COMMAND
				aTx[5] = ApiFrameId
				aTx[6] = ASCII.CHAR_A
				aTx[7] = ASCII.CHAR_C
				CALL RADIO_API_OPERATIONS

Then I wait for a while, I change the embedded board from 57600 to 115200 and continue with
DIGI module commands.

The same code with XBee Pro S1 seems not to work.

After AC command the baud rate of DIGI remains at 57600.

What I’ve mistake?

The process is the exact same with the same commands. So on that part, there is no difference. However, the older S1 uses a divisor that placed the 57600 and above baud rates out of nominal. So you might need to adjust your processor to get it to work.

Thanks mvut,
I’ve changed embedded board firmware to produce 111.111 baud rates instead of 115200 and all works fine now !