Person Sensor by Useful Sensors

Added to your shopping cart

Add advanced computer vision capabilities to your project, without the coding! The Person Sensor from Useful Sensors Inc. includes a camera module pre-programmed with algorithms that detect nearby faces, and return information over a simple Qwiic I2C interface. It is designed to be used as an input to a larger system and be treated like any other sensor where power and information are provided through SparkFun's Qwiic I2C interface. There’s also a separate interrupt pin, TP1, which is used to indicate if any people have been detected.

Internally the Person Sensor bundles an image sensor and a small microcontroller into a single board. It is a small, low power (~150 milliwatts), and economical hardware module that is capable of detecting nearby faces and returning information about how many there are, where they are relative to the device, and performs facial recognition. This makes it easy to build projects that wake up when people approach, follow their faces, mute a microphone when nobody is present, and even recognize different people to personalize their experiences. The Person Sensor is designed to be a simple way to build smarter devices.


The SparkFun Qwiic Connect System is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.


  • Qwiic connector for the I2C interface
  • Operating Voltage - 3.3V
    • 150mW power consumed
    • 5mW LED power consumption
  • I2C bus speeds of up to 400k baud
  • Image Sensor - 110 degree FOV
  • Image scan rate - 7Hz with no facial recognition
  • Image scan rate - 5Hz with facial recognition active
  • Module designed for privacy - resistant to allow access to raw image data, only metadata derived from each frame available.
  • Pre-programmed microcontroller - firmware flashing & model updates not available.

Note: The sensor uses an image sensor internally, so you need to make sure that the lens has a clear field of view, and that it’s mounted the right way up. You should be able to see the side of the board that has the sensor by spotting the small lens in the center. You’ll know you have it the right way up when the silkscreen writing “Useful Sensors Person Sensor V1.0” is at the correct orientation.

Person Sensor by Useful Sensors Product Help and Resources

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #437268 / last month * / 2

    I've been unable to get the device to work using the sample code on a Particle.io Argon. It just keeps reporting 'no face found' even though the green light comes on. With a scope I could see that the I2C bus is getting x62 as the address. I see it polling the sensor every 200 ms. Don't really know what to do next.

    UPDATE: I got it to work by modifying their supplied Arduino code. Problem is they try to read 40 bytes from the Wire library but that library is limited to 32 byte max. Using their supplied code the read never completes. I've left comments in their github repo about this.

    • Member #1548287 / about 3 weeks ago * / 1

      Thanks! I've updated https://github.com/usefulsensors/person_sensor_arduino/issues/2 with some notes, I'm guessing you're correct, and sorry we didn't catch this during our testing. I appreciate the STL file too.

      Pete@Useful

      • Member #1548287 / about 2 weeks ago / 1

        I've now checked in a fix to read from I2C in 32-byte chunks, which gets it working on the Uno, which failed previously. I hope this solves the issue, thanks for your patience and help debugging it!

        Pete@Useful

  • Member #376446 / about 4 months ago / 2

    I'm wondering if the Library for this camera, have one specific to identifying RC cars, or any small car like vehicle. Then use the I2C and an Arduino, for simple identity processing.

    • Member #1548287 / about 3 weeks ago / 1

      We don't have any plans for custom models unfortunately, but I personally like Edge Impulse as a self-service tool for creating your own computer vision solutions for embedded platforms.

      Pete@Useful

  • Member #161230 / about 4 months ago / 2

    Since it’s simply I2C ,I’d guess you could get data from it in Arduino too? Just need to know the wire address and it’s behavior

  • TheRealTonyStark / about 4 months ago / 2

    How far away can the device confidently detect faces / people?

    • Member #498212 / about 4 months ago / 3

      3m/10' should be a good theoretical upper limit, given the sensor specs (110º FoV, 256x256) and a 14cm average face width (so 6 pixels wide @ 3m).

      • Member #1548287 / about 3 weeks ago / 1

        We find in practice that about one meter in decent lighting conditions gives reasonable performance, any further is less reliable. We're hoping to keep improving this as we work on new versions though.

        Pete@Useful

Customer Reviews

4 out of 5

Based on 3 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Support for 101 Arduino Question Unfulfilled

The Jury is still out, sadly, despite the initial enthusiasm.

The simplest Arduino sketch reports (via Serial Monitor) no I2C data!???

The Person Sensor status LED duly lights up when an object is presented in front (including presumably faces).

A vanilla I2C sketch reports that an I2C device is present at the designated address.

What can a newbie do to avoid self-inflicted operator errors?

I guess try it on a Pico next and then of course on the grand daddy -RPi if I can buy without donating to scalpers.

Anyway, good introduction to Qwiic which will serve me well since I like small form factor JSTs and not the Gr___ size.

(Useful Sensors)Sorry you hit these problems!

After investigating, and some help from the community, we figured out that a lot of older Arduino boards have a 32 byte limit on I2C reads, and silently discard any bytes above that. Since we're reading 40 bytes of information, this caused the failure you saw. I've now checked in a fix that reads in smaller chunks to work around this limitation.

Thanks for your patience, and apologies again for the bug. I hope your explorations on the Pico went more smoothly.

Pete@Useful

2 of 2 found this helpful:

Novel sensor that works well under certain conditions

This novel sensor is a lot of fun to play around with. It performed as expected when using CircuitPython on a Pico (or Pico W) to detect a face and track its movement to change the position of a servo or a visual display (see example projects at: https://www.hackster.io/useful-sensors/products/person-sensor). I was also able to program it to distinguish between different faces (including large pictures of faces), although the accuracy/reliability would likely not be adequate for a security system. The main limitations I saw were that it performed less reliably in low light and that its range is only a couple of meters. The orientation of the sensor relative to the person’s face also makes a big difference, especially when trying to distinguish between different faces. It worked best when the face was well illuminated, within 1 meter, and looking directly at the sensor. When those conditions were met, it worked quite well.

1 of 1 found this helpful:

High Hopes?

Have high hopes for this small camera device, but ...

  1. Uses a SparkFun Qwiic connector for the i2c connection. That's fine but SparkFun doesn't seem to make a Qwiic connector to the (much more common) Dupont 2.54mm Pitch Connector cable or adapter.

  2. I would be willing to pay significantly more if Useful Sensors added more smarts to the module to make facial recognition more reliable.

  3. The camera mounts to the circuit board via a very small connector. Unfortunately I found that the camera separates from the circuit board too easily. I will attempt to put it back but don't have much expectation that I will be successful.

Having said this, I would still say that it is a good buy for $10. Just hoping that Useful Sensors sticks around as a company and version 2 takes into account some or all of the points above.

Feel free to reach out and submit a return ticket with us as well if you wish to go though with a replacement: https://www.sparkfun.com/returns

(Useful Sensors)I've been plagued by the loss of camera modules too! Sorry about that flaw in our design, for all future batches we'll be trying to add a small blob of glue to make them more secure, though it may be a few weeks before that new version is available. If you'd like replacement boards for any you've lost the camera modules to, you can always reach me through contact@usefulsensors.com. Thanks for your feedback, and patience!

Pete@Useful

  1. We sell this https://www.sparkfun.com/products/15081 has adapters of both F/M types, see other options here https://www.sparkfun.com/search/results?term=qwiic+cable

  2. I feel the same way. I have 3 of these and broke one of mine too.....I can't find the lens/camera(!) to even try and put it back on, but it's STILL worth at least $10 :-p