{"id":19938772,"url":"https://github.com/raphaelbs/esp32-cam-ai-thinker","last_synced_at":"2026-01-28T15:30:42.070Z","repository":{"id":53757882,"uuid":"164351902","full_name":"raphaelbs/esp32-cam-ai-thinker","owner":"raphaelbs","description":"Informations and examples about A.I. Thinker ESP32-CAM using ESP-IDF","archived":false,"fork":false,"pushed_at":"2024-01-30T04:20:56.000Z","size":9927,"stargazers_count":495,"open_issues_count":18,"forks_count":106,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-03-01T12:49:05.371Z","etag":null,"topics":["ai-thinker","esp-32","esp-idf","esp32-cam"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raphaelbs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-06T22:42:12.000Z","updated_at":"2025-02-27T05:37:29.000Z","dependencies_parsed_at":"2025-01-12T04:07:02.401Z","dependency_job_id":"cc171732-b48a-4d2d-ac5c-7739236173c0","html_url":"https://github.com/raphaelbs/esp32-cam-ai-thinker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/raphaelbs/esp32-cam-ai-thinker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelbs%2Fesp32-cam-ai-thinker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelbs%2Fesp32-cam-ai-thinker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelbs%2Fesp32-cam-ai-thinker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelbs%2Fesp32-cam-ai-thinker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raphaelbs","download_url":"https://codeload.github.com/raphaelbs/esp32-cam-ai-thinker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelbs%2Fesp32-cam-ai-thinker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28846337,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-thinker","esp-32","esp-idf","esp32-cam"],"created_at":"2024-11-12T23:41:56.203Z","updated_at":"2026-01-28T15:30:42.052Z","avatar_url":"https://github.com/raphaelbs.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP32-CAM - A.I. Thinker\n\n![Build with PlatformIO](https://img.shields.io/badge/build%20with-PlatformIO-orange?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMjUwMCIgaGVpZ2h0PSIyNTAwIiB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZD0iTTEyOCAwQzkzLjgxIDAgNjEuNjY2IDEzLjMxNCAzNy40OSAzNy40OSAxMy4zMTQgNjEuNjY2IDAgOTMuODEgMCAxMjhjMCAzNC4xOSAxMy4zMTQgNjYuMzM0IDM3LjQ5IDkwLjUxQzYxLjY2NiAyNDIuNjg2IDkzLjgxIDI1NiAxMjggMjU2YzM0LjE5IDAgNjYuMzM0LTEzLjMxNCA5MC41MS0zNy40OUMyNDIuNjg2IDE5NC4zMzQgMjU2IDE2Mi4xOSAyNTYgMTI4YzAtMzQuMTktMTMuMzE0LTY2LjMzNC0zNy40OS05MC41MUMxOTQuMzM0IDEzLjMxNCAxNjIuMTkgMCAxMjggMCIgZmlsbD0iI0ZGN0YwMCIvPjxwYXRoIGQ9Ik0yNDkuMzg2IDEyOGMwIDY3LjA0LTU0LjM0NyAxMjEuMzg2LTEyMS4zODYgMTIxLjM4NkM2MC45NiAyNDkuMzg2IDYuNjEzIDE5NS4wNCA2LjYxMyAxMjggNi42MTMgNjAuOTYgNjAuOTYgNi42MTQgMTI4IDYuNjE0YzY3LjA0IDAgMTIxLjM4NiA1NC4zNDYgMTIxLjM4NiAxMjEuMzg2IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTE2MC44NjkgNzQuMDYybDUuMTQ1LTE4LjUzN2M1LjI2NC0uNDcgOS4zOTItNC44ODYgOS4zOTItMTAuMjczIDAtNS43LTQuNjItMTAuMzItMTAuMzItMTAuMzJzLTEwLjMyIDQuNjItMTAuMzIgMTAuMzJjMCAzLjc1NSAyLjAxMyA3LjAzIDUuMDEgOC44MzdsLTUuMDUgMTguMTk1Yy0xNC40MzctMy42Ny0yNi42MjUtMy4zOS0yNi42MjUtMy4zOWwtMi4yNTggMS4wMXYxNDAuODcybDIuMjU4Ljc1M2MxMy42MTQgMCA3My4xNzctNDEuMTMzIDczLjMyMy04NS4yNyAwLTMxLjYyNC0yMS4wMjMtNDUuODI1LTQwLjU1NS01Mi4xOTd6TTE0Ni41MyAxNjQuOGMtMTEuNjE3LTE4LjU1Ny02LjcwNi02MS43NTEgMjMuNjQzLTY3LjkyNSA4LjMyLTEuMzMzIDE4LjUwOSA0LjEzNCAyMS41MSAxNi4yNzkgNy41ODIgMjUuNzY2LTM3LjAxNSA2MS44NDUtNDUuMTUzIDUxLjY0NnptMTguMjE2LTM5Ljc1MmE5LjM5OSA5LjM5OSAwIDAgMC05LjM5OSA5LjM5OSA5LjM5OSA5LjM5OSAwIDAgMCA5LjQgOS4zOTkgOS4zOTkgOS4zOTkgMCAwIDAgOS4zOTgtOS40IDkuMzk5IDkuMzk5IDAgMCAwLTkuMzk5LTkuMzk4em0yLjgxIDguNjcyYTIuMzc0IDIuMzc0IDAgMSAxIDAtNC43NDkgMi4zNzQgMi4zNzQgMCAwIDEgMCA0Ljc0OXoiIGZpbGw9IiNFNTcyMDAiLz48cGF0aCBkPSJNMTAxLjM3MSA3Mi43MDlsLTUuMDIzLTE4LjkwMWMyLjg3NC0xLjgzMiA0Ljc4Ni01LjA0IDQuNzg2LTguNzAxIDAtNS43LTQuNjItMTAuMzItMTAuMzItMTAuMzItNS42OTkgMC0xMC4zMTkgNC42Mi0xMC4zMTkgMTAuMzIgMCA1LjY4MiA0LjU5MiAxMC4yODkgMTAuMjY3IDEwLjMxN0w5NS44IDc0LjM3OGMtMTkuNjA5IDYuNTEtNDAuODg1IDIwLjc0Mi00MC44ODUgNTEuODguNDM2IDQ1LjAxIDU5LjU3MiA4NS4yNjcgNzMuMTg2IDg1LjI2N1Y2OC44OTJzLTEyLjI1Mi0uMDYyLTI2LjcyOSAzLjgxN3ptMTAuMzk1IDkyLjA5Yy04LjEzOCAxMC4yLTUyLjczNS0yNS44OC00NS4xNTQtNTEuNjQ1IDMuMDAyLTEyLjE0NSAxMy4xOS0xNy42MTIgMjEuNTExLTE2LjI4IDMwLjM1IDYuMTc1IDM1LjI2IDQ5LjM2OSAyMy42NDMgNjcuOTI2em0tMTguODItMzkuNDZhOS4zOTkgOS4zOTkgMCAwIDAtOS4zOTkgOS4zOTggOS4zOTkgOS4zOTkgMCAwIDAgOS40IDkuNCA5LjM5OSA5LjM5OSAwIDAgMCA5LjM5OC05LjQgOS4zOTkgOS4zOTkgMCAwIDAtOS4zOTktOS4zOTl6bS0yLjgxIDguNjcxYTIuMzc0IDIuMzc0IDAgMSAxIDAtNC43NDggMi4zNzQgMi4zNzQgMCAwIDEgMCA0Ljc0OHoiIGZpbGw9IiNGRjdGMDAiLz48L3N2Zz4=)\n\nThe goal of this repository is to centralize information and examples for the ESP32-CAM A.I. Thinker.\n\n[Read the board and periferals specifications here.](./docs/about-esp32-cam.md)\n\n\u003e \u003cimg src=\"https://www.open-electronics.org/wp-content/uploads/2018/10/ESP32-CAM.jpg\" width=\"auto\" height=\"200\" alt=\"ESP32-CAM - A.I. Thinker\" /\u003e\u003cbr/\u003e\n\u003e ESP32-CAM A.I. Thinker usually sells with OV2640 sensor\n\n# Examples\n\n\n\n- [Detect changes and take pictures](./examples/change_detection)\n- [Store pictures using Firebase (Google Storage)](./examples/google_storage)\n- [Store pictures in SD](./examples/sd_jpg)\n- [JPG via Http server](./examples/http_jpg)\n\n## Running with PlatformIO\n\nTo run the examples, make sure to have `PlatformIO` installed. If you haven't, refer to [this tutorial](https://platformio.org/install/ide?install=vscode).\n\n![Building with PlatformIO](./assets/using-with-platformio.gif)\n\n# Flashing\n\n## Requirements\n\nTo flash the board you need a USB to TTL dongle.\n\nAlso it is very important to **use a external power supply**. USBs usually do not provide sufficient current which makes the board loops `brownout` errors.\n\n## Wiring\n\n\u003e ![schematics to wire the board](./assets/Wiring-with-usb-ttl.png)\u003cbr /\u003e\n\u003e Diagram to wire the board\n\n## Instructions\n\nWhen flashing:\n\n1. turn the board down\n2. hold the reset button (short `GPIO0` to `GND`)\n3. turn the board on\n\nWhen booting to run your sketch, keep `GPIO0` open.\n\nThis board also has a built in reset button.\n\n# Capabilities\n\nThis board and the included OV2640 can acomplish the following:\n\n- External 64MBit PSRAM ([IPUS IPS6404](./assets/IPUS_IPS6404_Datasheet.pdf))\n- Embeed flash light\n- Sd Card\n  - mount using FatFS\n- Ov2640\n  - Native resolutions:\n    - UXGA\n    - SVGA\n    - CIF\n  - Gain control\n  - Balance control\n  - Windowing\n    - Zoom and panning modes\n    - Sub-sampling mode\n      - Svga\n      - Cif\n  - Frame exposure mode\n  - Output formatter\n    - Scaling image output\n  - Power down mode\n  - Strobe (flash control)\n\n# Contributions\n\nThe roadmap for this repository is to implement examples uppon the capabilities of the board.\n\nFeel free to open issues, describe bugs, suggest new examples and implementations.\n\nI'll be reviewing and accepting PR's.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphaelbs%2Fesp32-cam-ai-thinker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraphaelbs%2Fesp32-cam-ai-thinker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphaelbs%2Fesp32-cam-ai-thinker/lists"}