{
  "id": 14771505,
  "title": "The reason my Home Assistant ESP32s kept crashing isn't what you'd expect",
  "url": "https://urgent.news/2026/10/15/the-reason-my-home-assistant-esp32s-kept-crashing-isnt-what-youd",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-15T19:30:19.000Z",
  "source": {
    "name": "XDA Developers",
    "slug": "xda-developers",
    "url": "https://www.xda-developers.com/the-reason-my-home-assistant-esp32-kept-crashing-isnt-what-youd-expect/"
  },
  "original_language": "en",
  "account": "When Home Assistant developers experiment with ESP32 boards, they often run into the issue of these small devices crashing unexpectedly. It may come as a surprise, but the culprit is not Wi-Fi connectivity but rather the limited random access memory (RAM) available on the ESP32. The ESP32 has a single radio frequency (RF) path that is shared between Wi-Fi and Bluetooth, dividing the airtime equally by default. While this can cause sluggish performance, it rarely results in board failure on its own.\n\nHowever, the true challenge lies in RAM management. The ESP32-S3, a popular model, contains approximately 512KB of internal SRAM. Both Wi-Fi and Bluetooth controllers allocate buffers from this shared memory at runtime. If too many components are added to the system, crashes become likely, especially if voice or audio components are included due to their high RAM consumption. Memory allocation and deallocation can lead to fragmentation, where no single free block may be large enough to fulfill a request, even if overall free memory is substantial.\n\nIn a test conducted on a XIAO ESP32-S3 Sense board with an 8MB PSRAM and the camera streaming 800x600 video into Home Assistant simultaneously, the board demonstrated surprising resilience when solely handling Wi-Fi and the camera. Even when free memory dipped to 320 bytes, the camera continued streaming smoothly for over 20 minutes. However, enabling the Bluetooth proxy dramatically changed the situation. The Bluetooth proxy consumed around 90KB of internal RAM, resulting in fragmented memory (86%) and causing the camera to drop to 14 frames per minute while still connected to Wi-Fi.\n\nHome Assistant failed to notice the issue initially, only marking sensor values as unavailable after two minutes of stale data. After rebooting, the board recovered on its own. Despite various memory tweaks, such as reducing connection slots and switching to passive scanning, the improvements were minimal. Moreover, the use_psram setting, intended to move Bluetooth stack buffers to PSRAM and free internal RAM, did not yield significant results on newer ESP32 models like the S3, as classic Bluetooth support was no longer available. Ultimately, using dedicated ESP32 boards for Bluetooth proxying and other tasks is the most reliable approach to ensure consistent functionality.",
  "summary": "It's important to know the limitations of your project boards",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 2,
    "also_reported_by": [
      {
        "outlet": "Dev.to",
        "title": "From ClasseViva to Home Assistant: a dashboard architecture in practice / Da ClasseViva a Home Assistant: architettura di una dashboard in pratica",
        "url": "https://urgent.news/2026/10/15/from-classeviva-to-home-assistant-a-dashboard-architecture-in",
        "published": "2026-10-15T14:29:10.000Z"
      }
    ]
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}