Skip to main content

SHW3G & SHF3G (3MP Global)

Overview

SHW3G (HFOV 122°) and SHF3G (HFOV 173°) cameras are designed for embodied intelligence applications. Built with a 3MP Global Shutter sensor, they can be used in humanoid robot head and torso positions for robot perception and recognition scenarios. The main difference is the lens field of view: SHW3G provides 122° HFOV for wide-angle perception, while SHF3G provides 173° HFOV for ultra-wide perception. Other platform specifications are the same unless noted in the lens option table.


SHW3G

SHW3G (HFOV 122°)

SHF3G

SHF3G (HFOV 173°)

Key Features and Application

Features:
• Output RAW data
• Global Shutter
• Low latency
• Support external trigger
• Multi-camera synchronization

Application:
• Humanoid Robots
• Data collection

Getting Started

Specification

ParameterValue
Sensor3MP Global Shutter
Image Size1/3.1 inch CMOS
Output Pixels2064 (H) × 1552 (V)
Pixel Size2.25um*2.25um
Frame RateMAX 125fps
ShutterGlobal Shutter
Output dataRAW@12bit/10bit/8bit
SerializerMAXIM MAX96717
Camera InterfaceGMSL2
Power Supply9~16V POC
CurrentLess than 200mA@12VDC
ConnectorAmphenol Fakra (Z Code)
Operating temp. range-40~+85℃
DimensionsW: 25mm, L:25mm, H:32.13mm (SHW3G) / 31.82mm (SHF3G)
WeightLess than 50g

Dimensions

SHW3G_Dimensions

[SHW3G (HFOV 122°)]

SHF3G_Dimensions

[SHF3G (HFOV 173°)]

Hardware Overview

Block Diagram

SHW3G_BlockDiagram

Frame Sync usage requirements

Requires two trigger input signalsPWM trigger signal requirementsWithin the Camera Serializer GPIO ---> Sensor GPIONotes
1XVS signalFrequency: 30 Hz, Duty cycle: 10%MFP7 ---> XVSIf multiple cameras are used for synchronized triggering (i.e., slave mode), both XVS and XHS trigger signals must be input simultaneously and meet the corresponding requirements in order to achieve synchronized triggering.
2XHS signalFrequency: 83 kHz, Duty cycle: ≥ 90%MFP3 ---> XHS

I2C Address Information

ComponentParameterValue
SerializerModelMAX96717
I2C Address0x80 (8bit address)
GMSL RateGMSL2 (6G bps)
SensorModelRGGB
I2C Address0x6C (8bit address)
Frame SyncControlled by MAX96717 MFP7 and MFP3
Master/Slave ControlControlled by MAX96717 MFP5 (Low:Master, High:Slave-default)
ResetControlled by MAX96717 MFP0

Lens Specifications

ModelHFOVVFOVF.NoDepth of FieldWater-proofLens Mount
SHW3G122°90°2.20.34m - INF@Focus at 1MIP67AA
SHF3G173°134°2.00.2m - INF@Focus at 0.4MIP67AA

Employing Camera

1. Adaptation to NVIDIA® Jetson™ platform

SHW5G_Application

SHW3G / SHF3G Camera Connect to Nvidia Jetson AGX Orin

Step 1: Installation Steps

Quick Setup
  1. Connect the SHW3G or SHF3G camera to the SG10A-AGON-G2M-A1 board using the coaxial cable
  2. Mount the SG10A-AGON-G2M-A1 board onto the Jetson AGX Orin module
  3. SHW3G or SHF3G camera Connect the power supply
  4. SG10A-AGON-G2M-A1 board Connect the power supply
  5. Power on the system

Step 2: Software Preparation

SDK Download

-Select the appropriate driver package based on your camera type and JetPack version:

-Copy the full link address to DownGit to download

NO.JetPack VersionCameraNVIDIA Jetson DevicesAdapter BoardDownload Link
1JP6.2SHW3G / SHF3GJetson AGX Orin Developer KitSG10A-AGON-G2M-A1Download
JetPack Versions

