IWR1843BOOST: TI AWR 1843 Radar - Sync Multiple sensors

Part Number: IWR1843BOOST

Hi,

I am trying to sync two AWR 1843 radars, following https://software-dl.ti.com/jacinto7/esd/robotics-sdk/08_05_00/docs/source/docs/multi_sensor_time_synchronization.html.

And i am doing the SW approach. but it given the following error : 

after i looked at the CMakeLists i found that, mmWaveSync was not added to the it as shown :

But when i added it to the CMakeLists, it give and include error :

ti_mmwave_rospkg/include/mmWaveSync.h:18:10: fatal error: GPIO.h: No such file or directory
18 | #include <GPIO.h>

When can i found, missing header file so i test the sw sync option. 

Second question is : is there any other options to sync multiple radars, rather than what is given in the above page ? 

Thanks, Dev Team @aitonomi !

  • Hi

    Thanks for your query. Please allow us a couple of days to respond

    Regards

  • Hello,

    Please add the following to your CMakeLists, and dont put mmWaveSync in the mmwave library.

    add_executable(mmWaveSync src/mmWaveSync.cpp)
    target_link_libraries(mmWaveSync ${catkin_LIBRARIES} mmwave ti_gpio)
    add_dependencies(mmWaveSync ${catkin_EXPORTED_TARGETS} mmwave)

    As far as different methods of running multiple and syncing multiple devices, you could run two instances of the ros driver at once with two different ros launches. Then use something like rosbag record or have rviz plot both topics to emulate the same thing.

    Best Regards,

    Pedrhom

  • Hello,

    you answer regarding the CMakeLists, make the build completed and i can start the 

    roslaunch ti_mmwave_rospkg sw_sync_quad_sensor.launch

    but the process has died, why ?? as : 

    [ INFO] [1713517637.316371391]: DataUARTHandler Read Thread: Port is open

    [ti_mmwave_sync/mmWaveSync-1] process has died [pid 245944, exit code -6, cmd /home/~/test_ti/src/mmwave_ti_ros/ros1_driver/devel/lib/ti_mmwave_rospkg/mmWaveSync __name:=mmWaveSync __log:=/home/~/.ros/log/4eeb6076-fe19-11ee-9e7e-051c1c882822/ti_mmwave_sync-mmWaveSync-1.log].
    log file: /home/~/.ros/log/4eeb6076-fe19-11ee-9e7e-051c1c882822/ti_mmwave_sync-mmWaveSync-1*.log

    but it also gives an exception 

    Second question is: i have two AWR 1843, how to use SYNc_IN/OUT to sync both sensors. 

    Can you tell me how to use J6. pin 18 SYNC out and J6. pin 7 SYNC_IN, in such a away to sync both radars, i guess it is possible according to the data sheet as : 

    But i would like to know how would i do so, and if I have to program SYNC_IN and SYNC_OUT pins to tell the kit to use external synchronization or what. 

    BR, Dev Team @aitonomi !

  • Hello,

    Are you configuring the sw_sync_quad_sensor.launch? Open it in a text editor and adjust the fields for your environment. Such as adjusting the num_sensors and serial_ports values.

    The link you provided covers how to use the SYNC_IN pins, and there are several forum posts like the one below that gives more information.

    https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1130150/iwr6843aopevm-daisy-chaining-multiple-radars-through-sync_in-sync_out?ReplyFilter=Answers&ReplySortBy=Answers&ReplySortOrder=Descending

    Best Regards,

    Pedrhom

  • Hi, 

    SW Sync not working 

    I have, i have tried your suggestion, by updating sw_sync_quad_sensor.launch with the usb serial port used + number of devices and process is died as shown : 

    roslaunch ti_mmwave_rospkg sw_sync_quad_sensor.launch

    with the following adjust for the launch file 

    and for the usb serial ports are 

    But we still got the err as shown: process has died

    Also, you previously suggested to run two nodes give, has a bout 50 m-sec offset which is quit high as : 

    I have run : 

    roslaunch ti_mmwave_rospkg 1843_multi_2d_1.launch

    and 

    roslaunch ti_mmwave_rospkg 1843_multi_2d_0.launch

    and it results in the following time-diff between both time stamps:

    How to HW sync using J6.7 and J6.18.

    thanks for the suggestion, to look at the others questions, i found (e2e.ti.com/.../iwr6843aopevm-giving-signal-for-time-synchronization) which can be used, but i do not know, when i should update the given code in that doc and which tool i should use to do that, plus what mode i should use, all of these are ambiguous to me, and i do not want to damage my EVM.  

    General question, How to program J5&6 

    How can i update J6 and J5 pins, so i can used them based on specific condition, like when the temp of the sensor increased i turn on LED from GPIO 1, or 2 or 3. 

    BR, Dev Team @aitonomi ! 

  • Hello,

    When developing with TI modules, we use Code Composer Studio to edit, debug, and create programs and demos for the products. When you import the Out of Box demo project, which has the source files which when compiled creates the Out of Box demo .bin that one flashes to their EVM, you will see mss_main.c which is where Pin definitions are done. This is also where you would write code that does certain tasks like set a GPIO pin to high once the temperature, which can be read via an API, reaches a certain point.

    As far as the crashing in mmWaveSync.c, it is hard to help without any specific error statement or line within mmWaveSync.c where it's failing. I recommend debugging it via print statements, or run the ROS node with a debugger active.

    Best Regards,

    Pedrhom

  • Hi, 

    • So, based on you answer, i have to update mss_main.c with 

    /* Setup the PINMUX to bring out the FRAME START on PADAY */ Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PINN8_PADAY, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL); Pinmux_Set_FuncSel(SOC_XWR16XX_PINN8_PADAY, 0x7); // FRAME-START TO PAD-AY This code can be run in MSS_Init, after the other Pin mux changes.

    to configure, one radar as master and a second one as slave?

    • I did not got what do you mean, by it is not clear error, I already tried out to debug using
    ROS_INFO() at the entry point, @ mmWaveSync.cpp
    int main(int argc, char **argv)
    {
    ROS_INFO("debug - 1 - ************************************************************");
    But it fails before it execute mmwavesync.main().
    So, i would assume it fails due to, sync_single_sensor.launch. 
    BR, Dev Team @aitonomi !
  • Hello,

    Your first assumption is correct.

    Second, I am asking if you are able to isolate where the "Could not determine SOC model get_data" is failing as shown in the screenshot prior.

    Best Regards,

    Pedrhom

  • It works!

    Thanks dev team @ aitonomi