Skip to main content
Created By: Roni Bandini Public Project Link: https://studio.edgeimpulse.com/studio/1026144 GitHub Repository: https://github.com/ronibandini/AI-Asset-Protection Video: https://www.youtube.com/watch?v=k39ktwWaX1I 3D Parts: https://cults3d.com/en/3d-model/gadget/multimodal-ai-asset-protection-prototype License: MIT

Introduction

Not all technologies evolve at the same pace. Today we have fully autonomous vehicles such as Tesla and Waymo, yet many commercial alarm systems still rely on a single sensing modality: the Passive Infrared (PIR) sensor. A PIR sensor detects motion by measuring changes in infrared radiation emitted by surrounding objects. When a warm body moves across its field of view, the sensor produces a voltage change that can be interpreted as motion. While PIR sensors are inexpensive and widely deployed, they are also prone to false positives caused by environmental temperature fluctuations, electrical noise, reflections, or other sources of interference. Can a more reliable asset protection system be built combining computer vision, environmental sensing, and an AI agent running entirely on a low-cost single-board computer? This prototype is trained to recognize a valuable object—in this case, my old Omega wristwatch—using a custom object detection model created with Edge Impulse. A camera continuously monitors the watch while additional sensors provide context about the environment:
  • PIR motion sensor
  • RCWL-0516 microwave human presence sensor
  • MLX90614 infrared temperature sensor
The object detection model not only determines whether the watch is present, but also tracks its position within the camera frame. This information is combined with sensor readings and museum operating hours to create a richer understanding of the situation. OpenClaw evaluates the collected data and determines the appropriate response. Depending on the circumstances, it can:
  • Log the event
  • Notify maintenance personnel
  • Notify local security
  • Contact the authorities
For example, if the watch is no longer detected, its coordinates suddenly change, the museum is closed, and motion sensors indicate human presence, the system can classify the situation as a potential security incident. The entire prototype runs locally on a Rubik Pi 3, a compact 100 × 75 mm single-board computer equipped with a Qualcomm AI accelerator. No cloud processing is required for object detection or sensor monitoring.

System Architecture

The prototype combines three major components:
  1. Edge Impulse for object detection
  2. OpenClaw as the reasoning and decision-making agent
  3. A Python orchestration layer responsible for sensor acquisition and inference execution

Hardware

Rubik Pi 3

The Rubik Pi 3 is a powerful development board based on the Qualcomm Dragonwing™ QCS6490 platform. It is one of the first Raspberry Pi-style boards designed around a Qualcomm AI architecture, bringing edge AI capabilities to a compact and developer-friendly form factor.

Specifications

  • Qualcomm Dragonwing QCS6490
  • Dimensions: 100 mm × 75 mm
  • AI performance: up to 12 TOPS
  • Hexagon NPU
  • Adreno 643 GPU
  • 8 GB LPDDR4x RAM
  • 128 GB UFS 2.2 storage
The board supports Ubuntu, Debian, Android, and Qualcomm Linux.

Parts List

  • Thundercomm Rubik Pi 3
  • Active cooler
  • USB-C Power Delivery supply (12 V, 3 A)
  • Logitech USB webcam
  • PIR motion sensor
  • RCWL-0516 microwave sensor
  • MLX90614 infrared temperature sensor
  • 20 Dupont jumper wires

More About the Sensors

PIR: Detects motion by measuring changes in infrared radiation emitted by surrounding objects. RCWL-0516 microwave sensor: Unlike the PIR sensor, this is an active sensor that sends out a pulse of energy and detects changes in the return signal. It detects “any movement” from “any object” and does not rely on heat, making it more reliable in hot environments. MLX90614 infrared temperature sensor: It generates two temperature measurements: an object temperature and an ambient temperature. The object temperature is the non-contact measurement ‘observed’ from the sensor, while the ambient temperature measures the temperature on the die of the sensor. By monitoring the wristwatch’s surface temperature and comparing it with the ambient temperature, the MLX90614 can detect when a person touches, removes, or attempts to tamper with the exhibit.

Circuit

Temperature MLX90614 sensor SCL to GPIO 5 (540), SDA to GPIO 4 (551)
PIR sensor OUT to GPIO 105 (652)
MW Sensor RCWL-0516 OUT to GPIO 11 (558)

Enclosure

I have designed 2 parts for 3d printing. One support for the 3 sensors and a cover for the USB Camera. Print in PLA with Support.

Software Installation

Connect the power supply, USB webcam, and Ethernet cable to the Rubik Pi 3.
Check the assigned IP address and connect to the Rubik Pi through SSH using any SSH client such as PuTTY.
The default Ubuntu credentials were:
user: ubuntu pass: ubuntu
This project was developed using Canonical Ubuntu. Qualcomm Linux images may use different default credentials such as root / rubikpi. Next, install Edge Impulse and the required dependencies:
sudo apt update  
sudo apt-get install libportaudio2 libportaudiocpp0 portaudio19-dev \--break-system-packages  
pip3 install edge\_impulse\_linux \-i https://pypi.python.org/simple \--break-system-packages  
sudo apt install python3-pyaudio  
pip3 install "opencv-python\>=4.5.1.48,\<5" \--break-system-packages  
sudo apt install selinux-utils  
sudo apt install fswebcam \-y  
sudo apt install \-y sox libsox-fmt-all  
sudo apt install python3-smbus   
sudo apt install gpiod
Camera Setup
To verify that the webcam was correctly detected, run:
lsusb  
To verify that the device was registered as a video node:
ls /dev/video\*  
To test image capture:
fswebcam \-d /dev/video0 \-r 1280x720 \--no-banner test.jpg
To check the temperature sensor wiring:
i2cdetect \-a \-y \-r 1

