PAA5100JE Near Optical Flow SPI Breakout

by Pimoroni

Detect motion of close-up surfaces with this Breakout Garden compatible optical navigation breakout - great for floor tracking for ground dwelling robots!

The PAA5100JE sensor is used in robot vacuum cleaners and uses a low-resolution camera and some clever algorithms to detect motion of surfaces. This sensor has a super close range of 15-35mm so it's suitable for use with a variety of different surfaces. If you're looking for a similar sensor with a bigger range (for attaching to something like a drone) check out our PMW3901 breakout.

You can use this breakout completely solder-free with any Breakout Garden with an SPI slot, for ease of prototyping.

Features

  • PAA5100JE-Q optical tracking sensor (datasheet)
  • Two white LEDs on-board for illumination
  • Frame rate: 242 FPS (frames per second)
  • Range: 15-35mm
  • Field of view: 42°
  • Maximum speed: 1.14 metres per second (with sensor 25mm away from surface)
  • 6mA typical current draw
  • SPI interface
  • 3.3V or 5V compatible
  • Reverse polarity protection
  • Compatible with Raspberry Pi (Python library)
  • Compatible with Raspberry Pi Pico (C++/MicroPython libraries)
  • Mechanical drawing
  • Schematic

Software

We've adapted our PWM3901 Python library to work with this sensor as well. It makes reading the x/y motion values and their magnitude really straightforward. Use the following line at the beginning of your code to make sure it's set up correctly:

from pmw3901 import PAA5100

Connecting to your Raspberry Pi

If you're not using a Breakout Garden, this is how to connect your Near Optical Flow Sensor Breakout up to your Raspberry Pi.

Our library is set up to use the front SPI slot by default: BCM 7 for CS, BCM 11 for SCK, BCM 10 for MOSI, BCM 9 for MISO, and BCM 19 for the INT pin.

Here's which pins to connect between your Near Optical Flow Sensor Breakout and your Pi's GPIO (note that it's BCM pin numbering):

  • 3-5V to any 5V or 3V pin
  • CS to BCM 7
  • SCK to BCM 11
  • MOSI to BCM 10
  • MISO to BCM 9
  • INT to BCM 19
  • GND to any ground pin

You can of course use other pins but you'll have to change them accordingly when you instantiate the sensor in your code.

Notes

  • Measurements: approx 24mm x 24.5mm x 5mm (L x W x H, including components)

6 customer reviews

a month ago
Parade control Systems are happy to right a review of this unit. This is a GREAT little breakout board. We will be using it in part of a larger project for a museum display in the UAE. We are also using the longer range OFS for our vehicle odometry systems used by Universal Studios for their parade float tracking systems that we supply.
by Peter about PAA5100JE Near Optical Flow SPI Breakout via REVIEWS.io
9 months ago
Really nice little board. Works very well. The snag is that documentation for the chip is scarce and the libraries are pretty basic (because the authors don't have the documentation). Not Pimoroni's fault. But you can get it do the basics stuff. I still recommend it and maybe the libs will get better. Try SparkFun_Qwiic_OTOS_Arduino_Library.h Bitcraze_PMW3901.h // also works for PAA5100 and code from https://github.com/zic-95/PAA5100JE
by Jonathan about PAA5100JE Near Optical Flow SPI Breakout via REVIEWS.io
4 years ago
Module is fine. The issue was with writing a driver in C/C++ for Arduino/Particle device. No response on the community - data sheet is very thin on information - in fact there is no explanation of the 'secret sauce' of the commands to setup the device. Lastly, needs to be calibrated because pulses vary according to the distance from the surface it is moving over. Once all that was sorted then it was impressive. Will need fusion with a 3DoF sensor to track movement against external co-ordinates.
by William about PAA5100JE Near Optical Flow SPI Breakout via REVIEWS.io
4 years ago
Worked perfectly out of the box. Replaces the PMW3901 in my indoor robot. Positioning accuracy is much improved. I still see some accuracy variations between hardwood floor and carpet (carpet is more accurate), perhaps having it even closer to the ground can reduce errors. I have it around 3cm off the ground as opposed to the 15mm minimum. Teensy 4.0 Arduino, with 2 breakouts on one SPI bus at 2MHz. Overall, excellent purchase. Will buy again.
by Anonymous about PAA5100JE Near Optical Flow SPI Breakout via REVIEWS.io