Improving communication speed

My system has 5 Arduino Fio's each with a Xbee S1. They communicate in a multinode network with a desktop computer. The arduino's measure data for generating audio (mic, liptension, pressure, keys, joysticks, 4 accelerometers). With pure data I ask the arduino's for a part of the data by sending a character. The fio that holds that data responds by sending the character and the data. The total amount of data is 56 bytes (in 9 sets; 2 fio's can each send 3 datasets).

Everythings works perfect, but as I want to use it for audio purposes any delay adds to my system latency. Each messages takes an average of 30 ms. The size of the message (from 2 to 12 bytes) doesn't matter. 30 ms a messages is way to long.

I expect this is related to a setting of the Xbee. I use CE=1 and DL=FFFF on the coordinator, both CE and DL 0 on the end devices. Xbee's are set on XB24 (S1) with Function set XBEE 802.15.4 and firmware version 10CD. All Xbee's are in AT mode.

I found a few descriptions of the ATcommand set, but couldn't figure out which setting to change. GT (3E8), NT (19)?? SD (4)?? Hopefully there are some Xbee experts here on the forum??

Thanks, pammie

O... Fio's are 3,3 V/ 8Mhz, baudrate used is 57600.

[no xbee expert disclaimer]

now the xbees send on request, why not let them send as often as possible and let the PC (which has more power) sort the data out?

Wouldn't that generate data collisions?? Or does the 802.15.4 standard take care of this automatically?

don't know but I cannot imagine that any protocol these days that share a medium has no Collision Detection.

have you checked - - page 8

a good reader about xbee is - -

I did some reading... it seems the problem arises from the settings in the ft232R chip from my Sparkfun Xbee Explorer USB. By setting its latency timer it is possible the speed things up. Another option that (search for latency) gives is

One of the RS232 status lines has changed (USB-Serial chips only). A change of level (high or low) on CTS# / DSR# / DCD# or RI# will cause it to pass back the current buffer even though it may be empty or have less than 64 bytes in it.

It should be possible to control a status line on the Xbee explorer from the arduino (via Xbee), but would it be possible to do the same with multiple arduino's???? Anyone experience with that?? Of course I'll make the arduino's talk after each other.