Edge Impulse

The idea is to train a computer vision model of my old Omega Dynamic and deploy the model into the Rubik Pi so it will be able to tell whether the watch is in front of the camera and also the coordinates. So if the watch is moved for any reason, that information will be also fed to the AI agent along with 3 sensors data. For the entire machine learning cycle, I will use the Edge Impulse platform, which simplifies everything, from data acquisition to testing and deployment. Sign up at https://www.edgeimpulse.com/
Create a new project
Set up bounding boxes as the labeling method
Take at least 80 pictures of the object from different angles and under different lighting conditions
Upload the pictures from Data Acquisition Section
Go to Labeling Queue and specify where the object is Create an Impulse with image data (96 × 96 px), an image processing block, and an object detection learning block
Train the model starting with suggested parameters. In my case: 70 training cycles, 0.001 learning rate and 90/10 training/testing split.
You can also upload more samples and go to Testing section to make sure that the model behaves acceptably. Note: you can also clone my project from this URL https://studio.edgeimpulse.com/studio/1026144 To deploy the model Run sudo edge-impulse-linux-runner Log in to Edge Impulse and select the quantized model Note: You can download either the quantized version and the float32 versions of your model, but the Qualcomm NN accelerator only supports quantized models. If you select the float32 version, the model will run on CPU. Point the camera at the asset and make sure that it is being recognized. In my case I got 2ms inferences, which is amazing for a compact hardware such as the Rubik Pi 3. Example:
boundingBoxes 2ms. []
boundingBoxes 2ms. []
boundingBoxes 3ms. [{"height":8,"label":"watch","value":0.55859375,"width":8,"x":32,"y":40}]
boundingBoxes 3ms. [{"height":8,"label":"watch","value":0.703125,"width":8,"x":32,"y":40}]
If you assign a different label, change watch by your label inside the code.

OpenClaw

To install OpenClaw run curl \-fsSL https://openclaw.ai/install.sh | bash During the onboarding process you can configure any model/provider. I used OpenAI ChatGPT/Codex
You can also configure a Telegram or WhatsApp channel.
For Telegram, you will need a token and then pair it with: openclaw pairing approve telegram XXXXX Finally, copy the skill to

Code Settings

Open the runner.py Python script and edit the following settings:
\# ── Watch detection configuration ──────────────────────────────────────────────

WATCH\_DEFAULT\_X \= 32  
WATCH\_DEFAULT\_Y \= 40  
WATCH\_POSITION\_THRESHOLD\_PCT \= 20

\# Confidence threshold (0.0–1.0) to consider a detection valid  
CONFIDENCE\_THRESHOLD \= 0.85

\# ── Museum working hours ────────────────────────────────────────────────────────

\# Opening and closing time (24 h). Detections are interpreted differently  
\# depending on whether the museum is open or closed.  
MUSEUM\_OPEN\_HOUR  \= 9   \# 09:00  
MUSEUM\_CLOSE\_HOUR \= 18  \# 18:00

\# ── Temperature configuration ───────────────────────────────────────────────────

DEFAULT\_OBJECT\_TEMP  \= 22.0   \# expected display-case surface temp in °C (no wrist)  
DEFAULT\_AMBIENT\_TEMP \= 22.0   \# expected room temperature in °C  
TEMP\_THRESHOLD\_PCT   \= 15     \# alert if deviation exceeds this %

\# ── Output files ────────────────────────────────────────────────────────────────

STATUS\_FILE \= "watch\_status.txt"  
LOG\_FILE    \= "watch\_log.csv"
Then upload it to the root directory and create a crontab entry to execute it at startup.

Operation

Now you can just write to the Agent using Telegram in natural language or ask the Agent to make routine inspections.

Troubleshooting

If the runner shows no output on screen, check the output.txt, it could be that the runner requires login, usb cam not recognized, etc

Final Notes

Asset security should not be limited to a PIR sensor and a manually monitored camera. As edge AI hardware becomes more powerful and accessible, sophisticated asset protection is no longer reserved for large institutions—it can be developed, customized, and deployed by makers, researchers, and small organizations alike.

Video

https://www.youtube.com/watch?v=k39ktwWaX1I

Files

https://studio.edgeimpulse.com/studio/1026144
https://github.com/ronibandini/AI-Asset-Protection
https://cults3d.com/en/3d-model/gadget/multimodal-ai-asset-protection-prototype

Contact

Roni Bandini https://www.linkedin.com/in/ronibandini/ https://docs.edgeimpulse.com/hardware/boards/thundercomm-rubikpi3
https://openclaw.ai/
https://www.sparkfun.com/infrared-thermometer-mlx90614.html
https://www.makerhero.com/img/files/download/RCWL0516-Datasheet.pdf
https://www.dfrobot.com/product-1140.html