I guess that I should use the Data Out pins to check the status of the VoiceBox. Read out D0, when it is HIGH the buffer is half full, wait until the VoiceBox is ready (D2 HIGH) and continue.
- is that the correct approach?
- if so, how can I access those pins?
Links to the relevant Voicebox and XBee shield would help but assuming your using the Sparkfun shield (
https://www.sparkfun.com/products/10661?) then manual for the chip it uses says what to do
D2 / Buffer Half Full : Data Out 2 / Buffer Half Full
Data Out 2 / Buffer Half Full output is used for flow control
with a serial port by connecting to the CTS line back to the
computer or controller. Or it may be used as a general-
purpose output. This line is a logical output with either a High
or Low logic level. Which function this output uses is
determined by a configuration bit stored in the EEPROM and
the factory default configurations is: “Buffer Half Full” and is
Active High.
Only problem is the D2/BHF pin is not broken out to any arduino pins so you would need to solder a wire to it and cut a trace to one of the E pins so you could hijack it. Or maybe just wire it directly to the CTS pin on the XBee (if it has one).
Another approach would be to monitor D1 and when it goes low send <64 bytes of data to the shield and so on. You would have to buffer or control serial data flow from PC using arduino.