All projects

Edge AI & hardware

Luckfox PicoCam

Open IP-camera firmware with on-board AI.

Firmware for the Luckfox Pico family (RV1103/RV1106): web portal, RTSP/ONVIF streaming, recording and NPU-powered detection such as ANPR, on a board the size of a stamp.

PicoCam live view with AI boxes (a stock photo as demo scene)

Why I built it

The demo app that ships with these boards proves the camera works, and not much more. I wanted a real IP camera on a tiny, cheap board, with AI running on the board itself and no cloud account.

Architecture

How it fits together

Sensor

  • Camera module

    detected automatically

On the board

  • Encoder and streams

  • NPU detection

    people, vehicles, plates, faces

  • Event engine

    zones, line counting

  • Watchdog and rollback

Out

  • Browser live view

    about 0.3 s delay

  • RTSP and ONVIF

    works with NVRs

  • SD-card recording

  • Alerts

    Telegram, MQTT, webhooks

Screenshots

See it in use

Documentation

From the README

Open on GitHub

PicoCam turns a Luckfox Pico board and a camera module into a complete IP camera. It replaces the demo camera app with one small program and a modern web page: live video, recording, motion alerts and AI that runs on the board itself (people, vehicles, number plates, faces). No cloud, no account, no subscription.

The live view in demo mode. The street is a stock photo (Vlad Fonsark, Pexels) with fictional number plates, not footage from a PicoCam.

What you get

  • Live view in your browser with about 0.3 s delay, on desktop and phone, with boxes and zones drawn over the video
  • Standard streams for any player or recorder: RTSP, ONVIF (NVRs find it), JPEG snapshots, REST API
  • AI on the camera's NPU: people and vehicles, number plates (ANPR), face recognition, line counting, intrusion zones. Ready-made models included; bring your own if you like
  • Alerts where you are: Telegram, email, webhooks, MQTT (with Home Assistant), FTP, a relay output. Events are queued and retried if the network drops
  • Recording to an SD card by event, schedule or continuously, with a timeline player
  • Works on the whole Luckfox Pico family: it detects your chip, memory, flash type (SPI NAND / eMMC / SD) and camera module by itself, and protects small flash from wear
  • Hard to break: hardware watchdog, automatic rollback of a bad update, last-known-good settings, an install you can undo in one command

Install in three steps

  1. Flash the standard Luckfox Buildroot image onto your board, if it is not already on it. (How, with every detail)

  2. Connect it to your PC with the USB cable (the board is then 172.32.0.93) or an Ethernet cable. (Details and drivers)

  3. Run the installer. It downloads the latest release and installs it. Password: luckfox.

    Windows (PowerShell)Linux / macOS / WSL / Git Bash
    .\picocam\tools\deploy.ps1picocam/tools/deploy.sh
    .\picocam\tools\deploy.ps1 -Board 192.168.1.64picocam/tools/deploy.sh -b 192.168.1.64

Then open http://172.32.0.93/ (or your board's address), choose an admin password and follow the four-step wizard. No compiler, no Docker. Little flash on your board? Add -Lite / --lite. Back to the stock firmware at any time: sh /oem/picocam/uninstall.sh && reboot.

The full guide, with the steps for every operating system and what to do when something does not match, is in docs/INSTALL.md.

Documentation

|---|---| | Install guide | Flashing, connecting, installing, first start, updating | | User guide | Every page of the web portal with pictures | | Connecting other software | VLC, NVRs, Frigate, Home Assistant, alerts, the API | | EdgeAI server API | REST + webhooks for faces, people, vehicles and plates, with images (OpenAPI spec included) | | AI models | The ready-made models, adding your own | | Boards | Which boards, flash types, what is verified | | FAQ | Short answers | | Troubleshooting | "It does not work": every case we know, with the fix | | Building from source | For developers |

The same pages are on the project's Wiki.

Which boards?

One package serves every board. While running, the firmware detects the chip, RAM, boot flash, Ethernet/Wi-Fi and the camera module, shows them under System, and sets its limits from them.

FamilyChipTypical
Pico, Pico Mini, Pico Plus ...RV110364-128 MB RAM; Ethernet on the Plus; SPI NAND or SD
Pico Pro, Pico Max, Pico Ultra ...RV1106256 MB RAM; Ethernet; SPI NAND / eMMC / SD

Verified on real hardware so far: Luckfox Pico and Pico Plus with the SC3336 3 MP module. Other boards run the same code but are not yet confirmed: please send a board report. Details: docs/BOARDS.md.

Try the web UI without a board

cd picocam/web && npm ci && npm run build && npm run mock      # then open http://localhost:8099/

A pretend camera with made-up data (all screenshots in this repository come from it; the street picture is a stock photo, not PicoCam footage).

Repository map

PathWhat
picocam/firmware (C++), web portal (Preact), board scripts, installers
docs/the documentation above
models/, ocr/scripts to train and convert AI models (ONNX to RKNN)
server/, web/optional EdgeAI receiver (Go) and its dashboard for collecting events from many cameras
docker/the optional build/conversion image

Releases are built automatically by GitHub Actions when a version tag is pushed (release.yml).

Edge AI & hardware

More like this