Skip to the content
2 layers90 × 76 mmFeeder diagram, the printed circuit board in 3D

This is the repository that will contain the IOT project.

Size
90 × 76 mm
Copper layers
2
Thickness
1.6 mm
Parts
76
Nets
80
Pads
234
Tracks, vias
645, 1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
3 Dec 2025
Updated
7 Nov 2026

Overview

Feeder diagram is an open-source printed circuit board by Hanra-s-work, from the Hanra-s-work/cat_feeder repository on GitHub, published under the MIT licence. It is a 2-layer board of 90 × 76 mm with 76 parts on 80 nets, routed with 645 tracks and 1 via.

It is built around the WEMOS D1 MINI and WS2812B. Its parts include 34 capacitors, 30 diodes, 3 connectors, 2 ICs and 1 switch. It belongs with the ESP8266 boards of this library.

Main components

2

README

README.md

Cat Feeder — Docker Compose helper

This repository contains the backend for the Cat Feeder project and helper files to run it via Docker Compose.

This README explains how to start the compose stack, what components are required, which environment files the project uses, and provides simple examples for Linux and Windows.

Required components

Optional but recommended:

  • Add your user to the docker group to avoid using sudo for Docker commands (Linux).

Files of interest

  • start_compose.sh — POSIX shell script to start/stop the compose stack (Linux/macOS). Now contains Doxygen-style comments.
  • start_compose.bat — Windows batch equivalent. Also contains Doxygen-style comments.
  • docker/dockerfile.backend — Dockerfile used to build the backend image; now annotated with Doxygen-style header comments.
  • .env and sample.env — environment variables used by the server and the image build. Note: if the compose manifest references .env (or any other env files), Docker Compose expects them to exist and will fail if a referenced file is missing.
  • docker/.db.env, docker/.redis.env — service-specific env files referenced by the compose config. If the compose manifest references these files and they are missing, docker compose may fail to start the stack.

Generating documentation (Doxygen)

The repository includes Doxygen generation scripts and assets in doxygen_generation/ (this folder contains the Dockerfile, Doxyfile and helper scripts used to produce the documentation). The generated HTML output will be written to documentation/ by the generator. Handwritten/manual docs are maintained in manual_documentation/.

See manual_documentation/QUICK_START.md for the full quickstart. Key steps summarized here:

bash
# Make the generator scripts executable (one-time)
chmod +x doxygen_generation/generate_docs.sh doxygen_generation/make_documentation.sh

# Recommended: pull the prebuilt Doxygen image first (fast, ~3-4 minutes):
docker pull hanralatalliard/doxygen:latest || true

# Generate the docs (run from repository root). The script will attempt to pull the
# prebuilt image and will only build locally if necessary:
./doxygen_generation/generate_docs.sh

# Serve the generated HTML locally (preferred using Docker httpd):
docker run --rm --name Cat Feeder_docs -p 8080:80 \
 -v "$(pwd)/documentation/html":/usr/local/apache2/htdocs/:ro \
 httpd:2.4
# Open http://localhost:8080

# Notes:
# - If Docker requires root on your machine, prefix commands with `sudo`.
# - Building the Docker image locally may trigger a full LaTeX build; compiling
#   LaTeX/PDF artifacts from source can take several hours (~4h). Prefer pulling
#   the prebuilt image and build locally only as a last resort.

Environment variables

Important variables used at runtime include

  • DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_DATABASE — database connection
  • REDIS_PASSWORD, REDIS_SOCKET — redis connection
  • PORT, HOST — server bind settings (default: PORT=5000, HOST=0.0.0.0)
  • DEBUG — whether to launch the server in debug mode
  • LOG_SERVER_DATA, LOG_PATH, LOG_DATA — logging configuration

When running with Docker Compose, the compose file will pick up .env from the repository root and any additional env files referenced by the compose manifest (for example docker/.db.env or docker/.redis.env). If a referenced env file is missing, Docker Compose may fail. The included start_compose.sh script will create reasonable default env files (.env, docker/.db.env, docker/.redis.env) when first run to help avoid this problem.

How to start the Docker Compose stack

Choose the platform you're on.

Linux / macOS (recommended):

  1. Make sure Docker is installed and your user can access the Docker daemon. If not, run the script with sudo or add your user to the docker group.
  2. From the repository root run:
bash
chmod +x ./start_compose.sh && ./start_compose.sh

This script will:

  • check Docker and Compose availability
  • create .env, docker/.db.env, docker/.redis.env if missing
  • create docker/db/data and docker/redis/data directories if missing
  • run docker compose -f ./docker-compose.yaml down then
  • run docker compose -f ./docker-compose.yaml up --build

If your system does not allow running docker without sudo, the script will try to use sudo transparently and prompt for a password if needed.

Windows (PowerShell / CMD):

Run from repository root in a Command Prompt:

batch
start_compose.bat

The batch file mirrors the Linux script’s behavior, checks for Docker availability and launches the compose stack. On Windows, administrative privileges may be required depending on your Docker Desktop configuration.

