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.

CCS/TDA2PXEVM: Unable to send data packet through Ethernet to PC from TDA2PXEVM

Part Number: TDA2PXEVM
Other Parts Discussed in Thread: AWR1243

Tool/software: Code Composer Studio

Hello, 

With reference to answer suggested in https://e2e.ti.com/support/processors/f/791/p/733266/2764399#pi320966=7, I am also facing the same issue wherein I am not able to send data packet from TDA2px to my PC. I have a 2 sensor cascaded AWR1243P radar board and I am trying to integrate it with TDA2PX EVM through FPD-Link and Fusion Board. I modified the cascade_radarobjectdetect usecase sourcecode based on my application and I am able to boot the sensors, configures and start the radar sensors successfully. I verified that I am getting CSI-2 data packets into my TDA2PX using issCaptDrvCallback(). However when I connect Ethernet cable from ethernet0 in TDA2px EVM to my PC and run the MATLAB script, it gives me an error in line 393: openConnection(tgt_ip_addr, host_ip_addr,tcp_port_num, udp_port_num) of the MATLAB script. In the cfg.mk file, I have set the target side (TDA2Px) Ip address for eth0 as static ip '192.168.1.200' and my local PC side(host side) ip address as '192.168.1.201'. I am able to ping from command prompt successfully which means the ip address should be correct. But I am still not able to open the tcp/ip connection through ethernet.

I get the following errors when I type in the command prompt

C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\apps\tools\network_tools\bin>network_rx --host_ip 192.168.1.201 --target_ip 192.168.1.200 --files C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\apps\src\rtos\radar\src\usecases\cascade_objectdetect_display\output.bin

# Connecting to server 192.168.1.200:29172 ...

# ERROR: NETWORK: Server connect Failed (192.168.1.200:29172)!!!

# INFO: Closing connection to Server

The difference I found in my setting from the original post link is that it was suggested "Please make sure the network stack is running on IPU1_1." Does this mean that I need to make 'NDK_PROC_TO_USE=ipu1_1' instead of a15_0? Or is there any other way to ensure network stack is set as ipu1_1?

The print statistics data after the 2 sensor cascaded board starts sending data is attached below:

/cfs-file/__key/communityserver-discussions-components-files/791/cascade_5F00_radar.txt

I think the ISS Capture Output data rate is around 7 fps here. Is this fine?

When I run the  compile my TDA project with NDK_PROC_TO_USE=ipu1_1, I am getting few compilation errors which are mentioned below:

