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.

IWR6843LEVM: How do I get ADC data in real time when I using IWR6843LEVM and DCA1000EVM instead of using the mmWave Studio tool to get only the stored bin file?

Part Number: IWR6843LEVM
Other Parts Discussed in Thread: DCA1000EVM, , IWR6843

Tool/software:

Environment: IWR6843LEVM + DCA1000EVM

Now I can get the adc_data.bin file by using the mmWave Studio (ver: 2.1.1.0) tool, However, based on R&D needs, I need to use python to write a tool to parse ADC data online, so I need to obtain ADC data in real time,

I have study the 'DCA1000EVM Data Capture Card User's Guide (Rev. A).pdf', Now it is clear to me that the PC and DCA transmit ADC data through UDP, and the IP address, configuration, and data port number of the

DCA1000 are already known, but there are still a few questions to ask:

1. How to load the BSS FW and the MSS FW bin files to DCA1000? Follow the use of the mmWave Studio tool, we need load it every time.

2. How do I deliver configurations to a DCA1000 or IWR6843LEVM?

  • Hello,

    If you are using mmWaveStudio (Guide: https://dev.ti.com/tirex/explore/node?a=1AslXXD__2.10.00.04&node=A__AGTrhNYW8jE6cMxbovlfaA__radar_toolbox__1AslXXD__2.10.00.04&placeholder=true) and loading the BSS and MSS FW, you will have to load it every time. If you use DCA1000 Data Capture tool which uses Out of Box demo as the base you only need to flash it once. We recommend people to use the DCA1000 Data Capture Tool (Guide: https://dev.ti.com/tirex/explore/node?a=1AslXXD__2.10.00.04&node=A__ACcj5qsn5G-kyhEttWYAjg__radar_toolbox__1AslXXD__2.10.00.04&placeholder=true) unless there is a niche need for something only mmWaveStudio supports.

  • Hi,Pedrhom

    Thank you very much for your support!

    I have tried to use the tool and collected the adc data using the default configuration of the radar, when I need to define multiple profileCfg

    configurations, I find that there is no adc data output

    xWR6843_presenceDetection.cfg

    profileCfg 0 60.00 205 11 41 0 0 97.00 1 64 2200 0 0 36

    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 2
    chirpCfg 2 2 0 0 0 0 0 4
    frameCfg 0 2 220 0 200 1 0

    can get the adc data !!!

    but when set:

    profileCfg 0 60.00 205 11 41 0 0 97.00 1 64 2200 0 0 36

    profileCfg 1 60.00 205 11 41 0 0 97.00 1 64 2200 0 0 36

    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 2
    chirpCfg 2 2 1 0 0 0 0 4

    frameCfg 0 2 220 0 200 1 0

    can not get adc data, why? can you help me? the fw verion I use for IWR6843 is radar_toolbox_2_10_00_04\tools\Adc_Data_Capture_Tool_DCA1000_CLI\prebuilt_binaries\xwr68xx_mmw_demo.bin

    xwr68xx_mmw_demo.bin does not support multiple profileCfg configuration delivery?

  • and I want to ask another question, 

    When I don't want to save the ADC data as a bin file, can I do without using DCA1000EVM_CLI_Control.exe and DCA1000EVM_CLI_Record.exe tools? I want to send configurations and commands directly through UDP (port: 4096) and get ADC data in real time via UDP (4098), is that okay? After testing, yes, but will there be any other problems?

    command_dict = {
    'RESET_AR_DEV_CMD': bytearray.fromhex('5aa502000000aaee'),
    'CONFIG_FPGA_GEN_CMD': bytearray.fromhex('5aa50300060001020102031eaaee'),
    'CONFIG_PACKET_DATA_CMD': bytearray.fromhex('5aa50b000600be05350c0000aaee'),
    'SYSTEM_CONNECT_CMD': bytearray.fromhex('5aa509000000aaee'),
    'RECORD_START_CMD': bytearray.fromhex('5aa505000000aaee'),
    'RECORD_STOP_CMD': bytearray.fromhex('5aa506000000aaee')
    }

    the test code using python is as below,

    DCA1000_IP = '192.168.33.180'
    command_port = 4096
    data_port = 4098
    radar_config = 'config/xWR6843_presenceDetection.cfg'
    command_dict = {
    'RESET_AR_DEV_CMD': bytearray.fromhex('5aa502000000aaee'),
    'CONFIG_FPGA_GEN_CMD': bytearray.fromhex('5aa50300060001020102031eaaee'),
    'CONFIG_PACKET_DATA_CMD': bytearray.fromhex('5aa50b000600be05350c0000aaee'),
    'SYSTEM_CONNECT_CMD': bytearray.fromhex('5aa509000000aaee'),
    'RECORD_START_CMD': bytearray.fromhex('5aa505000000aaee'),
    'RECORD_STOP_CMD': bytearray.fromhex('5aa506000000aaee')
    }
    def send_DCA_command():

    with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock:
    sock.bind(('', 4096))
    sock.settimeout(5)
    sock.sendto(command_dict['RESET_AR_DEV_CMD'], (DCA1000_IP, command_port))
    time.sleep(3)
    sock.sendto(command_dict['CONFIG_FPGA_GEN_CMD'], (DCA1000_IP, command_port))
    time.sleep(0.5)
    sock.sendto(command_dict['CONFIG_PACKET_DATA_CMD'], (DCA1000_IP, command_port))
    time.sleep(0.5)
    sock.sendto(command_dict['SYSTEM_CONNECT_CMD'], (DCA1000_IP, command_port))
    time.sleep(0.5)
    sock.sendto(command_dict['RECORD_START_CMD'], (DCA1000_IP, command_port))
    time.sleep(0.5)
    send_radar_config() # send radar config to IWR6843 with COM port

    def stop_record():
    with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock:
    sock.bind(('', 4096))
    sock.settimeout(5)
    sock.sendto(command_dict['RECORD_STOP_CMD'], (DCA1000_IP, command_port))

    get adc data:

    # with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock:
    # sock.bind(('', data_port))
    # sock.settimeout(5)
    # while True:
    # response, server = sock.recvfrom(2048) # 1024字节的缓冲区大小
    # print(f"Response received from {server}: {response.hex()}")
  • Hello, 

    Sorry for the delay. Pedrhom is currently out of office. He will respond when he returns next week. Thank you for your patience. 

    Best Regards,

    Josh

  • Hello,

    Thanks for your reply, is there any new progress?

    Best Regards

    Dave Wang