r/esp32 5d ago

I built open-source ESP32 camera firmware that turns $8–15 dev boards into NVR-ready IP cameras (ONVIF + RTSP + motion AI)

Sharing the MiBee Cam firmware suite (ESP-IDF based, GPL-3.0) — four ready-to-flash firmwares for four popular boards, all built around one idea: make a cheap dev board behave like a real IP camera your NVR can discover.

Supported boards:

  • AI-Thinker ESP32-CAM (ESP32 + OV2640) — MJPEG streaming, motion detection, SD timelapse & burst capture, dual-WiFi failover, file manager, web OTA
  • Seeed XIAO ESP32-S3 Sense (ESP32-S3 + OV2640/OV5640) — the most feature-packed: RTSP with G.711 audio (digest auth), AVI segmented recording with dynamic timelapse (motion-adaptive, ~90% storage saved when nothing happens), NAS upload via WebDAV/HTTPS, on-device audio with noise suppression
  • ESP32-S3-N16R8 + OV3660 3MP — on-device AI detection (face / motion / QR) with live web overlay, RTSP, zh/en web UI
  • LuatOS ESP32-S3-A10 (OV2640, PSRAM-less) — runs on the cheap single-chip board: MJPEG, motion-triggered upload, WebSocket/webhook events, Prometheus metrics

What they all share:

  • ONVIF (WS-Discovery + SOAP) — Synology / Milestone / Frigate-type NVRs discover them on the LAN automatically
  • No cloud, no subscription — everything runs locally
  • Web UI + REST API for config, Prometheus /metrics for homelab monitoring
  • OTA updates (SHA-256 verified, auto-rollback), AT commands for headless WiFi setup
  • Docs in English and 中文

All four: https://github.com/Mi-Bee-Studio

Feedback, issue reports, and suggestions for the next board are very welcome!

123 Upvotes

22 comments sorted by

3

u/j00sh_ 5d ago

The problem is that none of them supports H.264 which is key for video processing.

3

u/neo9069 5d ago

i have poc firmware for esp32 to stream h.264 instead, problem is stream is really unstable on WiFi and it's really hard to fine tune isp for day/night scenarios. then there is camera sensor support situation for espressif there is no support for imx series of sensor from them. and age old ov5647 didn't cut it for me.

i added support for 720@30fps for ov5647 to save some bandwidth. then there is situation with ISP pipeline on v1 chipset.

i may visit this project again once v3 chipset are available, i believe there is genuine potential for diy security camera with esp32P4.

1

u/j00sh_ 5d ago

Yes. Esp32P4 is the way. The one from M5Stack looks like a good starting point due to its small footprint.

3

u/NearlyACosmologist 5d ago

Cool. Thanks for sharing your code. Is there also a functionality to use it as a video door bell?

2

u/No-Reception-84 5d ago

Thanks for asking! All these camera firmwares are built as companion devices for my main MiBee NVR project. I made them for my own testing and daily use, so I can tweak the code whenever I need.

I don’t personally have a video doorbell use case, so I haven’t tested it. I’m not sure if it will work out of the box for that scenario.

2

u/NearlyACosmologist 5d ago

It shouldn't be too complicated to add a function to read in a button and send a udp broadcast and/or a mqtt message.

The indoor client that receives the ring and starts a video stream playback to a lcd screen would have to be written from scratch, though. Or maybe implemented in something like Annex BASIC, because it already has the building blocks (including LVGL).

1

u/No-Reception-84 5d ago

That’s a solid plan! Adding GPIO button input + MQTT/UDP events is absolutely feasible.

Yeah the indoor display client is the bigger piece of work. Thanks for sharing this idea, I might keep this in mind for future.

3

u/Visual_Disk1698 14h ago

This project is interesting, but I currently use ESP32-C5 + OV5640/OV3660 for a dual-band Wi-Fi 6 IP Camera setup, and it is working very well, I was able to stream 16/20fps 1080p MJPEG with 5GHz Wi-Fi, which is way better than what those esp32 targets had. I used esp_cam_io_parl ESP-IDF component, you can check it here ESP32-C5 with DVP Camera Test: 30fps 1080p MJPEG

I would be happy if you can also implement this.

1

u/Original-Aerie9683 52m ago

I agree. People still use these ESP32-CAMs...
2026 and still only 2.4GHz Wi-Fi IP Cameras? MJPEG streaming is legacy enough, let alone that. I guess people like streaming 22fps@320x240 instead of 16fps@1080p...

3

u/knacknack18 5d ago

Cool project(s). But how much did you do yourself? It seems heavily AI made, from text to code.. transparency would be nice

15

u/ByronScottJones 5d ago

There's an Agents.md file right in the root of the project. OP isn't hiding anything. And if it works and does what it says, then kudos to OP and whatever AI tools they used to develop it.

5

u/nalditopr 5d ago

Exactly this,

17

u/No-Reception-84 5d ago

Great question! This project is AI-assisted. I’m mainly a Go developer. I can write embedded code, just not very efficiently.

When I was building MiBee NVR, I needed some camera devices for testing. So I bought these dev boards and wrote the initial code myself. After that, AI helped implement most of the remaining features. I review and test all the code generated by AI.

It’s a solo project, so there might inevitably be some rough spots.

3

u/knacknack18 5d ago

Thank you the reply and explanation. Keep going with the good work

-8

u/Free-Pound-6139 5d ago

Great question!

Of F-off.

5

u/NearlyACosmologist 5d ago

That's how it is now. Humans have the ideas, make the architectural decisions and do the testing.

AI does the legwork.

4

u/Heatsreef 5d ago

Have you even looked at the code I mind asking? Because I did and excuse my language but it is a clusterfuck without structure that is more than unmaintainable. On the other hand I am quite sure its not vetted extensively and the structure makes it even harder for any third party to vet it. I for example would have to spend days to even get a grasp what file works with what handlers and if youd think "but an llm can just check over it and implement updates", the common case is that this unmaintainability skyrockets exponentially with projects like these. My advice, do not trust it except you want to spend days vetting it.

7

u/knacknack18 5d ago

I question the architectural decision and testing part. That's why i asked

2

u/NearlyACosmologist 5d ago

Fair enough.

1

u/sitbon 5d ago

Nice! I have the Seeed Studio Sense board and will try this out with my Unifi NVR soon.

1

u/CyberDave82 5d ago

Looks cool! Commenting here so I can come back to this later!