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.

Rebuilding SimpliciTI Libraries

Other Parts Discussed in Thread: SIMPLICITI, CC2500

The eZ430-RF2500 demo comes with various pre-built SimpliciTI libraries such as SimpliciTI EZ430RF NWK AP Library.lib, etc.

I downloaded the source code for SimpliciTI.

I changed the MAX_APP_PAYLOAD value to something other than 10, however my linker complains about a structure size mismatch within a module inside the library.  This has been reported in previous posts.

Although I have the full SimpliciTI source, can someone please direct me towards an IAR project so that I can rebuild those libraries so that I don't have to try and build the sources themselves?  Read note below....

Note: I realize that I can remove the library from my demo app and insert the SimpliciTI sources and rebuild that way.  However, it does not build since it is missing all sorts of defines like MAX_NWK_PAYLOAD, the radio selection, etc. and there aren't clear instructions on how to rebuild this from scratch.  Some of the BSP files that came with the eZ430-RF2500 demo have "CC2500" embedded in the filename.  Should these be included?  I could probably spend several days trying to figure all of this out, but it shouldn't be that way....

Thanks in advance

  • Hi.

    Have never built the library so can't comment on what is needed, but here is what i believe you will have to do to get the full source to compile in IAR IDE.

    Add the following files to your project:


    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\bsp\bsp.c

    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\mrfi\mrfi.c

    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk\nwk.c
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk\nwk_api.c
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk\nwk_frame.c
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk\nwk_globals.c
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk\nwk_QMgmt.c

    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk_applications\nwk_freq.c
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk_applications\nwk_ioctl.c
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk_applications\nwk_join.c
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk_applications\nwk_link.c
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk_applications\nwk_mgmt.c
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk_applications\nwk_ping.c
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\simpliciti\nwk_applications\nwk_security.c

    Then add this to your project settings:


    Add this to C/C++ compiler -> Preprocessor tab and the additional include directories
    $PROJ_DIR$\..\..\..\..\..\Components\bsp
    $PROJ_DIR$\..\..\..\..\..\Components\bsp\drivers
    $PROJ_DIR$\..\..\..\..\..\Components\bsp\boards\EZ430RF
    $PROJ_DIR$\..\..\..\..\..\Components\mrfi
    $PROJ_DIR$\..\..\..\..\..\Components\SimpliciTI\nwk
    $PROJ_DIR$\..\..\..\..\..\Components\SimpliciTI\Network applications


    Add this to C/C++ compiler -> Preprocessor tab and the defined symbols
    MRFI_CC2500


    Add this to C/C++ compiler -> Extra Options tab
    -f"$PROJ_DIR$\Configuration\End_Device\smpl_config.dat"
    -f"$PROJ_DIR$\Configuration\smpl_nwk_config.dat"

     

    Regards,
    Kjetil

  • Hi Kjetil,

    I've done all you described. The "  Fatal Error[Pe035]: #error directive: " ERROR: Unknown or missing radio selection." has been fixed.

    But " Fatal Error[Pe035]: #error directive: ERROR: MAX_NWK_PAYLOAD not defined" is still existing when running nwk_globals.c

  • Kjetil,

    Thanks for the response.  I did exactly as you described this past weekend and got it to link successfully.  But, for some reason, it still doesn't work.  I put the payload size back down to 10 and it still doesn't work, so I've been stepping through code to see why. 

    rgds, -s

  • I basically defined MAX_NWK_PAYLOAD to be the same value as MAX_APP_PAYLOAD in the smpl_nwk_config.dat file.

    -DMAX_APP_PAYLOAD=10

    -DMAX_NWK_PAYLOAD=10

    I'm not sure if this is correct, but it at least eliminated the error.  Maybe the value needs to be 10, I don't know.  There is no documentation describing this.

    -s

  • Hi SH,

    Don't you have the error :    " Fatal Error[Pe035]: #error directive: ERROR: MAX_NWK_PAYLOAD not defined"?

  • I did have that same error, but fixed as I described above (by defining it in the config file).  But, I don't know if it is correct.

    If you are able to get it to link and work on your system, can you reply back and let me/us know?  Are you using IAR?

    thx!  -s

  • I still have Warning[Pe223]: function "SMPL_Unlink" declared implicitly

  • Make sure your additional include directories are exactly as:

    $PROJ_DIR$\Components\bsp
    $PROJ_DIR$\Components\bsp\mcus
    $PROJ_DIR$\Components\bsp\drivers
    $PROJ_DIR$\Components\bsp\boards\EZ430RF
    $PROJ_DIR$\Components\mrfi
    $PROJ_DIR$\Components\SimpliciTI\nwk
    $PROJ_DIR$\Components\SimpliciTI\nwk_applications
    $PROJ_DIR$\Components\mrfi

    Note the change in name for nwk_applications (I think the demo SW has the name Network applications or something).

    rgds, -s

  • SH,

    Adding a line in the config file that defines MAX_NWK_PAYLOAD is the way to do it. Believe this define was introduced with the new version of SimpliciTI and the config files for the temp sensor has to include this. Below is how it is in the new release:


    /* Maximum size of Network application payload. Do not change unless
     * protocol changes are reflected in different maximum network
     * application payload size.
     */
    -DMAX_NWK_PAYLOAD=9

    mz8e08,

    To successfully use the SMPL_unlink, you will have to add a define that adds the extended API to the code. This is in the same smpl_nwk_config.dat as the above. SMPL_Unlink was also introduced with version 1.1.0.


    /* Remove 'x' corruption to enable Extended API */
    -DxEXTENDED_API

    If you need to look at all the defines used, have a look in the SimpliciTI installation folder:
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Projects\Examples\eZ430RF\AP_as_Data_Hub\IAR\Configuration

    Hope this helps.

    Kjetil

  • Kjetil,

    Thank you very much for the helpful information.  I was using configuration files from the example that comes with the EZ 2500 kit.  I see that there are several new defines in the current version of SimpliciTI.  I'll try this out and will provide an update.

    regards,

    SH

  • Kjetil,

    I was able to successfully rebuild the libraries using the SimpliciTI sources.  However, my boards are not able to communicate.  I've tried all sorts of things (made sure the heap/stack was setup correctly, etc..).  I am using the configurations provided.  I am not, however, using one of the example projects under Projects\Examples\eZ430RF that comes with the SimpliciTI sources since my version of IAR can't read them (I'm using the existing CC2500 demo project (was created back in 2007)).  I am also using an older (2007) version of the MSP430 compiler/tools from IAR. 

    My sniffer does not see any packets transmitted (sniffer can see packets transmitted with a network that was built using the CC2500 demo libraries).

    Any ideas or suggestions would be appreciated.

    Thanks, --sh

     

  • Hi SH,

    I have the same problem with you.

    I have successfully updated the library form 1.0.6 to 1.1.0.

    I download the Wireless Sensor Monitor Using the eZ430-RF2500 demo, and pass all the debugging and download it to eZ430-RF2500. But there is no communication between the ED and AP. It seems the SelfMeasureSem works well and temperture data of AP can be transmitted to PC for display.

    When I using the SimpliciTI 1.0.6, it works.

    Anybody can help?

    Thanks

  • Hey Kjetil, if possible, send me the files: Simpliciti_Main.c, smpl_config_AP.dat, smpl_config_ED.dat, smpl_config_RE.dat, smpl_nwk_config.dat.

    When I did the intaled the simplicit.exe, those files didn't apper..

    Thanks a lot.

    Bruno. (brunosergio@gmail.com)

  • Hi Bruno,

    Do not know all those files. The configuration files should be located in:
    C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Projects\Examples\eZ430RF\AP_as_Data_Hub\IAR\Configuration

    Or similar depending on the platform you have chosen.

    Do not know Simpliciti_Main.c  or the config_AP/config_ED i'm afraid

    Kjetil

  • Hello everyone :) I am working on my project using eZ430-rf2500 SimpliciTI protocol, and I've been trying to follow every single instructions that you all posted in the previous posts, but I get the 16 errors on

     

    Fatal Error[Pe035]: #error directive: ERROR: MAX_NWK_PAYLOAD not defined

     

    Thus, I changed the MAX_APP_PAYLOAD in config file with what KJETI suggested, which is by changing the MAX_NWK_PAYLOAD in config file to

    -DMAX_NWK_PAYLOAD=9

     

    but unfortunately, it still doesn't work. My purpose is to edit the codes, so it could send 48 bytes, instead of the default value which is 10. Can someone help me with this problem? Thanks in advanceeeee :):)

     

     

    Regards.

     

     

  • I am also doing the same thing regarding everything in this thread and having the same problem up to this point.

    I am recovering an old workspace that used to run SimpliciTI-1.0.6 and IAR Embedded Workbench 5.3.

    Today I was able to rebuild the libraries and apply the application code to the latest version of SimpliciTI and everything compiles and downloads fine but I get no response from the board. Even with something as simple as toggling LEDs.

    I think the next step would be to get the latest version of IAR. I was hesitant at first because the website seems to discourage "updating" and encourage "just buying a new license."

    I will keep this thread posted on any progress I make.

  • What should MAX_NWK_PAYLOAD be set to?  "Do not change unless  protocol changes are reflected in different maximum network application payload size" doesn't make sense to me.  My max app payload is 4 bytes, so what should the max nwk payload be?

  • I use a CC430 and MSP430 and both have MAX_NWK_PAYLOAD set to 9. I have never changed it, I am pretty sure this is the default. I also think this is just used for back-end stuff. 

    If you want to change the size of your packets that are used in SMPL_Send then you can adjust MAX_APP_PAYLOAD. I am pretty sure the FIFO buffers are 64 bytes in length. Packets have 11 bytes of header and then MAX_APP_PAYLOAD bytes of data. I have mine set to 35.

  • If you look at page 19 of this document :

     http://www.ti.com/lit/ml/swru130b/swru130b.pdf

    You can see that :

    app pyld: 0 <= n <= 52 byte/113 byte 
    (radio dependent)
  • Hi Kjetil, I'm just some random person using SimpliciTI, I just did what you said for the configuration file and enabled the extended API, but it turns out that I still cannot use the API like SMPL_Ping, do you have any idea why is that happening? Thanks.

    Joe

  • Never mind, problem solved, forgot to clean before build after changed the configuration file.