RFM12B + xbee in an altoids can...

I am working on a custom board that needs both xbee and RFM12B support - xbee for long range (wifi most likely, but possibly 802.14) and RFM12B for talking to a bunch of cheap, wireless sensors also based on the RFM12B + attiny85.

Eventually I expect to need to procure/create plastic enclosures, but I’m prototyping in an altoids tin because it’s a challenge (if I can get it to work in an altoids tin it can only get better in plastic) and because I’m planning on open sourcing the design.

You can get xbee modules with u.fl connectors for external antennas if range becomes an issue due to the can. It would be cool, though, if there are any tricks I could use to get reasonably good range with the standard whip. (Mount closer to the center, etc.)

Can I mount the RFM12B module directly beneath the xbee module as in the attached image (yes, it’s a mess still - trying to locate the major components first…)? Will this cause any problems with range or noise/crosstalk for either device? Wifi/802.14 run at 2.4GHz, I believe, and the RFM12B is at 915MHz, though it could use one of the lower frequency modules too. Any suggestions on placement and overall design, etc. would be much appreciated.

Thanks in advance for any help you can give me!

I’m working with the RFM12B too. In No. America, the 902-928MHz band is viable whereas 868 is not ulicensed and 433MHz has severe power and transmitter duty cycle restrictions from the FCC and its equivalents.

I don’t think the 915MHz will bother the XBee and vice-versa.

I’d change your layout to permit the optional use of the larger XBee Pro module, and have a power regulator that can supply that additional current.

I’d like to trade notes on RFM12B code. I’m deriving plain C code from C++ written by others. I don’t wish to use the Arduino libraries or IDE; I’m using Atmel AVR studio 4.

The RFM12B if set to low data rate AND low receiver bandwidth will get much greater range than the XBee because of the lower bandwidth (noise-power bandwidth product, laws of physics), and the lower frequency has an inherent 6-10dB advantage. I assume you’re not using external antennas. But of course the on-PCB antennas cannot be inside a can.

I began RFM12B work using JeeNode’s board for software work, then I plan to migrate to the smaller AVR mega328P “Teensy” module (cheap), from PJRC with the RFM12B piggy-backed.

Not sure why you need both radios. I’d do it all with RFM12Bs.

I’m hoping to use the xbee modules for wireless uploading, (http://www.ladyada.net/make/xbee/arduino.html), but being able to drop a wifi module in the same place is pretty compelling too. My board is intended to aggregate data from a bunch of “local” sensors then send the data to a base station which could be some distance away. I’m using TLV1117’s for the voltage regulators (3.3 and 5v) and each should handle up to 800ma.

I had planned on using the modules with whip antennas to test with, assuming they would protrude from the front of the can. If the range isn’t good enough we can use the u.fl version to connect an external antenna.

At the moment I’m using the jeelabs RFM12 library as well, though I wouldn’t mind finding something smaller.

At some point I should take a look at AVR studio but I’m not running into memory limitations just yet so the faster dev cycle using the arduino IDE is working for me.

I’m pretty near a routable layout at the moment. I’m planning on hand routing after autoroute can successfully complete. I got to 98.4% so I’m not far off.

I attached an image but attachments are a crapshoot on the sparkfun forum. It will most likely tell you the attachment doesn’t exist anymore.

mechanical layout precludes using the larger XBee Pro - you may want that for better range at some date.

Yeah - good call. I’ve moved the ftdi header since this image, but I should verify the space in front of the CO2 sensor.