How to Fix the “ESP Does Not Have Enough Space” Error When Flashing Athom Human Presence Sensors with ESPHome

on Michael Harley's blog

2 min read

I’ve been dealing with an intermittent but persistent issue when flashing ESPHome devices on Home Assistant. When I tried to flash my Athom Human Presence Sensors with the latest firmware, I’d receive this error:

ERROR Error binary size: Error: ESP does not have enough space to store OTA file. Please try flashing a minimal firmware (remove everything except ota).

After some research, I found the solution on the Athom Configs GitHub page. While the original solution was helpful, I wanted to break it down into clearer steps for others.

Here’s what worked for me.


Step 1: Comment Out the Packages #

First, locate the packages section in your YAML file and comment it out. For my sensor, it looked like this:

Original YAML File:

substitutions:
  name: bathroom-athom-sensor
  friendly_name: Bathroom Athom Sensor
packages:
  Athom_Technology.Presence_Sensor: github://athom-tech/athom-configs/athom-presence-sensor.yaml
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}

api:
  encryption:
    key: [my key here]

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

Modified YAML File (Step 1):

substitutions:
  name: bathroom-athom-sensor
  friendly_name: Bathroom Athom Sensor
#packages:
#  Athom_Technology.Presence_Sensor: github://athom-tech/athom-configs/athom-presence-sensor.yaml
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}

api:
  encryption:
    key: [my key here]

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

Step 2: Add a Minimal Configuration #

Next, add a minimal configuration to reduce the firmware size. I placed mine above the api section.

Add These Lines:

esp8266:
  board: esp8285
ota:
  platform: esphome
logger:

This provides just enough functionality to flash the device with a smaller binary.


Step 3: Flash the Device #

Your YAML file should now look like this:

Full YAML File (Before Flashing):

substitutions:
  name: bathroom-athom-sensor
  friendly_name: Bathroom Athom Sensor
#packages:
#  Athom_Technology.Presence_Sensor: github://athom-tech/athom-configs/athom-presence-sensor.yaml
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}

esp8266:
  board: esp8285
ota:
  platform: esphome
logger:

api:
  encryption:
    key: [my key here]

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

Flash this configuration to your device.


Step 4: Restore the Original Configuration #

After the initial flash, you can uncomment the original packages section and remove the minimal configuration. Your YAML file should return to its original state for the second flash:

Full YAML File (Second Flash):

substitutions:
  name: bathroom-athom-sensor
  friendly_name: Bathroom Athom Sensor
packages:
  Athom_Technology.Presence_Sensor: github://athom-tech/athom-configs/athom-presence-sensor.yaml
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}

#esp8266:
#  board: esp8285
#ota:
#  platform: esphome
#logger:

api:
  encryption:
    key: [my key here]

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

Flash the device again, and you should now have the full firmware with all the original features enabled.


Conclusion #

And that’s it! This two-step flashing process worked for my Athom Human Presence Sensors.

Have you resolved this issue in a different way? If so, I’d love to hear about your solution—feel free to send an email!

Filed under: Home Assistant, ESPHome

Respond

Reply via email

Michael Harley

About the author

Hello, I'm Mike. I care about the IndieWeb, digital sovereignty, and the open web. I'm a developer and team lead based in Richmond, VA, and this site is my corner of the internet.

Directory: /home · /about · /contact · /posts · /sitemap