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.

LAUNCHXL-CC1352P: How to test BLE 1M/2M Phy Max Throughput with RF Studio? Syscfg vs smartrfsettings.c/h

Other Parts Discussed in Thread: CC1352P, CCSTUDIO

Hello,

I have a project that requires a throughput floor of 1 Mbps. Recently decided to purchase (2) of the CC1352P development boards. My plan was to test the TI BLE5 stack and chipset with help facilitated from TI's SmartRF Studio. I am interested in examining throughput and PER as function of RSSI for the various BLE5 PHY modes. Unfortunately I discovered two software problems that are inhibiting testing with your products.

1. SmartRF Studio sets a limit on MTU/Payload dummy data that can be sent with each exchange to ~37 bytes. This is 1/8th of maximum payload size defined by BLE5 (~ 250 bytes IIRC). This severely limits the throughput. Even when reducing the period between packet transmissions to 1 ms I can only achieve ~ 600-700 kbps in 1M PHY mode. In the post related to this, TI personnel on this forum recommended changes to the rfPacketTx driver and configuration files found in the SDK that would allow BLE5 stack and higher payload. At time of writing I am using SDK 3.30. The drivers in this SDK utilize a system configuration file that generates the necessary settings files, it does not use the smartrf_settings.c/h files from previous SDKs AFAIK - so the solution in the related post does not work in SDK 3.30. 

2. Additionally, it appears as if the SmartRF Studio application itself is limited in the size of packet payload it can process. With a 37 byte payload, reducing the transmit interval wait to 1 ms occasionally produced a buffer overflow in the application that caused a failure to continue RX. It appears as if this is a design issue with the architecture of the application. Any thoughts on this? Wondering - even if I do get the rfPacketTx to do higher payloads, I don't think I will be able to receive with the SmartRF Studio application due to the overflow issue. Unfortunate to think I would have to manipulate rfPacketRx code also. 

Maybe I am missing something but I was under the impression when I purchased this product that the SmartRF ecosystem would allow me to quickly evaluate the BLE performance of the chipset. As an RF engineer looking into quickly determining if this chipset would be right for my application, I am frustrated by the fact that I may now need to go in and start altering driver code just to test the chipset - especially when that is what the SmartRF application is marketed as being for!

