ON Semiconductor AR0820 Linux Driver
Omnivision AR0820 Linux Driver RidgeRun documentation is currently under development. |
|
|
|
Omnivision AR0820 Features
The AR0820AT is a 1/2−inch CMOS digital image sensor with a 3848 H x 2168 V active−pixel array. This advanced automotive sensor captures images in either linear or high dynamic range, with rolling−shutter readout.
AR0820AT is optimized for both low light and challenging high dynamic range scene performance, with a 2.1 µm DR−Pix BSI pixel and on−sensor 140 dB HDR capture capability. The sensor includes advanced functions such as in−pixel binning, windowing, and both video and single frame modes to provide flexible Region of Interest (ROI) or specific resolution in order to enhance performance in extreme low light conditions. The sophisticated sensor fault detection features and embedded data on AR0820AT are designed to enable camera ASIL B compliance. The device is programmable through a simple two−wire serial interface and supports MIPI output interface.
Supported Platforms
- NVIDIA Jetson Xavier
Features Included in the Driver
Xavier |
|
---|
Enabling the Driver
In order to use this driver, you have to patch and compile the kernel source using JetPack:
- Follow the instructions to get the kernel source code.
- Once you have the source code, apply the following the patches in order to add the changes required for the IMX327 camera at kernel and dtb level.
4.5.1_ar0820.patch
- Follow the [[1]] in for building the kernel, and then flash the image.
Make sure to enable IMX327 driver support:
make menuconfig
-> Device Drivers -> Multimedia support -> NVIDIA overlay Encoders, decoders, sensors and other helper chips -> <M> IMX327 camera sensor support
And to select the runtime device tree blob by editing the $JETSON_L4T/rootfs/boot/extlinux/extlinux.conf
to add the "FDT" line:
TIMEOUT 30 DEFAULT primary MENU TITLE L4T boot options LABEL primary MENU LABEL primary kernel LINUX /boot/Image INITRD /boot/initrd FDT /boot/tegra210-p3448-0000-p3449-0000-a02.dtb APPEND ${cbootargs} quiet
Using the Driver
GStreamer Examples
Capture and Display
- 1920x1080@30fps RGGB12
gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12, framerate=30/1' ! nvvidconv ! xvimagesink
Video Encoding
CAPS="video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1" gst-launch-1.0 nvarguscamerasrc sensor-id=0 num-buffers=500 ! "video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1" ! omxh264enc ! mpegtsmux ! filesink location=test.ts
The sensor will capture in the 1920x1080@30fps mode and the pipeline will encode the video and save it into test.ts file.
Performance
ARM Load
Tegrastats display the following output when capturing with the sensor driver used in the Jetson Nano platform:
RAM 1167/3963MB (lfb 522x4MB) CPU [25%@1132,16%@1132,9%@1132,12%@1132] RAM 1168/3963MB (lfb 522x4MB) CPU [28%@921,12%@921,9%@921,13%@921] RAM 1167/3963MB (lfb 522x4MB) CPU [23%@921,12%@921,13%@921,10%@921] RAM 1167/3963MB (lfb 522x4MB) CPU [28%@921,8%@921,12%@921,12%@921] RAM 1169/3963MB (lfb 522x4MB) CPU [26%@1479,9%@1479,16%@1479,9%@1479] RAM 1167/3963MB (lfb 522x4MB) CPU [28%@921,13%@921,9%@921,16%@921] RAM 1168/3963MB (lfb 522x4MB) CPU [23%@1036,13%@1036,14%@1036,7%@1036] RAM 1167/3963MB (lfb 522x4MB) CPU [25%@921,12%@921,9%@921,11%@921] RAM 1168/3963MB (lfb 522x4MB) CPU [25%@921,13%@921,16%@921,12%@921] RAM 1169/3963MB (lfb 522x4MB) CPU [27%@921,12%@921,8%@921,13%@921] RAM 1168/3963MB (lfb 522x4MB) CPU [24%@921,8%@921,13%@921,10%@921] RAM 1169/3963MB (lfb 522x4MB) CPU [29%@921,13%@921,15%@921,6%@921]
Framerate
Using the next pipeline we were able to measure the framerate for single capture with perf element:
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1' ! perf ! fakesink
GST-PERF-INFO --> timestamp: 0:44:34.324884537; bps: 0,000; mean_bps: 0,000; fps: 0,000; mean_fps: 0,000 GST-PERF-INFO --> timestamp: 0:44:35.354956530; bps: 24192,000; mean_bps: 8064,000; fps: 30,095; mean_fps: 30,095 GST-PERF-INFO --> timestamp: 0:44:36.355520992; bps: 241920,000; mean_bps: 66528,000; fps: 29,983; mean_fps: 30,039 GST-PERF-INFO --> timestamp: 0:44:37.356864989; bps: 241920,000; mean_bps: 101606,400; fps: 29,960; mean_fps: 30,013 GST-PERF-INFO --> timestamp: 0:44:38.357433006; bps: 241920,000; mean_bps: 124992,000; fps: 29,983; mean_fps: 30,005 GST-PERF-INFO --> timestamp: 0:44:39.358908010; bps: 241920,000; mean_bps: 141696,000; fps: 29,956; mean_fps: 29,995 GST-PERF-INFO --> timestamp: 0:44:40.359357860; bps: 241920,000; mean_bps: 154224,000; fps: 29,987; mean_fps: 29,994 GST-PERF-INFO --> timestamp: 0:44:41.360617558; bps: 241920,000; mean_bps: 163968,000; fps: 29,962; mean_fps: 29,989 GST-PERF-INFO --> timestamp: 0:44:42.361400607; bps: 241920,000; mean_bps: 171763,200; fps: 29,977; mean_fps: 29,988 GST-PERF-INFO --> timestamp: 0:44:43.362674329; bps: 241920,000; mean_bps: 178141,091; fps: 29,962; mean_fps: 29,985 GST-PERF-INFO --> timestamp: 0:44:44.363320878; bps: 241920,000; mean_bps: 183456,000; fps: 29,981; mean_fps: 29,984 GST-PERF-INFO --> timestamp: 0:44:45.364541434; bps: 241920,000; mean_bps: 187953,231; fps: 29,963; mean_fps: 29,983 GST-PERF-INFO --> timestamp: 0:44:46.365041950; bps: 241920,000; mean_bps: 191808,000; fps: 29,985; mean_fps: 29,983 GST-PERF-INFO --> timestamp: 0:44:47.366186373; bps: 241920,000; mean_bps: 195148,800; fps: 29,966; mean_fps: 29,981 GST-PERF-INFO --> timestamp: 0:44:48.366852845; bps: 241920,000; mean_bps: 198072,000; fps: 29,980; mean_fps: 29,981 GST-PERF-INFO --> timestamp: 0:44:49.368081920; bps: 241920,000; mean_bps: 200651,294; fps: 29,963; mean_fps: 29,980 GST-PERF-INFO --> timestamp: 0:44:50.368731947; bps: 241920,000; mean_bps: 202944,000; fps: 29,981; mean_fps: 29,980 GST-PERF-INFO --> timestamp: 0:44:51.370037391; bps: 241920,000; mean_bps: 204995,368; fps: 29,961; mean_fps: 29,979 GST-PERF-INFO --> timestamp: 0:44:52.370821395; bps: 241920,000; mean_bps: 206841,600; fps: 29,976; mean_fps: 29,979 GST-PERF-INFO --> timestamp: 0:44:53.371545430; bps: 241920,000; mean_bps: 208512,000; fps: 29,978; mean_fps: 29,979 GST-PERF-INFO --> timestamp: 0:44:54.372675500; bps: 241920,000; mean_bps: 210030,545; fps: 29,966; mean_fps: 29,978 GST-PERF-INFO --> timestamp: 0:44:55.373703465; bps: 241920,000; mean_bps: 211417,043; fps: 29,969; mean_fps: 29,978
RidgeRun Resources | |||||
Contact Us
|