Notes about the Dockerfile and scripts

  • docker/dockerfile.backend contains the image build logic. It builds a Python virtual environment inside the image, installs dependencies from requirements.txt, and creates a small launcher script to run the server.
  • start_compose.sh, start_compose.bat, and the Dockerfile now include Doxygen-style headers to make it easier to generate documentation or scan file metadata.

Troubleshooting

  • Permission denied while accessing Docker? Add your Linux user to the docker group:
bash
sudo usermod -aG docker $USER
# then re-login or run: newgrp docker
  • Docker Compose command not found? Install Docker Compose v2 (usually included in modern Docker Desktop/Engine) or install docker-compose separately.

  • If you changed PORT in .env and the container binding needs updating, verify docker-compose.yaml port mappings match your desired host port.

Contributions

Please visit CONTRIBUTING.md and COMMIT_CONVENTION.md to check the rules and norms of the repository.

Parts

76
QtyValueFootprintReferences
300.1uFPCM_SparkFun-Capacitor:C_0402_1005MetricC10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25 +14
30WS2812BPCM_SparkFun-LED:WS2812_2020D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +14
4MountingHole_2.1mmMountingHole:MountingHole_2.1mmhole1, hole2, hole3, hole4
3104_CeramicCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC2, C3, C4
147uF_10VCapacitor_THT:CP_Radial_D4.0mm_P1.50mmC1
1600 Ohm, 1AInductor_SMD:L_6.3x6.3_H3L1
16V/0.5A/1APCM_SparkFun-Fuse:0805F1
1CK_KMS2xxGPButton_Switch_SMD:SW_SPST_Omron_B3FS-105xPSW1
1HC-05_Bluetooth_ModulePCM_SL_Breakout_Boards:HC-05_Bluetooth_ModuleU2
1ServoPort_01_kibble_trayPCM_SL_Connectors:ServoPort_01_VerticalJ2
1ServoPort_02_Food_trapPCM_SL_Connectors:ServoPort_01_VerticalJ3
1USB_AConnector_USB:USB_A_Connfly_DS1095J1
1WEMOS_D1_miniRF_Module:WEMOS_D1_mini_lightU1

More from Hanra-s-work/cat_feeder

1
  • 2 layers60 × 33 mmDiagram wirering, the printed circuit board in 3D

    Diagram wirering

    Hanra-s-work/cat_feeder

    This is the repository that will contain the IOT project.

    22 partsMIT

Similar boards

  • 2 layers199.4 × 50.8 mmNixie board, the printed circuit board in 3D

    Nixie board

    vascofazza/cloxie_nixie_clock

    Schematics and code for Cloxie: my Nixie Tube Clock.

    85 parts17GPL-3.0
  • 2 layers86 × 44.5 mmKiwi EasyBoardv1.2, the printed circuit board in 3D

    Kiwi EasyBoardv1.2

    SWAT-engineering/kiwi-air-monitor

    Kiwi monitor is an open source CO2/Humidity/Temperature sensor intended for monitoring the quality of the air in a room. Kiwi was created to support teachers with a notification to ventilate their classroom.

    21 parts10GPL-3.0
  • 2 layers37c3PCBLEDC100R Rev.1, the printed circuit board in 3D

    37c3PCBLEDC100R Rev.1

    c3re/37c3PCBLEDC100R

    Solder-Kit with some LEDs. Can also be used as a coaster for drinks.

    25 parts7CC-BY-4.0
  • 2 layers104.4 × 52.8 mmPN5180 Wemos PCB, the printed circuit board in 3D

    PN5180 Wemos PCB

    Hasenpups/PN5180_ESP_Reader

    This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].

    7 parts7
  • 2 layers158.7 × 185.8 mmESP8266XmasTree, the printed circuit board in 3D

    ESP8266XmasTree

    lugsaar/ESP8266XmasTree

    ESP8266 based PCB Xmas tree with WS2812B LEDs as Christmas lights. The Christmas tree can be easily controlled with systems like Tasmota or ESPHome.

    55 parts4
  • 2 layers77 × 34.5 mmNobo, the printed circuit board in 3D

    Nobo

    csabigee/nobo-pcb

    PCB design files for the nobo thermostat

    11 parts2GPL-3.0
  • 2 layers100 × 100 mmLig, the printed circuit board in 3D

    Lig

    C3MA/lightpanel

    https://www.ccc-mannheim.de/wiki/Lightpanel

    68 parts
  • 2 layers67.2 × 61.7 mmBewegungsmelder, the printed circuit board in 3D

    Bewegungsmelder

    hhansen06/bewegungsmelder

    KNX Bewegungsmelder mit Radar

    17 parts

Questions

How big is the Feeder diagram PCB?

It measures 90 × 76 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Feeder diagram use?

76 parts, built around the WEMOS D1 MINI and WS2812B. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Feeder diagram KiCad files?

From the Hanra-s-work/cat_feeder repository on GitHub, at the commit this page was made from: the board is kicad/feeder_diagram/feeder_diagram.kicad_pcb and its schematic kicad/feeder_diagram/feeder_diagram.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Feeder diagram design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).