{"id":20690822,"url":"https://github.com/deniscooper09/automatic_feeder","last_synced_at":"2026-04-27T05:33:30.940Z","repository":{"id":219171144,"uuid":"748354833","full_name":"DenisCooper09/automatic_feeder","owner":"DenisCooper09","description":"Automatic feeder for cats.","archived":false,"fork":false,"pushed_at":"2024-08-06T12:54:40.000Z","size":13826,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-19T13:47:44.754Z","etag":null,"topics":["atmega328p","avr","c","cpp","embedded","esp","internet-of-things","nodemcu-esp8266"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DenisCooper09.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-25T19:53:01.000Z","updated_at":"2024-08-06T12:54:44.000Z","dependencies_parsed_at":"2024-04-21T17:07:23.136Z","dependency_job_id":"4dea6cc5-3233-486c-a63c-10c3bedbbc94","html_url":"https://github.com/DenisCooper09/automatic_feeder","commit_stats":null,"previous_names":["deniscooper09/automatic_feeder"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/DenisCooper09/automatic_feeder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenisCooper09%2Fautomatic_feeder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenisCooper09%2Fautomatic_feeder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenisCooper09%2Fautomatic_feeder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenisCooper09%2Fautomatic_feeder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DenisCooper09","download_url":"https://codeload.github.com/DenisCooper09/automatic_feeder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenisCooper09%2Fautomatic_feeder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32324546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["atmega328p","avr","c","cpp","embedded","esp","internet-of-things","nodemcu-esp8266"],"created_at":"2024-11-16T23:14:31.708Z","updated_at":"2026-04-27T05:33:25.922Z","avatar_url":"https://github.com/DenisCooper09.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automatic Feeder\nAutomatic feeder for cats.\n\n## Features\n- Web control panel.\n- Anti-stuck system.\n- ~1 litre tank for cat food.\n\n## Future Features\n- Feeding schedule.\n- Feeding amount in grams.\n- Worldwide control via MQTT protocol.\n- Android/IOS app for controlling the feeder.\n\n## Components\n- 1x ATmega328P (arduino nano)\n- 1x ESP8266\n- 1x DVR8825 (driver)\n- 1x NEMA17 (stepper motor)\n- 1x RTC DS1307 (real time clock)\n- 1x DC plug 2mm\n- 2x 220Ω resistors\n- 2x 3mm leds\n- 1x v7805 (voltage regulator)\n- 3x 470µF 16v capacitors\n- 1x 10µF 6.3v capacitor\n- 1x HDR-2.54 female 1x4\n\n## Schematic\n![Schematic](https://github.com/DenisCooper09/automatic_feeder/blob/main/schematic/Schematic_AutomaticFeeder_2023-12-08.svg)\n\n## PCB\n![PCB_top](https://github.com/DenisCooper09/automatic_feeder/blob/main/pcb/images/photo_view/PCB_AutomaticFeeder_Photo_View_Top.svg)\n![PCB_bottom](https://github.com/DenisCooper09/automatic_feeder/blob/main/pcb/images/photo_view/PCB_AutomaticFeeder_Photo_View_Bottom.svg)\n\n## Firmware settings\n\n### Internet connection\n\n```c++\n#define WIFI_SSID \"wifi_network_name\"\n#define WIFI_PASSWORD \"wifi_password\"\n```\n\nReplace **wifi_network_name** with your wifi network name and **wifi_password** with your password.\n\n\u003e [!NOTE]\n\u003e You can connect to web control panel by entering ESP's IP address into your browser.\n\u003e Here is an instruction how to find ESP's IP address:\n\u003e 1. Connect ESP to a computer via USB.\n\u003e 2. Open serial monitor.\n\u003e 3. Restart ESP and you should see IP address being printed in serial monitor.\n\n### Motor configuration\n\n```c\n#define SM_IMPULSE_DELAY 30\n#define SM_FORWARD_STEPS 100\n#define SM_BACKWARD_STEPS 94\n#define SM_MICRO_STEPS MICRO_STEPS_32\n#define SM_DIRECTION CLOCKWISE\n```\n\n**SM_IMPULSE_DELAY** - delay in microseconds before sending signal to driver. (Speed of motor)\n\n**SM_FORWARD_STEPS** and **SM_BACKWARD_STEPS** - these are used for anti-stuck system.\nIntead of rotating all the time forward motor makes **SM_FORWARD_STEPS** steps forward and **SM_BACKWARD_STEPS** steps backward.\nThis makes motor vibrate (if frequency (AKA **SM_IMPULSE_DELAY**) is small enough and motor is in microstepping mode), so pieces of cat food can't be stuck. \n\u003e [!CAUTION]\n\u003e Make sure that ***SM_FORWARD_STEPS* \u003e *SM_BACKWARD_STEPS***\n\n**SM_MICRO_STEPS** - number of microsteps per one full step. Enum values:\n\n```c\nenum MOTOR_MICRO_STEPS {\n    FULL_STEP,\n    MICRO_STEPS_2,\n    MICRO_STEPS_4,\n    MICRO_STEPS_8,\n    MICRO_STEPS_16,\n    MICRO_STEPS_32\n};\n```\n\n**SM_DIRECTION** - direction of motor rotation. Enum values:\n\n```c\nenum MOTOR_DIRECTION {\n    ANTI_CLOCKWISE,\n    CLOCKWISE\n};\n```\n\n\u003e [!TIP]\n\u003e If motor rotates in wrong direction (screw moves cat food towards motor) then just reverse motor direction in code!\n\n## Gallery\n\n\u003e [!NOTE]\n\u003e Photos were took while development so, circuit is assembled on a breadboard, not on PCB.\n\n![Photo0](https://github.com/DenisCooper09/automatic_feeder/blob/main/images/AutomaticFeeder000.jpg)\n![Photo2](https://github.com/DenisCooper09/automatic_feeder/blob/main/images/AutomaticFeeder002.jpg)\n![Photo17](https://github.com/DenisCooper09/automatic_feeder/blob/main/images/AutomaticFeeder017.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeniscooper09%2Fautomatic_feeder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeniscooper09%2Fautomatic_feeder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeniscooper09%2Fautomatic_feeder/lists"}