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 / about 10 months ago * / 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 10 months 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 9 months 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 / last year / 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 10 months 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 / last year / 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

    • Member #1742191 / last year / 2

      The 7-bit wire address is 0x62. Note that on some boards the lowest bit (read/write) is included, making the address 0xC4. See this document for the I2C API.

  • TheRealTonyStark / last year / 2

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

    • Member #498212 / last year / 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 10 months 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.2 out of 5

Based on 10 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

1 of 1 found this helpful:

Bought 3, Only 1 Works

I bought one a few weeks ago, but it seemed a bit flaky (hit-and-miss on the face detection), so I bought two more, under the assumption that the camera module might be faulty (dead pixels, out of focus, etc). The other two arrived today, and both failed to work at all. Swapping the camera module from the first one to the other two (the camera module is only held in place by its connector) caused them to work, oddly enough.

So, by the looks of it, I've got three working sensor boards but only one functional camera. If I could figure out where to get the cameras (appear to be Arducam PY122), I could possibly repair the two non-functional sensors, but I haven't been able to track down that particular product yet.

Now, granted, Either FedEx or USPS might be to blame here. The shipment of the two latter sensors arrived with a sticker on the box indicating that the package had to be re-barcoded due to damage in transit. It's entirely possible that the camera modules were also damaged during shipment.

Still a fairly disappointing experience, overall.

(Useful Sensors)Sorry to hear about the mechanical issues! For the next batch of sensors we've actually glued them in place to try and avoid this problem. If you contact us at contact@usefulsensors.com we'd be happy to send you replacement boards. Thank you for your patience and feedback!

Incredibly easy to use - remarkable for this price

Works reliably event in low light. The inference struct is well thought out. Expect to code in some simple logic to filter out low confidence false positives. Runs 1 inference every 200ms so roughly 5 FPS.

Amazed that this exists!

This is so cool. I've only just started using this little wonder, but now I want to incorporate it everywhere, especially in my smart home projects!

Pretty okay

The sensor works fine and the detection rate is good for adults but didn't do too good for children. My only problem was the sensor came with the camera plugged in the wrong orientation and not fully seated in

Worked for me

I wish they didn’t have a proprietary cable for the device. I just peeled the connector housing apart and soldered wire leads directly to the board. The sensor works well under normal lighting conditions. Once there is a bright backdrop it may flare out the camera picture and not get a good detection and/or tracking (understandably for a pinhole camera). It was easy to connect to an arduino, find the library and heading to compile to my sketch.

The "eyes" have it...

Bought this to try out for control of an animatronic eye mechanism. The person sensor worked flawlessly after following instructions from YouTube channel "Workshop Nation". Incredible price for what used to be rather tricky tech - but is now plug and play. Here is a video of my test on first power up. https://youtu.be/ernsnKQk_5Q

Great little sensor!

I used one of these to create a "Look at Me Light Switch." (https://blog.arduino.cc/2023/03/08/turn-your-lights-on-and-off-by-staring-at-this-little-robotic-switch/) I've just scratched the surface of the capabilities of this device. For face detection at low cost and in simple form, then this is probably the best thing available.