Files
vogelalbum/esp32cam/sdkconfig.defaults
T
christian cc9e0786c2 Vogelalbum 1.0.0
Eine Kamera am Vogelhaus, ein Rechner der erkennt wer da war — und eine
Sammlung, die sich von allein fuellt.

Zwei neuronale Netze: eines findet den Vogel im Bild, eines bestimmt die
Art. 148 heimische Arten, auf Deutschland eingeschraenkt und neu normiert —
ohne diese Einschraenkung wird aus einer Kohlmeise eine nordamerikanische
Schwesterart. Daraus entsteht ein Sammelalbum: nummerierte Seiten,
gefundene Arten in Farbe, fehlende als Schatten, dazu Erstfang, Punkte,
Stufen und 15 Abzeichen.

Laeuft vollstaendig auf eigener Hardware. Kein Cloud-Dienst, kein Konto,
keine Telemetrie; die Bilder verlassen das eigene Netz nicht.

Zwei getrennt deploybare Teile: die Sammlung als Django-Anwendung, die
Erkennung als eigener Dienst. Der Erkennungs-Dienst fragt selbst an und
braucht deshalb weder eine erreichbare Adresse noch einen offenen Port —
er laeuft hinter einem gewoehnlichen Router.

Dabei: Firmware fuer Raspberry Pi und ESP32-S3, Anbindung an Home
Assistant ueber MQTT, Oberflaeche auf Deutsch und Englisch, Einstellungen
je Kamera aus dem Browser, und ein Weg fuer Fotos von unterwegs.

AGPL-3.0.
2026-10-14 18:55:23 +00:00

61 lines
2.1 KiB
Plaintext

# Ziel ist der ESP32-S3 mit 8 MB PSRAM (N16R8-Module).
CONFIG_IDF_TARGET="esp32s3"
# Ohne PSRAM passt kein JPEG-Framebuffer in den Speicher. Octal ist bei den
# R8-Modulen richtig; bei einem R2/R8-Quad-Modul stattdessen QUAD waehlen,
# sonst findet die Kamera keinen Puffer.
CONFIG_SPIRAM=y
CONFIG_SPIRAM_MODE_OCT=y
CONFIG_SPIRAM_SPEED_80M=y
CONFIG_SPIRAM_USE_MALLOC=y
CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
# 16 MB Flash (N16R8).
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
# Die Funkstrecke ist der Engpass, nicht die CPU: mehr und groessere
# Sendepuffer heben die Bildrate deutlich mehr als ein schnellerer Takt.
CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=16
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32
CONFIG_ESP_WIFI_TX_BA_WIN=16
CONFIG_ESP_WIFI_RX_BA_WIN=16
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534
CONFIG_LWIP_TCP_WND_DEFAULT=65534
# Volle Taktrate — JPEG kommt fertig aus dem Sensor, aber das Umkopieren in
# die Sendepuffer laeuft auf der CPU.
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
# Der Stream haelt einen Socket dauerhaft offen; /status braucht daneben Platz.
CONFIG_LWIP_MAX_SOCKETS=10
# Ein Geraet im Garten soll sich selbst erholen statt stumm zu bleiben.
CONFIG_ESP_TASK_WDT_EN=y
CONFIG_ESP_TASK_WDT_TIMEOUT_S=30
CONFIG_ESP_INT_WDT=y
# Kameraframes gehoeren ins PSRAM, nicht ins knappe interne RAM.
CONFIG_CAMERA_CORE0=y
# Kamera haengt ueber Kopf: beide Spiegelungen zusammen ergeben 180 Grad.
# ⚠ Gilt fuer JEDES Geraet aus diesem Baum -- wer eine Kamera anders
# herum montiert, braucht hier einen eigenen Stand. Gemeldet am
# 24.09.2026, nachdem die Traenke haengt: "Bild muss um 180 grad gedreht
# werden."
# CONFIG_VK_HFLIP is not set
CONFIG_VK_VFLIP=y
# Farbe: der Sensor liefert von Haus aus ein flaues Bild.
CONFIG_VK_SAETTIGUNG=2
CONFIG_VK_KONTRAST=1
CONFIG_VK_HELLIGKEIT=0
# Bremse fuer den Bildstrom. Ohne sie sendet die Kamera mit Anschlag --
# das heizt und saettigt die Funkstrecke, ohne der Erkennung zu nuetzen.
CONFIG_VK_MAX_FPS=5