> **Source:** Core Electronics is an Australian maker-electronics retailer and manufacturer based in Newcastle, NSW, run by a team of makers and educators. We design and manufacture our own product lines (PiicoDev, CE originals) and are official retailers for iconic maker and industrial brands including Raspberry Pi, Arduino, Adafruit, SparkFun and DFRobot. Orders ship Australia-wide from our Newcastle warehouse. Prices are in AUD and include GST. Pricing, stock and dispatch on this page are generated from the store's live catalog. Full machine-readable index: https://core-electronics.com.au/llms.txt

# 3-Channel Wide FOV Time-of-Flight Distance Sensor Using OPT3101 (No Headers)

**Type:** Product page · **SKU:** POLOLU-3412 · **Brand:** [Pololu](https://core-electronics.com.au/brands/pololu-australia)
**Page:** https://core-electronics.com.au/3-channel-wide-fov-time-of-flight-distance-sensor-using-opt3101-no-headers.html ([markdown](https://core-electronics.com.au/3-channel-wide-fov-time-of-flight-distance-sensor-using-opt3101-no-headers.html.md))

This board is a 3-channel time-of-flight proximity and distance sensor module based on the OPT3101 IC from Texas Instruments. It emits infrared light in...

## Pricing

- **Price:** $77.50 (inc GST) — $70.45 AUD, exc GST
- **Quantity discounts:** 6+ $67.64 (exc GST) · 12+ $65.53 (exc GST)

## Availability & dispatch

- Available with a lead time — expect dispatch between Sep 02 and Sep 07.

## How to buy

- **Build a cart:** compose `https://core-electronics.com.au/cart/link?items=POLOLU-3412:1` (comma-separated SKU:qty pairs) and share the link. Opening it shows a confirmation page with live pricing and stock before anything is added to the cart.
- **Verify the cart first:** fetch `https://core-electronics.com.au/cart/link/POLOLU-3412:1.md` for live line prices (inc & exc GST, quantity discounts applied), stock and dispatch estimates, and totals. Append `/to/{AU-postcode}` (or `/to/{country-code}:{postcode}`) before `.md` for delivery options and prices to that destination. Unknown, retired, or out-of-stock SKUs are flagged. (Query form `cart/link.md?items=...` also works but some robots parsers refuse query strings here.)
- **Checkout** is completed on-site and includes a captcha at the payment step. Share the cart link; checkout takes it from there.
- **Search the catalogue:** `https://core-electronics.com.au/search/{query}.md` (URL-encode the query; pages 2-3 at `search/{query}/{page}.md`; `search.md?q=` also works)
- **Payment methods, purchase orders, policies and contact details:** https://core-electronics.com.au/llms.txt
## Description

| [![](https://core-electronics.com.au/attachments/localcontent/0J10862_108972316b1.jpg)](https://core-electronics.com.au/attachments/localcontent/0J10862_143541cb3cb.jpg) |
|---|

This board is a 3-channel time-of-flight proximity and distance sensor module based on the OPT3101 IC from Texas Instruments. Unlike conventional IR sensors that use the intensity of reflected light to estimate the distance to an object, this board emits 940 nm infrared light pulsed at 10 MHz, and then measures the phase (delay) of the reflected signal, which corresponds to the distance to the target object. It also measures the amplitude of the signal, which indicates how bright/reflective/close the object is.

This board has three channels that each cover approximately 50° to 60°, giving the sensor a wide field of view (FOV). In favorable conditions, the sensor can measure objects at distances up to 1 m. Distance measurements are available through the sensor’s I²C interface, which is also used to configure the sensor.

 | [![](https://core-electronics.com.au/attachments/localcontent/0J10874_25409d92ec6.jpg)](https://core-electronics.com.au/attachments/localcontent/0J10874_77216f34a9e.jpg) |
|---|
| Emitter channels and field of view of the OPT3101 distance sensor module. |

 | [![](https://core-electronics.com.au/attachments/localcontent/0J10868_3777268063f.jpg)](https://core-electronics.com.au/attachments/localcontent/0J10868_107938e694b.jpg) |
|---|

This module is designed to be mounted onto the 7-pin connector on the front of a [TI-RSLK MAX chassis board](https://core-electronics.com.au/catalog/product/view/sku/POLOLU-3671), but it can be used with any I²C-capable device. The board can be powered from a 2.5 V to 5.5 V supply. On-board regulators supply the 3.3 V logic voltage to the OPT3101. The board includes a circuit that shifts the I²C clock and data lines to the same logic voltage level as the supplied VIN, making it simple to interface the board with 3.3 V or 5 V systems, and the board’s 0.1" pin spacing makes it easy to use with standard [solderless breadboards](https://core-electronics.com.au/prototyping/breadboards.html) and 0.1" perfboards.

 **Details for item #3412**

This version does not include any headers and ships as shown in the main product picture. Pololu carry an [alternate version with headers soldered](https://core-electronics.com.au/3-channel-wide-fov-time-of-flight-distance-sensor-for-ti-rslk-max-using-opt3101.html) intended specifically for use with the TI-RSLK MAX.

**Specifications**

- Dimensions: 1.1" × 1.2" (27.9 mm × 30.5 mm)
- Weight without header pins: 2.7 g (0.095 oz)
- Operating voltage: 2.5 V to 5.5 V
- Sensor channels: 3 (each with an FOV of approximately 50° – 60° for a combined FOV of nearly 180°)
- Supply current: 130 mA (typical average during operation in high-brightness mode with 3.3 V power supply)
- Distance measuring range: up to 1 m (3.3 ft) (depends on the target object; see the FAQs tab for more information on distance measurement accuracy)
 
**Connections**

Four connections are necessary to use the OPT3101 board: GND, VIN, SDA, and SCL. The VIN pin should be connected to a 2.5 V to 5.5 V source, and GND should be connected to 0 volts. The board’s I²C pins (SCL and SDA) should be connected to an I²C bus operating at the same logic level as VIN.

**Pinout**

 | Pin | Description |
|---|---|
| GND | The ground (0 V) connection for your power supply. Your I²C control source must also share a common ground with this board. |
| VIN | This is the main 2.5 V to 5.5 V power supply connection. |
| SDA | Level-shifted I²C data line: high is VIN, low is 0 V. Pulled up to VIN with a 10kO pull-up resistor. |
| SCL | Level-shifted I²C clock line: high is VIN, low is 0 V. Pulled up to VIN with a 10kO pull-up resistor. |
| GP1 | Configurable 3.3 V I/O pin. *This pin is not level-shifted.* |
| GP2 | Configurable 3.3 V I/O pin. *This pin is not level-shifted.* |
| RST/MS | Input pin that can be used to reset the board or trigger a new sample. (Both of those functions can also be done with I²C.) Pulled up to 3.3 V with a 10kO pull-up resistor. *This pin is not level-shifted.* |

**Schematic diagram**

 | [![](https://core-electronics.com.au/attachments/localcontent/0J10879_130002e0269.jpg)](https://core-electronics.com.au/attachments/localcontent/0J10879_11466534194.png) |
|---|

This schematic is also available as a [downloadable PDF](https://core-electronics.com.au/attachments/localcontent/3-channel-wide-fov-time-of-flight-distance-sensor-using-opt3101-schematic_143964673e3.pdf) (144k pdf).

**I²C communication**

The OPT3101 can be configured, controlled, and queried through the I²C bus. Level shifters on the I²C clock (SCL) and data (SDA) lines enable I²C communication with microcontrollers operating at the same voltage as VIN. A detailed explanation of the I²C interface on the OPT3101 can be found in the “I2C slave” section of the [OPT3101 datasheet](https://core-electronics.com.au/attachments/localcontent/opt3101_276501818a2.pdf), and more detailed information about I²C in general can be found in [NXP’s I²C-bus specification](https://core-electronics.com.au/attachments/localcontent/UM10204_13957626aa3.pdf) (1MB pdf). The sensor’s default 7-bit slave address is 0x58 (1011000 in binary).

**Calibration**

Each board includes a 256-byte EEPROM that holds an individualized factory calibration. The OPT3101 automatically loads the calibration when it starts up. This calibration defines a distance reading of 100 mm to correspond to an object that is 100 mm from the edge of the board.

Pololu recommend **not** doing the internal crosstalk calibration procedure described in TI’s documentation; the effect it would have has already been incorporated into the illumination crosstalk numbers in the factory calibration.

**Configuration**

The main configuration options that you can choose for the OPT3101 are the channel, brightness, and sample rate. These options are set over I²C, and you can change them between samples.

The channel setting determines which pair of IR LEDs will turn on, and thus determines the direction in which the sensor will be most sensitive to objects. There are three channels: TX0 (left), TX1 (middle), and TX2 (right).

There are two brightness settings available for the IR LEDs: low and high (also known as HDR0 and HDR1, respectively). Low brightness mode only works well for nearby objects (within about 20 cm). High brightness mode works for longer ranges, but objects that are too reflective or too close can cause the sensor to saturate, meaning that it fails to measure a distance. You can configure the OPT3101 to use one of these brightnesses, or you can make it use an adaptive brightness mode, where it automatically selects between low or high brightness.

The measurements performed by the OPT3101 are divided into basic units called a *frame* or a *sample*. Each frame has a specific configuration, but you can change the configuration between frames. You can configure the OPT3101 to start frames continuously, or to wait for your signal before starting a frame (which is called monoshot mode). When a frame is complete, you can read its results from the OPT3101’s output registers.

Each frame consists of a configurable number of subframes that take 0.25 ms each. The results from each subframe are averaged together. By increasing the number of subframes, you can decrease the noise of your measurements, but the frames will be slower. The number of subframes can be any power of 2 from 1 to 4096.

For more details about how to configure and initialize the OPT3101, please see Pololu's [Arduino library for the OPT3101](https://github.com/pololu/opt3101-arduino) or the [OPT3101 datasheet](https://core-electronics.com.au/attachments/localcontent/opt3101_276501818a2.pdf).

**Sample code**

Pololu have written a basic [Arduino library for the OPT3101](https://github.com/pololu/opt3101-arduino), which can be used for interfacing this sensor with an [Arduino](https://core-electronics.com.au/arduino-uno-r3-10900.html) or [Arduino-compatible controller](https://core-electronics.com.au/search/?q=a+star+controller). The library and its included examples make it simple to configure the OPT3101 and read the distance data through I²C.

**People often buy this product together with:**

 | [![VL53L1X Time-of-Flight Distance Sensor Carrier with Voltage Regulator, 400cm Max](https://core-electronics.com.au/attachments/localcontent/0J8677_511059d7d0.jpg)](https://core-electronics.com.au/vl53l1x-time-of-flight-distance-sensor-carrier-with-voltage-regulator-400cm-max.html) | [VL53L1X Time-of-Flight Distance Sensor Carrier with Voltage Regulator, 400cm Max](https://core-electronics.com.au/vl53l1x-time-of-flight-distance-sensor-carrier-with-voltage-regulator-400cm-max.html) |
|---|---|

 | [![VL53L3CX Time-of-Flight Multi-Target Distance Sensor Carrier with Voltage Regulator, 500cm Max](https://core-electronics.com.au/attachments/localcontent/0J10929_48262e894e.jpg)](https://core-electronics.com.au/vl53l3cx-time-of-flight-multi-target-distance-sensor-carrier-with-voltage-regulator-500cm-max.html) | [VL53L3CX Time-of-Flight Multi-Target Distance Sensor Carrier with Voltage Regulator, 500cm Max](https://core-electronics.com.au/vl53l3cx-time-of-flight-multi-target-distance-sensor-carrier-with-voltage-regulator-500cm-max.html) |
|---|---|

 | [![Robot Arm Kit for Romi](https://core-electronics.com.au/attachments/localcontent/0J9183_2906af12e5.jpg)](https://core-electronics.com.au/robot-arm-kit-for-romi.html) | [Robot Arm Kit for Romi](https://core-electronics.com.au/robot-arm-kit-for-romi.html) |
|---|---|

**Dimensions**

 | Size: | 1.1" × 1.2" |
|---|---|
| Weight: | 2.4 g |

**General specifications**

 | Maximum range: | 1 m[1](https://core-electronics.com.au/#note1) |
|---|---|
| Channels: | 3 |
| Interface: | I²C |
| Minimum operating voltage: | 2.5 V |
| Maximum operating voltage: | 5.5 V |
| Supply current: | 130 mA[2](https://core-electronics.com.au/#note2) |
| Header pins soldered?: | N |

**Identifying markings**

 | PCB dev codes: | irs15j |
|---|---|
| Other markings: | 0J12947 |

**Notes:**

1Effective range depends on several factors including target size and reflectivity.2Typical average during operation in high-brightness mode with 3.3 V power supply. **File downloads**

- **[Schematic diagram of the 3-Channel Wide FOV Time-of-Flight Distance Sensor Using OPT3101](https://core-electronics.com.au/attachments/localcontent/3-channel-wide-fov-time-of-flight-distance-sensor-using-opt3101-schematic_143964673e3.pdf) (144k pdf)**
- **[Dimension diagram of the 3-Channel Wide FOV Time-of-Flight Distance Sensor Using OPT3101](https://core-electronics.com.au/attachments/localcontent/3-channel-wide-fov-time-of-flight-distance-sensor-using-opt3101-dimensions_22758f3bf0f.pdf) (228k pdf)**
- **3D model of the 3-Channel Wide FOV Time-of-Flight Distance Sensor Using OPT3101 (6MB step)**
- **Drill guide for the 3-Channel Wide FOV Time-of-Flight Distance Sensor Using OPT3101 (62k dxf)**
    
    This DXF drawing shows the locations of all of the board’s holes.
- **3D-printable clip set for securing the 3-Channel Wide FOV Time-of-Flight Distance Sensor Using OPT3101 to the TI-RSLK MAX (4MB stl)**
    
    For those with access to a 3D printer, this part provides an alternative way to anchor the [item #3680 3-Channel Wide FOV Time-of-Flight Distance Sensor for TI-RSLK MAX Using OPT3101](https://core-electronics.com.au/3-channel-wide-fov-time-of-flight-distance-sensor-for-ti-rslk-max-using-opt3101.html) to the TI-RSLK MAX.
- **[UM10204 I²C-bus specification and user manual](https://core-electronics.com.au/attachments/localcontent/UM10204_13957626aa3.pdf) (1MB pdf)**
    
    The official specification for the I²C-bus, which is maintained by NXP.
 
**Recommended links**

- **[OPT3101 library for Arduino](https://github.com/pololu/opt3101-arduino)**
    
    This library for [Arduino](https://core-electronics.com.au/hardware.html) makes it easy to interface with the OPT3101 time-of-flight-based distance sensor from Texas Instruments.
- **[MicroPython library for the Pololu 3-Channel Wide FOV Time-of-Flight Distance Sensor Using OPT3101](https://github.com/mchobby/esp8266-upy/tree/master/opt3101-fov)**
    
    This MicroPython library from Pololu distributor [MC Hobby](https://shop.mchobby.be/) implements most of the features of [Pololu's OPT3101 library for Arduino](https://github.com/pololu/opt3101-arduino). The page includes example wiring and usage instructions for their [PYBStick RP2040](https://shop.mchobby.be/en/pybstick/2331-rp2040-pybstick-26-pins-micropython-c-3232100023314-garatronic.html) as well as a Raspberry Pi Pico, but the code appears to be generic MicroPython that should also work on other boards without modification.
- **[Texas Instruments OPT3101 time-of-flight distance sensor AFE datasheet](https://core-electronics.com.au/attachments/localcontent/opt3101_276501818a2.pdf)**

## Images

- [Product image 1](https://core-electronics.com.au/media/catalog/product/i/m/image_6871.jpg)
