The Arduino XBee shield uses a resistor divider to connect the TTL 5V Arduino Tx to the XBee Din line. This has the side effect of pulling the Din line to GND if the Arduino is not asserting the Tx line. Problem is that the Arduino does not have control of the TX line during the brief power up sequence.
Series one (802.15.4) Xbees use a low on DIn during power up to force entry into command mode at 9600 baud – an escape for when all else fails.
This means that you cannot use the XBee for about 10 seconds after power up. To avoid this you need to pull up the Arduino Tx line by attaching a 10K resistor between Tx and 5V. Here are a couple of shields I modified
Updated 26/2/2010
I have been looking at revisiting my home monitoring setup for some time. Whilst I have considered plug computers and other slugs as the hub for this I keep coming back to the Arduino. An Arduino has enough CPU power, is cheap, very low power and I can maintain it should it develop a fault.
For the sensor communications I have decided to standardize on the JeeLabs JN4. Most sensors will connect directly to the sensor controllers, but for the CC128 then I will use a bare board Arduino as a data concentrator.

For the first part of this project I will build the data storage unit. This will have:
1) Seeeduino 328 – chosen due to the additional 3.3v power available.
Update 24/2/10: I am revising this decision as the Seeeduino has placed the 500mA fuse on the 5v line (not on the USB 5v line), I need more than this (it is the LCD back light that draws most of this) and the fuse keeps cutting power. I will probably end up with a standard Duemilanove and put a 3.3v regulator in for the 3.3v devices.
Update 25/2/10: Measured current required – 305mA (180mA without the LCD) – so it must be the regulator cutting out because the heat sink is not adequate. Moved to Duemilanove, with 100mA 3.3v LDO regulator and although the 5v regulator does get hot I do not have any cutout problems.
2) Arduino ethernet shield
3) XBee-pro 802.15.4 for serial wireless communications connecting to the Arduino via a XBee shield.
Update: Using the JeeLabs JN4 with RFM12B operating at 868MHz for the wireless communications
4) 128Kbyte I2C FRAM (RAMTRON) this will be used to hold message queues – this is 3.3v
5) 2GB SD card – initially with uALFAT controller (I2C 3.3v), but I intend to use a SD card directly for the final version.
6) I2C serial LCD – based upon my own ATTiny2313 I2C Serial LCD adapter
7) I2C battery backed RTC to use as a time stamp for all readings.
I am using my own level converter (based upon this) to drive the 3.3v I2C bus from 5v.
I have gathered the necessary hardware and will start detailed design at the weekend.
I have been extending my range of inputs to the CurrentCost, Ardunio, Xport pachube logger.
In order to do this I wanted a wireless sensor module.
After looking round I chose the FIO, has an XBEE socket and ATMega168, very little else. Can be powered from a rechargeable LiPo battery.
The next step was to look at the power requirements. I am using a 1000mAH battery and with the normal FIO consumption of 65mA this would last about 16 hours – not very long. After some experimentation I found that if I ran the XBEE in pin controlled sleep mode 2 (less power used than mode 1 at 3.3V) and the ATMega in full sleep I could get the consumption down to 270uA. Switching off the ADC and the analog comparator got this down further to 170uA. Assuming that we have 30 minutes active per day (I’m hoping for much less) this will run for just under 1 month. In practice (this has been in place for the last 6 months) it runs for about 4 months before it needs recharging.
I am using a low value on digital inputs 2 or 3 to wake up the ATMega and then the ATMega wakes up the XBEE.

To be continued …
A lot of devices use XML these days – and parsing the XML by hand is quite complex. I use a CurrentCost CC128 power monitor and also Twitter. Both of these have an XML interface.
Over the last couple of months I have been developing a simple XML parser as an Arduino library – it is table driven and so compact and easily modified. This is now ready for release – you can download it here. The CC-128 example compiles at less than 9kB.
I have included a Twitter API example and also a CurrentCost CC-128 example.
The CC-128 example is being used to provide a data concentrator for CC-128. I am using an Arduino (Mini Pro 328) to take the cpu burden off the main Arduino, processing serial data at 57600 baud takes up most of the power of an Arduino.
Connect the Mini Pro to the CC-128 using GND and CC-128 Tx to Mini Pro pin digital 1. The Mini Pro acts as an I2C slave for the main Arduino (simple connection – just link up GND, A4 and A5 – also 5V if you don’t have a separate power supply).
I have three current cost devices feeding the CC-128 – Electricity, Gas and a light sensor. It should be quite easy to modify the example for your configuration.
Master code to read from the CC128 I2C slave is roughly as follows
CC128Data cc128data; // structure definition is held in the .h file
Wire.beginTransmission(I2CADDR);
Wire.send(COMMAND);
Wire.send(SNAPSHOT | READALL);
Wire.endTransmission();
delay(5); // give the I2C transmission and the slave time to deal with request
// 2mS does not work - 3 does - give it 5 to be safe
Wire.requestFrom(I2CADDR, sizeof(CC128Data)); // request data structure bytes from slave device
byte* b = (byte*)&cc128data;
for (int i = 0; i<sizeof (CC128Data); i++)
{
*b++ = Wire.receive(); // receive a byte as character
}
I will be writing up another post about the CC-128 data concentrator and the main Arduino, describing how to set up multiple I2C slaves all linked to a central Arduino CPU.
Presents under the tree all ready to be opened after scrambled egg and smoked salmon brunch, with bucks fizz. Nom nom. Despite appearances the tree is vertical – just a weird branch at upper right.
Updated blog to use Ingoal’s Twitter Updater
The Arduino Nokia 3310 shield come from NuElectronics. I have been using this shield with an Arduino Ethernet shield together with Andrew Lindsay’s Nokia 3310 library. I upgraded the library to be compatible with multiple SPI components, you need to bend digital pin 10 so that it does not make contact and then connect it to another spare pin.
Andrew has updated the library based upon my changes, you can download it from here.
This is the current state fo my home monitoring system.

I am working on integrating a camera (pictures visible on a web site), sms and email.
Just got back from Hungary – blogged here.
Now unpacking and back to work.
Cannot post reliably - keep getting errors
I am having great difficulty in posting anything that is not straight text – I suspect a Wordpress bug (recently upgraded to 2.9) but I cannot narrow it down. It appears to be when I have links to external sites. Wonder if Wordpress introduced a new security feature?
Got it – any post created with the twitter upload plugin active and WP 2.9 or greater gets garbled. Disable and delete the plugin, then create new posts – all is good.
Set up with different plugins and theme.