CCBee is TI CC430F5137 based radio module that fits into XBee PRO socket. It has UART and SPI interface for sending and receiving data.
Schematic and PCB are designed using EAGLE. This is 2 layer design. 50 Ohm lines are calculated for board thickness 1 mm and copper 35 um. Calculations are done with AppCAD. Another good tool for calculating lines is TX-Line. If your board thickness will be different, calculate new values using AppCAD "Coplanar Waveguide". This board is designed for 868 MHz ISM frequency band.
Part | Value | Package | Quantity | Farnell code |
IC1 | Balun: Johanson Technology 0896BM15A0001E | 1 | 1885513 | |
X2 | Antenna connector | U.FL-R-SMT | 1 | 1688077 |
X3 | Chip antenna: Johanson Technology 0868AT43A0020E | 1 | 1885493 | |
U1 | Texas Instruments CC430F5137 | 48VQFN | 1 | 1903415 |
Q1 | 32 kHz | 3.2 mm x 1.5 mm | 1 | 1712821 |
Q2 | 26 MHz | 5.0 mm x 3.2 mm | 1 | 1841997 |
C1, C2 | 12.5 pF | 0402 | 2 | 1828875 |
C3, C6, C8, C10, C11, C12, C13, C15, C17, C19 | 0.1 uF | 0402 | 10 | 1828860 |
C4 | 0.47 uF | 0603 | 1 | 1833805 |
C5, C7, C9, C18 | 10 uF | 0603 | 4 | 1886093 |
C14, C16 | 2 pF | 0402 | 2 | 1758932 |
C20, C21 | 18 pF | 0402 | 2 | 1828876 |
C22, C23 | 1.8 pF | 0402 | 2 | 1828870 |
C25 | 2.2 nF | 0402 | 1 | 1414582 |
L1 | ferrite 1 kOhm | 0402 | 1 | 1515788 |
L2 | 5.6 nH | 0402 | 1 | 1669640 |
L3 | 12 nH | 0402 | 1 | 1515341 |
L4 | 1.8 nH | 0402 | 1 | 1669627 |
R1 | 56 kOhm | 0402 | 1 | 1738874 |
R2 | 0 Ohm | 0402 | 1 | 2008330 |
R3 | 47 kOhm | 0402 | 1 | 1840558 |
R4 | 330 Ohm | 0402 | 1 | 1840544 |
R5, R6, R7 | 1 kOhm | 0402 | 3 | 1738850 |
LED0, LED1, LED2 | red | 0603 | 3 | 1226389 |
Pinheader | 2 mm x 10 pins | 2 | 1668551 |
For toolchain installation follow instructions from: http://tinyprod.net/debian-dev/
Install TinyOS source:
cd ~/
git clone git://github.com/tp-freeforall/prod.git tinyos-prod
Setup environment variables. Create file called ~/tinyos-prod/tinyos-env.sh
# Here we setup the environment
# variables needed by the TinyOS
# make system
if [ $# -eq 0 ]
then
echo "ERROR: TinyOS path not specified as first argument!"
exit 1
else
ROOT_DIR=$1
echo "Setting up for: $ROOT_DIR"
export TOSROOT=
export TOSDIR=
export MAKERULES=
TOSROOT=$ROOT_DIR
TOSDIR="$TOSROOT/tos"
CLASSPATH=$TOSROOT/support/sdk/java/:$TOSROOT/support/sdk/java/tinyos.jar:.:$CLASSPATH
MAKERULES="$TOSROOT/support/make/Makerules"
export TOSROOT
export TOSDIR
export CLASSPATH
export MAKERULES
fi
Now add this to your ~/.bashrc file:
source ~/tinyos-prod/tinyos-env.sh ~/tinyos-prod
Here you can find more detailed instructions.
Get platform files. Put this repository somewhere you like, for example to home:
cd ~/
git clone git://github.com/andresv/ccbee.git
Create symlinks to platform files:
ln -s ~/ccbee/software/tinyos/ccbee.target ~/tinyos-prod/support/make
ln -s ~/ccbee/software/tinyos/ccbee ~/tinyos-prod/tos/platforms
Now it is possible to compile TinyOS apps for ccbee. Try it!
cd ~/tinyos-prod/apps/Blink
make ccbee
Use MSP-FET430UIF or alternative to download image to the microcontroller. This example shows how to use mspdebug for doing that.
mspdebug uif -d /dev/ttyUSB0 "prog build/ccbee/main.ihex"
It seems that RF part is currently quite bad. Probably it is due to 2 layer design and I guess this coplanar waveguide does not work as expected. With PATABLE0 set to 0xC0 (max) I measured 3 dBm, with 0xC3 2 dBm and with 0xC6 about 1 dBm. Actually with 0xC0 it should be near 10 dBm. PATABLE0 can be set in Makefile:
CFLAGS += -DSMARTRF_SETTING_PATABLE0=0xC0
Serial <-> radio bridge firmware is not yet ready.