Tuesday, February 14, 2012

CC2500 Project (Part 8) - Downsizing

I received my PCB's yesterday (From Laen at dorkbotpdx.org, of course!). I spent last night attempting to solder all the surface mount components (and for the most part, failing miserably). I need to get some solder paste and a small oven for the next batch...

Those components are tiny!
After soldering all of the passive components and msp430's, I began the first set of tests. First I checked to see if all of the connections were good with my multimeter. Once I fixed any problems I found there, I tried powering the board and connecting with the programmer/debugger. Surprisingly, it worked almost immediately! (I had to connect power to the correct pins first...)

This is why I like my glass desk.
The next test consisted of flashing the two LED's. Unfortunately, only one of them worked... I put together two devices, but LED1 didn't work on either one! I decided to call it a night then. After getting back from work today, I continued my debugging session. Turns out that one resistor wasn't soldered correctly (my multimeter test worked because I was pressing it down with the probe) and the second was a badly soldered LED.

Entire device MSP430 + CC2500 Radio
I continued the same test by toggling all of the IO pins (Port 1 and 2). I looked at each one with the oscilloscope to make sure it was toggling correctly. As soon as I started, things went downhill. Some pins toggled, but most didn't. I went back and re-soldered all of the msp430 pins and tested them again. It was better, but half of the pins still didn't toggle. I decided to probe the microcontroller pins directly, but they weren't doing anything either. It had to be a software problem. It turns out that I was only toggling pins 0-3, and not 4-7. Once I realized my stupid mistake, I corrected it and everything started working.

New device in front of prototype it's replacing.
The final step consisted of soldering the CC2500 radios. Unfortunately I didn't think my design through very well, since the radio modules have the crystal oscillator at the bottom, so it kind of sticks out at an angle. I changed the wireless RGB LED controller code to run on the msp430g2412 (which is what these use) and re-programmed them. Amazingly, the radios worked on my first try.

Look at all that free space!
I decided my old RGB LED controllers were taking up too much space on the breadboards, so I replaced them with the newly created modules. They take up very little space and work just as well. I'm thinking of making the switching DC/DC power supply just as small and hopefully integrating it with the current device.


Another device next to the components it replaced.
Now that I have a semi-decent platform, I can start working on writing some awesome radio libraries. (Once I put together more radios of course...) I want to have a full home-automation system going in a few months. I'll keep posting updates here.

5 comments:

Andy said...

Hi Alvaro,

What kind of range are you getting out of these boards? Have you thought of using an external antenna?

I am very interested in your progress -- thanks for sharing your work. Can you please email me your password to junk at olya dot com? I would like to ask you a couple of questions offline. Thanks again!

Unknown said...

I haven't tested the range on these yet. I've used the ez430-rf2500 dev boards before, and the range was good enough to get around my apartment.

I'll do an actual range test later on and post the results.

You can't have my password though :-)

Andy said...

Hi again,

Could you please explain how you connect MSP430 to the CC2500 board? The pins on the board aren't labeled, and it's not clear from your pictures what wire goes where.

Still hoping to get your email so that I can ask you a few questions offline. I got as far as compiling your code on mspgcc for 2553. Thank you for all the comments you have in your code -- they help a lot.

Unknown said...

I didn't think about that. I'll do a post during the week with schematics and more detailed explanations.

In the meantime, you can get the CC2500 module pinout here: http://www.scribd.com/doc/57353914/CC2500-Module-Specification-V1-0

You can contact me at <my first name> at alvarop dot com

Wayne said...

Can you share the files for your custom board?