This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

  • Resolved

LPRF Spectrum Indicator

Hi.

Part of my summer internship at Texas Instruments LPRF in 2009 was to develop a spectrum analyzer using the CC2511 and CC1111 as a low cost ($49 or $99 depending on what hardware is needed) alternative to the expensive professional spectrum analyzers out there. This resulted in the LPRF Spectrum Indicator, with the name Indicator chosen to emphasize the inaccuracy of the measurements, which you can find below. Although not perfect in any ways, this little tool can prove worthy for many RF developers out there.

For the CC2511it supports the entire 2.4 GHz ISM band and for the CC1111 it supports 877-973 MHz. The PC side was developed using Qt (http://qt.nokia.com/).

Here is a screenshot of the application:

Download the application here:
http://focus.ti.com/download/aap/zip/LPRF_Spectrum_Indicator_v0_9_0.zip

Remember to read the instructions in ReadMe.txt

To be able to run this you will need either a CC2511EMK or a CC1111EMK to run the application. You will also need a CC debugger or SmartRF04EB to program the spectrum indicator firmware onto the USB dongle.
http://focus.ti.com/docs/toolsw/folders/print/cc2511emk.html
http://focus.ti.com/docs/toolsw/folders/print/cc1111emk868-915.html

http://focus.ti.com/docs/toolsw/folders/print/cc-debugger.html

The full source for the PC application can be found here (includes notes on how to get started and more documentation):
http://focus.ti.com/download/aap/zip/LPRF_Spectrum_Indicator_src_v0_9_0.zip

To compile this you will need Qt, QWT and Microsoft Visual C++ 2008 Express Edition:

Although I’m not considering a lot more development on this, questions, suggestions for improvements or general comments are more than welcome!
Want to develop this further? Feel free to post it here on the community. Known issues and improvements to be made are:

  • There seems to be an offset of 1-4 khz per channel, to the real frequency. Thus, a known peak at 2440 MHz will have an offset of around 150-500kHz when this accords to channel 150 (a little right of the center of the plot). This could be verified by applying a known signal then move the plot so that this peak is drawn at different positions in the plot. At the far left the frequency is correct.
    • Suggested solution:
      Find the connection, a mathematical expression of the offset, and compensate when filling the x-axis, GraphPlot::setTraceData().
  • Start Frequency - RF bandwidth - Channel Spacing
    There are only a discrete number of values valid for the above mutually dependent variables. When the user interacts through zooming, or direct control through the advanced menu, these values are set to the closest valid value in DataManagement. Currently there are internal function calls within DataManagement to keep dependencies valid, as well as signals sent back to the user through adjustments in GraphPlot. These internal calls and signals have a structure which should be improved. The adjustments finally applied might not always appear logical to the user. For example, centering on cursor, as well as zooming, does not always give the intuitive result.
    I've tried to encapsulate as much as possible, but might have ended up with a too complicated structure.
    • Suggested solution:
      Turn the requested change from user into one signal, with only one response. Or keep essential variables, such as Start frequency - End frequency - Channel spacing shared between GUI and DataManagement.
  • In TraceControl::MaxHold when zooming, the first set of samples is not captured by the break argument. This might be because the x-axis is altered, but not fed with new RSSI values. This causes an eventual peak to remain until it is no longer amongst the last TraceControl::m_nofMaxHoldSamples. You'll notice this when zooming on a peak. The problem is that this peak is no shown in the right place.
    • Suggested solution:
  • Only pdf is currently supported as an export format.
    • Suggested solution:
      Change the GraphPlot::export() to find the fileformat from the incoming file name. According to this, do the exporting, f.ex. use QSvgGenerator.
  • A curve's properties can not be changed after being chosen. That is, the properties set when adding a trace.
    • Suggested solution:
      Include a button calling the OptionsCurve dialog.
  • It should be automatically found which virtual serial port the CC2511 is located at.
    • Suggested solution:
      --

Hope you like this.

Enjoy!

Regards,
Torbjørn

Best regards,

Torbjorn

  • Hi,

    you did an excellent job. I know it is not easy to manage system architecture, signal processing and computing in a single project.

    I am new to ZigBee, I work on a project whose goal is to restore the physical signal at the receiver.
    This work is done by manipulating the MSP430F2618 to program the CC2520, to extract the received signal before the decision on the samples is made.

    I'd like to know if you got to work on this idea to recover the signal, and if you can help me. If you have any idea to suggest it to me.

    Can you send to me your probation report and the documents that helped you with your project.
    Thank you

    84.hadin@gmail.com

  • Torbjørn,

    Great work, as you know I am a big spectrum analyzer fan

    When I checked the official release, I noticed that the frequency span of the CC1111 was changed upward. The most interesting ISM bands are around 863-870MHz (Europe) and 902-928MHz) in the US, please make sure that those frequency bands are covered.

    SVein

  • In reply to engiNerd:

    Hi Svein!

    Will do, it's a minor change, but requires a new build.  

    Considering the current maximum bandwidth coverage of 93.6MHz, what do you think should be the upper and lower limits?

     

    -T

    Best regards,

    Torbjorn

    LPRF_Spectrum_Indicator_src_v0_9_1.zip
  • In reply to Torbjorn Sorby:

    Sorry for the delay.  Here's an updated version with the covered bandwidth changed.

     

    Torbjørn

    Best regards,

    Torbjorn

    LPRF_Spectrum_Indicator_v0_9_1.zip
  • Hi Torbjorn,

    Thanks for sharing this with us. I just got it all working and it looks like it will be very handy for us working on LPW development projects, even though we have a couple of real spectrum analyzers. Sometimes it's useful to have this little spectrum indicator at our desks without having to bring the big spectrum analyzer over from the lab.

    I am wondering if you are making the firmware source code available somewhere? I don't see it in any of the links you posted above.

    Thanks,

    Russ

  • In reply to Torbjorn Sorby:

    How do you communicate with the chip?

     

    Also is it possible for u to make the code used to program the chip available?

     

     

     

     

     

     

    Thank You.

  • In reply to adrian39393:

    Would also really like the source code for the cc1111 if possible.

    Thanks,

    David

  • In reply to David Schwartz:

    All,

    Will try to locate and post the dongle source code once back from vacation.
    It's really just a tweak of the existing CC1111 USB example code from ti.com using the RF_Modem as a starting point.

    Regards,
    Kjetil

    --
    PS. Thank you for clicking  Verify Answer  if this answered your question!

  • In reply to Kjetil :

    Hi Kjetil,

    It's been a few months since you posted this. Are you back from vacation? Any luck finding the source code for this project?

    Best regards,

    Russ

  • In reply to RF:

    Sorry..completely forgot about this one.

    Attached the FW. Please note that this is a mess and was never intended for distribution (little effort was put into commenting and documentation), but hopefully you will find it useful anyway.

    If you have questions you can try posting here, but I did not write this so might not know the answer.

    Regards,
    Kjetil

    --
    PS. Thank you for clicking  Verify Answer  if this answered your question!

    Spectrum_Indicator_FW.zip

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.