C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `recv':
C:/PROCESSOR_SDK_VISION_03_06_00_00/ti_components/networking/ndk_2_24_02_31/packages/ti/ndk/inc/socket.h:189: undefined reference to `NDK_recv'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `send':
C:/PROCESSOR_SDK_VISION_03_06_00_00/ti_components/networking/ndk_2_24_02_31/packages/ti/ndk/inc/socket.h:231: undefined reference to `NDK_send'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `socket':
C:/PROCESSOR_SDK_VISION_03_06_00_00/ti_components/networking/ndk_2_24_02_31/packages/ti/ndk/inc/socket.h:281: undefined reference to `NDK_socket'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `setsockopt':
C:/PROCESSOR_SDK_VISION_03_06_00_00/ti_components/networking/ndk_2_24_02_31/packages/ti/ndk/inc/socket.h:265: undefined reference to `NDK_setsockopt'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `bind':
C:/PROCESSOR_SDK_VISION_03_06_00_00/ti_components/networking/ndk_2_24_02_31/packages/ti/ndk/inc/socket.h:131: undefined reference to `NDK_bind'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `listen':
C:/PROCESSOR_SDK_VISION_03_06_00_00/ti_components/networking/ndk_2_24_02_31/packages/ti/ndk/inc/socket.h:181: undefined reference to `NDK_listen'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `Network_open':
C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\links_fw\src\rtos\utils_common\src/network_api.c:180: undefined reference to `fdClose'
C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\links_fw\src\rtos\utils_common\src/network_api.c:188: undefined reference to `fdClose'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `Network_close':
C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\links_fw\src\rtos\utils_common\src/network_api.c:209: undefined reference to `fdClose'
C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\links_fw\src\rtos\utils_common\src/network_api.c:217: undefined reference to `fdClose'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `Network_waitConnect':
C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\links_fw\src\rtos\utils_common\src/network_api.c:238: undefined reference to `fdPoll'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `accept':
C:/PROCESSOR_SDK_VISION_03_06_00_00/ti_components/networking/ndk_2_24_02_31/packages/ti/ndk/inc/socket.h:123: undefined reference to `NDK_accept'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `Network_sessionOpen':
C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\links_fw\src\rtos\utils_common\src/network_api.c:291: undefined reference to `fdOpenSession'
C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\links_fw\src\rtos\utils_common\src/network_api.c:291: undefined reference to `fdOpenSession'
C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/lib/tda2px-evm/a15_0/release/utils_common.aa15fg(network_api.oa15fg): In function `Network_sessionClose':
C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\links_fw\src\rtos\utils_common\src/network_api.c:309: undefined reference to `fdCloseSession'
C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\links_fw\src\rtos\utils_common\src/network_api.c:309: undefined reference to `fdCloseSession'
gmake[7]: *** [C:/PROCESSOR_SDK_VISION_03_06_00_00/vision_sdk/binaries/apps/tda2px_evm_bios_all/vision_sdk/bin/tda2px-evm/vision_sdk_a15_0_release.xa15fg] Error 1
gmake[6]: *** [a15_0] Error 2
gmake[5]: *** [apps_a15] Error 2
gmake[4]: *** [apps] Error 2
gmake[3]: *** [apps] Error 2
gmake[2]: *** [apps_exe] Error 2
gmake[1]: *** [apps] Error 2
gmake: *** [vision_sdk] Error 2

I do not have these errors when I set NDK_PROC_TO_USE=a15_0 in the cfg.mk file. What do you suggest to rectify the above errors if you want me to change NDK_PROC_TO_USE?

I look forward to your reply. Thank you!

Best Regards,

Nishant

  • Nishant,


    Are you building with TFDTP enabled? If yes, after running cascade_radar_objectdetect you need to run the network_rx --host_ip 192.168.1.201 --target_ip 192.168.1.200 --files C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\apps\src\rtos\radar\src\usecases\cascade_objectdetect_display\output.bin
    with --usetfdtp.

    The default uses the TFDTP protocol for usecase if TFDTP is enabled.

    For the build failures, are you doing a clean build when moving NDK_PROC_TO_USE?

    Thanks and Regards,
    Piyali
  • Hello Piyali,

    Thank you again for your answer! After doing a clean build, I was able to compile successfully when I use NDK_PROC_TO_USE. And you were right, I think it was building with TFDTP enabled due to some default settings. When I ran the command 'network_rx --host_ip 192.168.1.201 --target_ip 192.168.1.200 --files C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\apps\src\rtos\radar\src\usecases\cascade_objectdetect_display\output.bin
    with --usetfdtp, I was able to receive data in bin format successfully and I observed this data using Wireshark too.

    However, interestingly Wireshark was detecting it as TCP and I believe it is using TFDTP. However, when I run the Matlab script 'radar_cascade_demo('192.168.1.200','192.168.1.201','98-29-A6-44-D7-DC','TI',5,1);', it doesn't display any graphical output( just a blank screen).
    The output at the MATLAB command window is given below:

    Opened connection to TCP Command Server
    Opened connection to UDP server
    Sent RADAR_NW_LINK_TFDTP_INIT message on TCP socket

    Any idea how I could visually observe the data collected using Matlab?

    Best Regards,
    Nishant
  • Hi Piyali,

    Also, just to confirm- Is TFDTP same as UDP? How do you change the default setting to TCP/IP?

    I tried doing the following things in the cfg.mk file in tda2px_evm_bios configs to change to TCP, but in both cases I failed to observe any output using the matlab script:
    1. Setting NSP_TFDTP_INCLUDE to yes (Default setting is no) with NDK_PROC_TO_USE= ipu1_1
    Observation: After I compile it with these settings, I get stuck in the Teraterm terminal during the booting of TDA2px. The program gets stuck at this line
    'Jumping to MPU CPU0 App'

    2. I modified to this then NSP_TFDTP_INCLUDE=yes and NDK_PROC_TO_USE=a15_0
    Observation: In this setting, TDA2px is able to boot successfully and run the application. However, it fails to connect to the network socket and the errors are same as that mentioned in my original post for both Matlab and command to run application 'network_rx'. This means that for connecting the socket correctly, I need to set NDK_PROC_TO_USE as ipu1_1.

    Please let me know if you have any suggestions. Thank you!
    Best Regards,
    Nishant
  • The TFDTP uses TCP/IP internally for command server. hence you see the Wireshark recognising it as TCP.
    Couple of things to check for MATLAB:
    1. Usecase should be running before running MATLAB script.
    2. The MAC ID in the command should match.

    Thanks and Regards,
    Piyali
  • Nishant,

    I checked our defaults in vision_sdk\apps\configs\tda2px_evm_bios_radar\cfg.mk . This has been tested to work.

    #
    # Supported values: ipu1_0 ipu1_1 none
    #
    NDK_PROC_TO_USE=ipu1_1

    #Used to control TFDTP stack (supported values: yes no)
    NSP_TFDTP_INCLUDE=yes

    #Enable IPv6 Support
    NDK_ENABLE_IPV6=no

    Thanks and Regards
    Piyali
  • Hi Piyali,

    Thank you for your reply. The usecase is running before the MATLAB is run and I believe the MAC does match. I was using "tda2px_evm_bios_all" and I modified it to "tda2px_evm_bios_radar." However, even though the program is compiled successfully, when I run my cascade usecase and press "p" for print statistics, I see no value (no fps value) in each of the output buffers, which means I think the data is not being passed into TDA2Px. This problem was not present when I was using the same usecase with "tda2px_evm_bios_all." I think there are some settings that are missing in the tda2px_evm_bios_radar/cfg.mk file. I had added the following two lines in tda2px_bios_evm_radar for ISS data capture

    CAL_INCLUDE=yes
    ISS_INCLUDE=yes

    Is there any other setting to be included to enable data communication from 1243 to TDA2px? I ran the "network.exe" file using the commands given in earlier post and it shows successful network connection but no data was being displayed. I even run the Matlab script after this usecase to see if i can see any graphical output, however the result is the same. It is just a blank screen and I can see the following two lines on command prompt after running:

    Opened connection to TCP Command Server
    Opened connection to UDP server
    Sent RADAR_NW_LINK_TFDTP_INIT message on TCP socket

    Could you tell me if there is any additional step to be done or am I missing anything? By running the Matlab script, do you mean that I have to run "cascade_radar_demo.m" first and then run "radar_cascade_demo('192.168.1.200','192.168.1.201','xx-xx-xx-xx-xx-xx','TI',5,1);" in another script file?

    The tda2px_evm_bios_radar/cfg.mk file is attached below:

    /cfs-file/__key/communityserver-discussions-components-files/791/1376.cfg.txt

    I look forward to your reply.

    Best Regards,

    Nishant

  • Hi Piyali,

    As mentioned earlier, if I run the usecase with "tda2px_evm_bios_all" seeting,  with 'NSP_TFDTP_INCLUDE=yes', 'NDK_PROC_TO_USE=ipu1_1' and rest all configurations with default value, the SDK gets compiled successfully. However, when I connect to Teraterm, the program gets stuck during the booting of TDA2px itself. I have attached the Teraterm booting sequence below:

    The program doesn't proceed after that. The cfg.mk file with tda2px_evm_bios_all is attached below for reference:

    /cfs-file/__key/communityserver-discussions-components-files/791/cfg_5F00_tda2px_5F00_all.txt

    If I change the 'NDK_PROC_TO_USE=a15_0' and recompile the SDK, the program does proceed after the line in the screenshot shown above and the usecase runs successfully, however the it fails to connect to the server port. So I'm confused with the settings to maintain for MATLAB script to run successfully after the network server is connected. Please let me know if you have any suggestions to proceed ahead.

    Thank you!

    Best Regards,

    Nishant

  • Nishanth,

    Before you try to run the cascade data processing, can you please check if the capture is happening in the first place? Are you recieving any data from the AWR1243?

    Thanks and Regards,
    Piyali
  • Hi Piyali,

    Yes, I verified that I am receiving data from AWR1243 using issCaptDrvCallback() when I compile my SDK with NDK_PROC_TO_USE as ipu1_1, NSP_TFDTP_INCLUDE=no and 'tda2px_evm_bios_all' config. I also received an output in bin file when I run 'network_rx --host_ip 192.168.1.201 --target_ip 192.168.1.200 --files C:\PROCESSOR_SDK_VISION_03_06_00_00\vision_sdk\apps\src\rtos\radar\src\usecases\cascade_objectdetect_display\output.bin with --usetfdtp. I was not able to capture data from AWR1243 when I was using tda2px_evm_bios_radar config.

    One of the areas that I suspect might be a reason for MATLAB to not display is due tp mismatch between the FFT range and doppler bin size specified in the MATLAB script and RadarDspProcess_if.h file. Do I have to change them to get an output? What is the default range and doppler FFT size computation performed in the SDK? 

    Thank you!

    Best Regards,

    Nishant

  • Hi Piyali,

    I just checked the default FFT size in the SDK. numRangebins was 256 and numDopplerbins was 64. I tried matching this with the Matlab script, but still I didn't observe any graphical o/p, which makes my earlier assumption wrong regarding why it is not displaying. Please let me know if you find any other way to display it.

    Also, could you tell me how to increase the Range and Doppler bin size? I found that changing CHAINS_CASCADE_RADAR_PROFILE1_RADAR_WIDTH (in chains_common_cascade_ar12xx_config_mimo.c) changes the numAdcSamples and this affects the numRangeBin. However, I am not able to increase it beyond 256 as it gives me radar configuration error. Also, CHAINS_CASCADE_RADAR_RADAR_HEIGHT changes numChirpLoops and this changes the numDopplerbins. I was able to increase it to 128, however, if I increase it beyond 128, it gives me fatal error "frame periodicity too low." If I have to test the computation power of TDA2px and get numRangebin to 512 and numDopplerbin to 256, what should I do it achieve it?

    I look forward to your reply. Thanks!

    Best Regards,

    Nishant

  • Nishant,

    In the MATLAB script, can you please put a break point at bufferReceived = tfdtp_recvUDPBuffer(); and see if you are able to recieve the data.
    BTW, currently you are in which combination of network core and the TFDTP or TCP/IP?

    For the changing of Radar Width and Height you would need to make sure you are adhereing to the timing requirements of the AWR1243.
    You can look at the ti_components\radar\mmwave_dfp_\docs\AWR1xxx_Radar_Interface_Control.pdf and look at the sections on the profile and frame configurations to understand how changing one parameter needs changes to the other timing parameters.

    Thanks and Regards,
    Piyali
  • Piyali,

    I am using TCP/IP and ipu1_1 core. The 'NSP_TFDTP_INCLUDE' is set as 'no' in cfg.mk file. I put a break point at bufferReceived=tfdtp_recvUDBBuffer and I am not able to receive the data. I used the step function in MATLAB to debug and found out that the program was getting stuck in that line as bufferReceived is 0. Is there any way to change bufferReceived to TCP buffer format?

    Thank you for your answer on profile and frame configurations!

    Best Regards,

    Nishant

  • Piyali,

    In ProcessorSDKRadar_UserGuide.pdf, pg 29, first line mentions that we can visualize the output on an RGB viewer. Is it possible to visualize the output from the Bin file that is generated from the network in an RGB viewer? If yes, which RGB viewer tool do you recommend? I guess the only problem with that approach is that I wouldn't be able to view the data real-time and only view it after it has been saved.

    Best Regards,
    Nishant
  • Nishant,

    You need to enable TFDTP in the build for the MATLAB script to work. Can you please try with this enabled?

    Thanks and Regards,
    Piyali
  • RGB viewer is useful if you are drawing the detected objects on the plot using radardrawfftheatmap or radardraw. If you do not have these in your usecase chain you would not be able to visualize the data in the RGB viewer.

    Thanks and Regards,
    Piyali
  • Hi Piyali,

    Thanks for confirming this. But I did try with TFDTP enabled by putting "tda2px_evm_bios_all" setting,  with 'NSP_TFDTP_INCLUDE=yes', 'NDK_PROC_TO_USE=ipu1_1', but I was able not proceed after the bootup of TDA2px. I have shared the screenshot in my previous post in the same thread. If I try with "tda2px_evm_bios_radar" config and rest same as above setting, I am able to proceed but I am not receiving any data from the radar. Hence, I do not know how to proceed ahead. Is there any configuration missing in TDA2Px_evm_bios_all cfg.mk file due to which it is not able to boot ahead with TFDTP enabled?

    I look forward to your reply. Thank you!

    Best Regards,

    Nishant

  • Hi Piyali,

    Thanks for the answer. So which tool do you recommend as RGB viewer if I include radardrawfftheatmap?

    Best Regards,
    Nishant
  • Nishant,

    we have been able to reproduce the boot issue locally. The team would look at finding and fixing the issue.

    Thanks and Regards,
    Piyali
  • Google search would give you many tools which can be used to view RGB656 images. www.google.com/search

    Thanks and Regards,
    Piyali
  • Nishant,

    Are you in debug or release mode?

    Thanks and Regards,
    Piyali
  • Hi Piyali,

    Thank you for helping me fix this issue. I have been booting my TDA2PX EVM through SD card. How do I find if it is in debug or release mode?

    Best Regards,
    Nishant
  • Nishant,

    What is the build command you are using? That would help us undersand if this release mode or debug mode.
    The latest from the team is that they have tried release mode and they find that out of box the TDA2px boot is working with TFDTP enabled and the networking on IPU1_1.

    Thanks and Regards,
    Piyali
  • Hi Piyali,

    Thanks for the quick response. I have been using "gmake -s -j depend" and "gmake -s -j" commands to build the files and "gmake -s sbl" and gmake -s appimage" to load into the SD card. Could you tell me if it means debug or release mode?

    I used IPU1_1 core as well and enabled TFDTP in the cfg.mk file. The compilation is successful, however it gets stuck during bootup (which is the screenshot that I shared earlier).

    Please let me know if you want me to check any other settings.
    Best Regards,
    Nishant
  • Hi Piyali,

    Just wanted to share one more thing if you find that is making any difference. I have been compiling it in "PROCESSOR_SDK_VISION_03_06_00_00."  Have you tested it at your end with "PROCESSOR_SDK_RADAR_03_06_00_00"? If yes, is there any change that I can make in Processor_sd_vision to test with TFDTP enabled?

    Best Regards,

    Nishant

  • Nishant,

    Processor SDK Vision contains the same files as the processor SDK Radar for the Radar processing. You can use this without updates.
    We have tried the release version at our end. You are using release as per you build commands and we are not seeing the same issue as what you are observing with respect to the boot.

    Thanks and Regards,
    Piyali
  • Hi Piyali,

    Thanks for confirming this! I used the PROCESSOR_SDK_RADAR for testing tfdtp and it's working for me. Not sure why it didn't work with Processor_vision_sdk. Thanks for your help!

    Best Regards,

    Nishant