NVIDIA JetPack (Jetpack 5.1.2 or Jetpack 6.0 ) is the official software development kit (SDK) for the Jetson series of development boards. It includes the operating system, drivers, CUDA, cuDNN, TensorRT, and other development tools and libraries. Each JetPack version typically corresponds to a specific Jetson Linux version (formerly known as L4T - Linux for Tegra).

  • 36.4.3: L4T R36.4.3 (Jetpack 6.2)
  • 36.4: L4T R36.4 (Jetpack 6.1)
  • 36.3: L4T R36.3 (Jetpack 6.0)
  • 35.4.1: L4T R35.4.1 (Jetpack 5.1.2)

For more information, visit NVIDIA's official Jetson Download Center.

2. Camera Integration with Customer's Self-developed Platform

For customers with their own deserializer who want to adapt our camera (serializer) to their platform, detailed technical coordination is required.

SHW3G_Fsync

The diagram illustrates the communication architecture between a camera and controller system. It shows how data flows from the Sensor/ISP through the Serializer on the Camera side, across to the Deserializer and SOC on the Controller side. The system utilizes Fsync signals for synchronization and MFP7 and MFP3 interfaces for control. This architecture is essential for proper integration of SENSING cameras with customer-developed platforms.

SENSING will provide:

  • Serializer and Deserializer Configuration

  • Link Status Troubleshooting Guide

    • Link training parameters
    • Error detection settings
tip

Please refer to the software flow and demo code below to develop your driver code.

Software Development

  1. Driver Development:
/* Example code for MAX9296 I2C initialization */
#define MAX9296_I2C_ADDR 0x90 // 8-bit address

int max9296_init() {
// Initialize I2C bus
i2c_init();

// disable MIPI output
i2c_write(MAX9296_I2C_ADDR, 0x0313, 0x00);
delay_ms(100);
// Configure link settings for GMSL2 (6Gbps)
i2c_write(MAX9296_I2C_ADDR, 0x0001, 0x02);

// Configure linkA and linkB settings for GMSL2 selection (default value)
i2c_write(MAX9296_I2C_ADDR, 0x0006, 0xC0);

// Configure MIPI rate 1200Mbps
i2c_write(MAX9296_I2C_ADDR, 0x0320, 0x2C);

// enable MIPI output
i2c_write(MAX9296_I2C_ADDR, 0x0313, 0x02);

return 0;
}
  1. Camera Configuration:
/* Example code for   initialization */

#define MAX9295_I2C_ADDR 0x80 // 8-bit address

int camera_init() {
// Initialize deserializer first
max9296_init();

// Reset ISP through MAX9295A
i2c_write(0x80, 0x02BE, 0x10); // MFP0 high
//
i2c_write(0x80, 0x0057, 0x12);
i2c_write(0x80, 0x005B, 0x11);
// Configure datatype YUV422 8bit
i2c_write(0x80, 0x0318, 0x5E);

// camera trigger MFP7 low to high
i2c_write(0x80, 0x02D3, 0x00); // MFP7 low
delay_ms(300);
i2c_write(0x80, 0x02D3, 0x10); // MFP7 high

return 0;
}

Integration Steps

  1. BSP Integration:

    • Modify the device tree to include the CSI interface configuration
    • Add camera driver to kernel build configuration
    • Configure media controller pipeline for the camera
  2. Application Development:

/* Example code for capturing camera frames */
#include "camera_api.h"

int main() {
// Open camera device
int fd = open("/dev/video0", O_RDWR);
if (fd < 0) {
perror("Failed to open camera device");
return -1;
}

// Configure video capture format
struct v4l2_format fmt = {0};
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = 1920;
fmt.fmt.pix.height = 1536;
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_UYVY;

if (ioctl(fd, VIDIOC_S_FMT, &fmt) < 0) {
perror("Failed to set format");
close(fd);
return -1;
}

// Request and map buffers
// ... (buffer setup code) ...

// Start streaming
// ... (streaming code) ...

// Capture and process frames
// ... (frame processing code) ...

// Cleanup
close(fd);
return 0;
}

Step 2: Data Processing

After receiving the module data through the MIPI CSI interface:

  • Data Reception
    • MIPI CSI-2 protocol implementation
    • Data rate configuration
  • Image Processing
    • YUV422 data parsing
    • Image format conversion
    • Display configuration

Technical Support

  • Documentation

    • Detailed register descriptions
  • Engineering Support

    • Technical consultation
    • Debug assistance
    • Performance optimization
tip

SENSING Technology provides technical support for integration with most platforms. For detailed documentation, sample code, and technical assistance, please contact our support team.