How to capture samples streamed through USB?

Hi,
I am a new to Jetson Tk1. I have a radar front end sending the sampled ADC output as a stream through the USB. I would like to capture this in Jetson Tk1 for further processing using cuda in jeson. How can I do that?
Thanks!
Surya

You description is too vague to give any meaningful suggestions. Basically you write an application that opens the USB port, reads the data, passes it to any CUDA algorithms you need, and so on.

What kind of USB device are you using? How does a the host (Jetson, PC, etc.) see it? Is it a serial device, a camera, ethernet?

Are you looking for suggestions about how to use USB or how to write CUDA applications or both?

Hi,
I am using an infineon radar dev kit that connects to the USB on the jetson Tk1. The host (Jetson Tk1) would see it as a serial USB device. One possibility like you said is to use libusb to open the USB port, reads data and passes to CUDA algorithms. It is not a camera. It is a radar kit that can stream data out to the USB interface. I am looking for suggestions in first doing a capture of the data. Then I can do the CUDA application to do further processing.
Let me know if any other information would help in answering my question.
Thanks!
Surya

The kulve answer below is correct. Here’s a paper how some people do SAR that was presented at GTC last week:

Since it is a USB serial device, you don’t need to actually do anything with USB. Just open the serial port (probably /dev/ttyUSB0 assuming you don’t have other USB serial devices connected) and follow any tutorial about reading from a serial device.

There are a million of HOWTOs around, here’s one:
[url]The Linux Documentation Project

And here’s how I’ve done it (a bit hackish Qt approach and not optimised for large amounts of data):
[url]pleco/ControlBoard.cpp at master · kulve/pleco · GitHub

I have flashed uboot from one Jetson-TK1 to another Jetson-TK1 by “tegrarcm”, and “tegrarcm” is using libusb API(sirabtech mentioned in another thread) to implement a user space USB driver. Below are the information.

libusb version: libusb-1.0
tegrarcm: GitHub - NVIDIA/tegrarcm: Tegra ReCovery Mode tool; communicates with Tegra's boot ROM to download code over USB
usb driver in tegrarcm: tegrarcm/usb.c at master · NVIDIA/tegrarcm · GitHub
flashing log:
ubuntu@tegra-ubuntu:~/cbootimage-configs/tegra124/nvidia/jetson-tk1$ !243
sudo tegrarcm --bct=./PM375_Hynix_2GB_H5TC4G63AFR_RDA_924MHz.bct --bootloader=./u-boot.bin --loadaddr=0x80108000
bct file: ./PM375_Hynix_2GB_H5TC4G63AFR_RDA_924MHz.bct
booloader file: ./u-boot.bin
load addr 0x80108000
entry addr 0x80108000
device id: 0x7140
uid: 0x34001001740970420800000009ff02c0
RCM version: 64.1
downloading miniloader to target at address 0x4000e000 (136920 bytes)…
miniloader downloaded successfully
Chip UID: 0x00000001740970420800000009ff02c0
Chip ID: 0x40
Chip ID Major Version: 0x1
Chip ID Minor Version: 0x1
Chip SKU: 0x81 (t124)
Boot ROM Version: 0x1
Boot Device: 0x2 (EMMC)
Operating Mode: 0x3 (developer mode)
Device Config Strap: 0x0
Device Config Fuse: 0x0
SDRAM Config Strap: 0x3
sending file: ./PM375_Hynix_2GB_H5TC4G63AFR_RDA_924MHz.bct

  • 8192/8192 bytes sent
    ./PM375_Hynix_2GB_H5TC4G63AFR_RDA_924MHz.bct sent successfully
    sending file: ./u-boot.bin
    | 439872/439872 bytes sent
    ./u-boot.bin sent successfully

Try an additional soft for capturing USB data, like this one - USB Data Capture - USB Capture - Capture USB traffic
You’ll see all USB data packets - incoming and outgoing between a radar connected to PC and appl working with it.