Seeed XIAO ESP32S3 Sense tiny board with camera, connected to laptop showing live object detection of a dog

Advanced

Build an Edge Object/Person Detector

SensorsIoT

Run real object and person detection directly on the board itself, no cloud API call per frame, no internet connection required at all. Genuine on-device AI, not a camera that just streams footage somewhere else to think.

1 real parts included

Total for this kit: 939.00 ฿

Doesn't include any order discount you may get at checkout.

What you'll need

Project Goal

This project runs a real, small object or person detection model directly on the board's own processor. That is genuinely different from a normal camera project: there is no video stream leaving the device, no cloud service doing the thinking, and no internet connection required at all. Every decision happens locally, on hardware small enough to fit on a keychain.

What the Board Does

One small board does everything: capture a frame from its onboard camera, run a lightweight detection model against it, and act on the result, all without sending a single byte off the device. The camera, microphone, and enough processing headroom to run real machine learning models all live on this one piece of hardware.

What On-Device Inference Actually Means

A model trained elsewhere, on a real computer, gets converted into a compact format small enough to run on this board, then loaded onto it permanently. From that point on, the board makes its own decisions, in real time, with no dependency on a live connection to anything.

Software and Library Concepts

Start with a pre-trained, ready-made detection model rather than training your own from scratch, this gets a real working detector running quickly and gives you a known-good baseline to compare against later if you do experiment with custom training.

Testing and Troubleshooting

  • Detection feels slow or laggy, this is normal for on-device inference compared to a cloud service, lower the camera's resolution or frame rate before assuming something is broken.
  • False detections in low light, camera-based models are sensitive to lighting quality, test in consistent, adequate light before judging accuracy.
  • The board won't flash or upload code, confirm the correct board profile is selected in your development environment, this specific board needs its own board definition, not a generic ESP32-S3 one.

Optional Upgrade

Add the onboard microphone into the mix for a combined vision-and-audio trigger, only alert when both a detected person AND a sound above a threshold happen together, cutting down on false alarms from either sensor alone.

Wiring

  • Seeed XIAO ESP32S3 Sense USB-C → PC/USB power — camera and microphone are onboard, no external wiring is required for this build

No breadboarding is needed here since the camera and microphone are built into this board.

The XIAO ESP32S3 Sense's onboard-camera and onboard-microphone SDK calls are specific to Seeed's own SDK/examples and change between firmware/SDK versions, so rather than guess at capture APIs, buffer handling, or model-inference calls that might not match your installed SDK, the code below is limited to a genuinely safe, real bring-up sanity check confirming the board boots and reports itself correctly.

For the actual person/object detection: use Seeed's own official Wiki examples for the XIAO ESP32S3 Sense (camera + mic example sketches), their SenseCraft AI tool for no-code/low-code model deployment, or Edge Impulse (a real, genuine toolchain that officially supports this exact board) to train and deploy a person/object detection model to it. Those are the correct, honest source of the camera/mic/inference API calls for this board.

Starter Code

// Bring-up sanity check only — confirms the board boots and identifies itself.
// For camera/mic capture and person/object detection, use Seeed's official
// XIAO ESP32S3 Sense Wiki examples, SenseCraft AI, or Edge Impulse — do not
// rely on invented camera/inference API calls for this board.

void setup() {
  Serial.begin(115200);
  delay(1000);

  Serial.println("XIAO ESP32S3 Sense bring-up check");
  Serial.print("Chip model: ");
  Serial.println(ESP.getChipModel());
  Serial.print("Chip revision: ");
  Serial.println(ESP.getChipRevision());
  Serial.print("Free heap: ");
  Serial.println(ESP.getFreeHeap());
}

void loop() {
  Serial.println("Board alive — proceed with Seeed's official camera/mic examples for detection code");
  delay(2000);
}

Not sure about a step? Ask us