{"id":35,"date":"2025-05-27T23:56:56","date_gmt":"2025-05-27T21:56:56","guid":{"rendered":"https:\/\/blog.bratfisch.net\/?p=35"},"modified":"2025-07-07T00:22:47","modified_gmt":"2025-07-06T22:22:47","slug":"a-beelogger-on-esp32-basis-part-1-the-idea","status":"publish","type":"post","link":"https:\/\/blog.bratfisch.net\/index.php\/2025\/05\/27\/a-beelogger-on-esp32-basis-part-1-the-idea\/","title":{"rendered":"A beelogger on ESP32 basis, part 1: The idea"},"content":{"rendered":"\n<p>The<a href=\"https:\/\/www.beelogger.de\"> Beelogger project<\/a> is really great.<br><br>But: Since my house is automated with homeassistant, esphome, a lot of ESP32s and my bee-hives are in WIFI-range, I decided to rebuild the beelogger-functionality on esphome basis.<br><br>Additional arguments for realizing it with an ESP32 instead of an Arduino or STM32 might be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>more CPU power<\/li>\n\n\n\n<li>more RAM &amp; flash (up to 8 MB RAM &amp; 16 MB flash)<\/li>\n\n\n\n<li>integrated WIFI<\/li>\n\n\n\n<li>probably less power consumption when using deep sleep modes<\/li>\n\n\n\n<li>A DSP for audio analysis<\/li>\n\n\n\n<li>more ADCs with higher resolution (depending on the ESP32 variant used)<\/li>\n\n\n\n<li>a built-in RTC<\/li>\n\n\n\n<li>the comfort of esphome:\n<ul class=\"wp-block-list\">\n<li>OTA updates<\/li>\n\n\n\n<li>a built-in automated connection to homeassistant<\/li>\n\n\n\n<li>a webinterface on the device<\/li>\n\n\n\n<li>no complex sketches to maintain, just a .yaml-config<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Desicion: I&#8217;m going to use an ESP32-S3-N16R8 and \/ or the ESP32-S3-Zero<\/h3>\n\n\n\n<p>The ESP32-S3-N16R8 provides:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a dual-core 32-bit microprocessor with 240 MHz<\/li>\n\n\n\n<li>8MB of additional PSRAM and 16MB flash, <\/li>\n\n\n\n<li>2.4 GHz Wi-Fi (IEEE 802.11b\/g\/n) and Bluetooth\u00ae 5 (LE)<\/li>\n\n\n\n<li>An hardware RTC<\/li>\n\n\n\n<li>Two general-purpose SPI ports<\/li>\n\n\n\n<li>Three UARTs<\/li>\n\n\n\n<li>Two I2Cs<\/li>\n\n\n\n<li>Two I2Ss<\/li>\n\n\n\n<li>Pulse counter<\/li>\n\n\n\n<li>Two 12-bit SAR ADCs, up to 20 channels<\/li>\n\n\n\n<li>Four 54-bit general-purpose timers<\/li>\n\n\n\n<li>52-bit system timer<\/li>\n\n\n\n<li>Three watchdog timers<\/li>\n\n\n\n<li>DSP-hardware<\/li>\n\n\n\n<li>Four power modes designed for typical scenarios: Active, Modem-sleep, Light-sleep, Deep-sleep<\/li>\n\n\n\n<li>A lot of GPIOs \ud83d\ude42<\/li>\n<\/ul>\n\n\n\n<p>It&#8217;s the currently most powerful ESP32, its hardware should be more than enough for the task \ud83d\ude00<br>The Zero variant will be used when there are just a few PINs needed.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"705\" height=\"1000\" src=\"https:\/\/blog.bratfisch.net\/wp-content\/uploads\/2025\/05\/image.png\" alt=\"\" class=\"wp-image-303\" style=\"width:auto;height:300px\" srcset=\"https:\/\/blog.bratfisch.net\/wp-content\/uploads\/2025\/05\/image.png 705w, https:\/\/blog.bratfisch.net\/wp-content\/uploads\/2025\/05\/image-212x300.png 212w\" sizes=\"auto, (max-width: 705px) 100vw, 705px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"410\" src=\"https:\/\/blog.bratfisch.net\/wp-content\/uploads\/2025\/05\/ESP32-S3-Zero-details-intro.jpg\" alt=\"\" class=\"wp-image-874\" srcset=\"https:\/\/blog.bratfisch.net\/wp-content\/uploads\/2025\/05\/ESP32-S3-Zero-details-intro.jpg 960w, https:\/\/blog.bratfisch.net\/wp-content\/uploads\/2025\/05\/ESP32-S3-Zero-details-intro-300x128.jpg 300w, https:\/\/blog.bratfisch.net\/wp-content\/uploads\/2025\/05\/ESP32-S3-Zero-details-intro-768x328.jpg 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Realizing it will be a major project, but probably also a lot of fun \ud83d\ude42<br><br>The TODOs I see so far, I&#8217;ll realize them in single test projects:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>get all the desired sensors working properly<\/li>\n\n\n\n<li>write an external component for esphome for the audio-analysis<\/li>\n\n\n\n<li>write a component for esphome for the bee counter hardware<\/li>\n\n\n\n<li>write a component for esphome to connect to the beelogger-server<\/li>\n\n\n\n<li>care about the power management<\/li>\n\n\n\n<li>logging to SD-card\/flash<\/li>\n\n\n\n<li>properly wiring it all up at the end, making it electronically fail safe, soldering it onto a prototype-board<\/li>\n\n\n\n<li>install everything in proper cases with proper connectors and install it in a bee hive<\/li>\n\n\n\n<li>realize additional ideas, they will for sure come up when working on this project \ud83d\ude09<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Beelogger project is really great. But: Since my house is automated with homeassistant, esphome, a lot of ESP32s and my bee-hives are in WIFI-range, I decided to rebuild the beelogger-functionality on esphome basis. Additional arguments for realizing it with an ESP32 instead of an Arduino or STM32 might be: Desicion: I&#8217;m going to use [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[3,4,5],"class_list":["post-35","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-beelogger","tag-esp32","tag-esphome"],"_links":{"self":[{"href":"https:\/\/blog.bratfisch.net\/index.php\/wp-json\/wp\/v2\/posts\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bratfisch.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bratfisch.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bratfisch.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bratfisch.net\/index.php\/wp-json\/wp\/v2\/comments?post=35"}],"version-history":[{"count":48,"href":"https:\/\/blog.bratfisch.net\/index.php\/wp-json\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":882,"href":"https:\/\/blog.bratfisch.net\/index.php\/wp-json\/wp\/v2\/posts\/35\/revisions\/882"}],"wp:attachment":[{"href":"https:\/\/blog.bratfisch.net\/index.php\/wp-json\/wp\/v2\/media?parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bratfisch.net\/index.php\/wp-json\/wp\/v2\/categories?post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bratfisch.net\/index.php\/wp-json\/wp\/v2\/tags?post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}