Sunday, April 21, 2013

Dead End

It is springtime here at Mad Scientist Labs, though you would never know it.  Mother Nature has decided to totally screw us out of our spring.  Snow still covers most of our yard.  I took Buddy for a walk today wearing an old parka and nearly froze to death.

"That sucks", you must be thinking.  You would be thinking wrong.  The weather sucking outside lets me play around inside with little gadgets and gizmos.  The focus of my efforts the last couple of weeks has been trying to get my Stellaris LM4F120 (bought for the princely sum of $4.99 with free shipping) to play nicely with a little RF1100SE CC1101-based board I picked up at Deal Extreme.  The goal here, of course, is to pick up the signal from my Davis Weather Station's Outdoor Sensor Suite (ISS).  In other words, I want to get the Stellaris to tell me how cold it is outside without me having to walk the dog to find out.
Stellaris On Left, RF1100SE On Right, BMP085 Module Hanging In Mid-Air In Middle
"Should be a piece of cake", thought I.  Long ago, I had figured out the mysteries of the ISS wireless transmissions, going so far as to get my Pretty Pink Pager to work as a portable weather station.  Turns out it wasn't so simple.  It might not even be possible.

I've burned a couple of weeks on this trying to get it to work, and when it works, it barely works.  I was seeing all kinds of strange things, and I didn't know if it was my unfamiliarity with the Stellaris board or with the poorly documented RF1100SE CC1101-based module.  At times I would get a bunch of garbage.  At times I would get nothing at all.  But now I think I've come to a conclusion: if you are thinking of picking up one of these RF1100SE boards to work at anything other than 433 MHz, don't to it.  Simple as that.  And here's why.

This picture is taken from the CC1101 datasheet for using the module at 433 MHz.
Recommended CC1101 Schematic for 433 MHz Operation
And this picture is taken from the same datasheet for using the module at 915 MHz, the frequency the ISS operates at.
Recommended CC1101 Schematic for 915 MHz Operation
The two circuits are very different in the connection between the CC1101 and the antenna.  The 433 MHz recommended circuit has four inductors between the chip and the antenna, while the 915 MHz recommends either six or seven inductors between the chip and the antenna.

Now, here is a picture of my module taken from the DX website.
RF1100SE Module With Inductors Circled
Count the inductors circled in red and it becomes pretty obvious pretty fast that these RF1100SE modules are designed for 433 MHz operation.  I feared that this might be the case, and I hoped that getting a proper length antenna for 915 MHz operation might be enough.  It is not.

This is the output from my Stellaris board talking SPI to the RF1100SE with a 915 MHz antenna attached.
This Sucks
This is what I get after tweaking the register settings to within an inch of their life.  You can see all kinds of things here.
  • My frequency error (a two's complement value shown on the very right" is about as low as you can get, so I'm dialed right on the signal.
  • My RSSI value is terribly low: I'm barely seeing the signal above the background noise.
  • As tweaked up as I am, I'm still seeing a lot of bit errors.  Those packets starting with 68 and 78 are corrupted - all of the packets from this ISS should end with zero.
  • You can't see it here, but many times the radio misses the packet altogether.
In the process of banging my head against a wall, I went looking for other people using this RF1100SE module at 915 MHz and found none.  People have tried but I haven't come across anybody reporting success.  And this is why.  The CC1101 needs a very different circuit between the 433 and 868 / 915 MHz bands.  This board is designed for the one, and getting it to work at the other isn't going to happen if you expect any kind of performance out of it.

What to do, what to do?  Not quite sure yet.  Any kind of CC11xx module that doesn't already incorporate some kind of processor on it (8051, Atmega) and is cheap seems to be designed for 433 MHz.  What I'm looking for is just the RF chip itself that I can drive directly with the Stellaris board without having to fuss with two different toolchains, processors, etc.  I might have to consider a non-CC11xx type chip instead, like something HopeRF based (like this one, or maybe this new one out soon).

Anyway, this problem was just consuming me for a while.  It wasn't the "not working" part, it was the "why isn't it working" part.  I gave up several times trying to get this working, only to keep going back to it when I realized I couldn't stop thinking about the problem.  Now I know what's wrong.  I haven't been defeated.  I just realize that victory with this module doesn't look to be possible, and I'm OK with that.  You can't do what you can't do.

Mad Scientist Labs: wasting weekends so that you don't have to.

12 comments:

  1. Maybe something like this:

    https://estore.ti.com/430BOOST-CC110L-CC110L-RF-Module-BoosterPack-P2734.aspx

    ReplyDelete
    Replies
    1. Would be a candidate if it weren't for the crappy embedded antenna.

      Delete
  2. I have some 444mhz and still no joy with them !

    ReplyDelete
  3. grrr sticky fingers/.. should be 433 of course !

    ReplyDelete
  4. Hi! I read ur blog but now, im a little bit confused (might be because of my english-competences ;-)): I'm not sure, if you reached the goal to read all the sensor-information of the ISS (Temp, Hum, Rain, Wind, Direction, Solar, Leafness, ...) or only parts of them. If you did, could you please write in one of your next posts how to do the same? So probably a list of all necessary components? That would be great.
    Because I'd like to "read" the ISS-sending-information and use them via arduino for a home-center-technic.
    Thanks for your response!

    ReplyDelete
    Replies
    1. These two links will tell you what you need to know in terms of the protocol.

      https://github.com/dekay/im-me/blob/master/pocketwx/src/protocol.txt

      http://www.wxforum.net/index.php?topic=18489.msg178506#msg178506

      Delete
  5. Have you looked at somehting like this:
    http://www.marcmart.com/915mhz-arduino-module-wireless-rf-transceiver-module-cc1101-cc110-remote-control-for-arduino-robo.html?gclid=CIOq_-jv_7cCFfE7OgodjxsAjQ

    It seems rather similar to the module you have but designed for the 915MHz band.... Lots cheaper than the ~$50 TI development boards

    Joe Sestrich

    ReplyDelete
    Replies
    1. Hard to tell if the title is REALLY accurate or not when there are entries in the spec like:

      CC1101:387-464 MHz and 779-928 MHz

      and

      433 MHz spectrum use free license

      But for the price it might be worth a shot. More money, but on this one they state 915 MHz explicitly.
      http://www.elechouse.com/elechouse/index.php?main_page=product_info&cPath=90_92&products_id=2148

      Delete
  6. Odd, the picture for the 915MHz explicit looks like it's the 433MHz circuit.

    ReplyDelete
  7. I bought some RF1100SE's off of ebay and they came with the CC110L transceiver and were advertised as 915MHz. Couldn't get them to talk past a few feet until I saw this post, looked at the circuit, and switched the settings to 433MHz. Now I'm talking as far as my cables will reach across the room.

    ReplyDelete
  8. of flight per battery charge. I bought 4 additional batteries and charging station so he could actually fly it for a decent period of time.

    ReplyDelete
  9. i just bought RF1100SE and the antenna mark as 433mhz, but i think i can change the freq by change some lines in "cc1101.h" and i check it using rtl-sdr

    // Carrier frequency = 433 MHz
    #define CC1101_DEFVAL_FREQ2_433 0x10 // Frequency Control Word, High Byte
    #define CC1101_DEFVAL_FREQ1_433 0xA7 // Frequency Control Word, Middle Byte
    #define CC1101_DEFVAL_FREQ0_433 0x62 // Frequency Control Word, Low Byte

    ReplyDelete