Do any other forum members/TI staff have a solution for these issues? Perhaps I am just not seeing it in the forums. Thanks for the help!

  • Hi,

    We will look into it and get back to you ASAP. Please bear with us.

    Thanks,

    PM

  • Thanks for your feedback.

    1. There seems to be a bug in SmartRF Studio. You are right, the limit should not be 37 bytes for BLE5. Need to check this further.

    2. Using SmartRF Studio for testing of max throughput is not optimal. It is indeed a design issue with the architecture. The problem is on the receiver side. It has a certain buffer size to store the packets and it depend on the host side being fast enough to empty the buffer. If it is not fast enough, you will get the buffer overflow. For testing of max throughput it would probably be better to just check the CRC and count the received packets over a given interval. This could be a future improvement of SmartRF Studio.

    I'm sorry for the inconvenience and I can understand your frustration.

    Regards,

    Øyvind

  • Hi,

    As Øyvind says, SmartRF Studio is not designed to test max throughput and will in fact only let you send advertisement packets. 

    We do however have a software example you can use to test BLE throughput for CC26x2 LaunchPad. You can find it on github:

  • Thanks Marie. However, on the Github page you linked, it says the throughput example code can be found in SDK release 3.20.00.67. I am unable to download this - as TI only offers SDK 3.20.00.68 for download. I do not see the throughput demo for BLE5 in the 3.20.00.68 SDK. Perhaps I am not looking in the correct place? I searched the whole SDK for "throughput"; search returned null. 

    I do see some code the BLE5 throughput demo in the github repo for the 26x2R1. I'll give this a try (using a 1352P2). 

    Thanks for your time. 

    Brandon

  • Hi, 

    As far as I can see, the GitHub page doesn't specify that there are any throughout examples in the SDK. It only says that the examples and demos are for the 3.20.00.67 SDK which essentially means that they are based on the examples from that SDK. It shouldn't be a problem using these examples with the *_68 SDK. 

    As Marie mentioned in her previous post, there are only examples for the CC26x2 Launchpad in GitHub.

    Thanks for trying out the demo code on the CC1352P2 Launchpad. Have you made any progress? 

    Thanks,
    Elin

  • Hi Elin,

    Just got around to looking at this more yesterday.

    So far I have cloned the 3.20 branch referenced in the GitHub. I then created a new workspace in CCS 9.2 and imported the CCS project for throughput_central from the clone repo. I receive the following warnings after import:

    Description Resource Path Location Type
    Invalid project path: Include path not found (C:\ti\simplelink_cc13x2_26x2_sdk_3_40_00_02\source\ti\ble5stack\services\src\nv). throughput_central_app_CC26X2R1_LAUNCHXL_tirtos_ccs pathentry Path Entry Problem

    Description Resource Path Location Type
    Invalid project path: Include path not found (C:\ti\simplelink_cc13x2_26x2_sdk_3_40_00_02\source\ti\ble5stack\services\src\nv\cc26xx). throughput_central_app_CC26X2R1_LAUNCHXL_tirtos_ccs pathentry Path Entry Problem

    Attempting to build without correcting this is unsuccessful. Any idea on how to correct? Maybe I need to roll back to a previous release of CCS? I'm not sure why the 3.40 SDK is referenced if I started from a new workspace. 

    Thanks everyone!

    Brandon

  • Hi Brandon, 

    Upgrading the CCS version to 9.3 should solve this issue, you can download the newest version here: http://software-dl.ti.com/ccs/esd/documents/ccs_downloads.html#code-composer-studio-version-9-downloads

    Apologies for the inconvenience.

    Thanks, 
    Elin

  • Hi Elin,

    Thanks for the advice. I will submit a request to get this installed on my machine. CCS 9.3 installation getting hung up by my anti-virus.

    I'll update you once I have more information.

    Thanks,

    Brandon

  • Hello,

    I have been attempting to install CCS 9.3 but keep getting an installation error. Had company IT drop in and make sure that my Anti-virus is not restricting installation. Issue seems to lie with CCS software. 

    Unable to try proposed solution since I am unable to get CCS 9.3 installed. I have tried both the on demand and full file installer. I may need to make another thread to get this figured out before I can try the throughput demos as suggested. Just wanted to update everyone -- still trying to check out this solution. 

    Thanks,

    Brandon

  • Worked around the CCS installation error by installing CCS on a development laptop. CCS 9.3 installed. Also installed the simplelink_cc13x2_26x2_sdk_3_40_00_02 SDK. Then copied the github repo over and attempted to build "throughput_central" application. 

    I received many errors. Any ideas? Looks again to be an issue with configuration files not being correct or are absent. 

    Thanks!

  • Hi Brandon,

    I have notified a CCS expert of this thread, stay tuned for their response regarding the CCS installation issue. 

    Did you start with an example from the SDK and built it before adding the code from the throughput demo? 

    Thanks, 
    Elin

  • Hi Brandon

    grpv74 said:
    I have been attempting to install CCS 9.3 but keep getting an installation error.

    Looks like an issue with the TI Emulator pack installation. Can you provide all the installation logs and zip and attach to this thread?

    Thanks

    ki

  • Hi Elin,

    I was under the impression that I could import the ble_example throughput project into CCS and then attempt to build immediately. I wanted to test the build as-is directly downloaded from github repo before I made changes (to confirm everything is in working order). I thought the ble_example code was ready to go for the CC26xx module.

    It sounds like you are saying I need to build an example from the SDK  as a new project and then move code from the ble_example repo into that project to get the functionality I am looking for. Is this correct? Thanks for the help so far!

    Brandon

  • Ki,

    Thanks for reaching out. I have confirmed I do not have the _JAVA_OPTIONS system variable set. 

    Logs are zipped and attached. https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/538/install_5F00_logs.7z

  • grpv74 said:
    Logs are zipped and attached. install_logs.7z

    This log indicates that the installation was successful. Is this log from the other machine where the installation was successful?

  • Ki,

    That was the log from the machine that failed install. Not sure why it shows good install. The application is not present on my machine. 

    Attached are two screenshots of errors during the installation process. After seeing these errors, installation finishes, but no application shortcut is created. 

  • Is there a ccstudio.exe in C:\ti\ccs930\ccs\eclipse?

    If so, can you try running it? Does CCS startup successfully? Can you start the debugger for your device and connect to it?

  • There is nothing in the CCS directory except for the install logs.

  • Hi Brandon, 

    Yes, you are correct, the demo is made to work for the CC26x2 LaunchPad straight from the repo. I misunderstood your previous post and thought you had started porting the project to the CC1352P LaunchPad.

    It looks like the project is supposed to build without any modifications, but I just tried building the project and I'm seeing the same errors as you do. I will look into this tomorrow and get back to you as soon as I can. Thanks for making me aware of this issue. 

    Thanks, 
    Elin

  • Hi Brandon, 

    I just saw that my project was trying to find the files in the newest version of the SDK instead of v3.20 which caused the error. By selecting the correct SDK (v3.20) in Properties -> General -> Products -> SimpleLink CC13x2 CC26x2 SDK you should be able to build the project successfully.

    Thanks,
    Elin

  • grpv74 said:
    There is nothing in the CCS directory except for the install logs.

    Sorry, my mistake. I was looking at another install log and got them mixed up.

    I see the errors in your log.

    Can you provide the below file mentioned in one of the logs?

    There has been an error. A debug file has been created at:

    C:/Users/grpv74/AppData/Local/Temp/bitrock_debug_1440.xml

    Please attach it to any bug report.
    The application will exit now.

  • Hello,

    No problem, log file attached. Thanks for the help! bitrock_debug_1440.xml

  • Thank you. I have sent the logs to our installer expert for analysis. I will keep you posted of any updates I get.

    ki

  • Elin,

    Thank you. I was able to build the project successfully now. However, I build and load onto 1352P device and it does not boot to menu. I think some porting will need to be done in order to get it to work. I thought it may work on the CC1352P since the target device in the code is listed as CC13x2_26x2. Oh well. Any advice on porting from 26x2 to 13x2?

    Thanks.

    Brandon

  • Hi Brandon, 

    Unfortunately, there is no migration guide for this specific case. But I would recommend you to start with an example for the CC1352P device from the SDK to make sure everything is configured correctly for the CC1352P device. Then you can add the throughput code to your example. The easiest way see which code you have to post is to diff the standard simple_* project with the throughput_* project.

    I hope this helps. 

    Thanks,
    Elin

  • Elin,

    Okay, thank you for your help! I will update if I make some good progress or have more questions. 

    Thanks everyone.