Hi, I’ve been using a Raspberry Pi Pico for months to control my garage door opener. It’s been working well, and updating wirelessly for several versions.
I recently updated to 12.x for ESPHome and I’m now on 2023.12.5. I have one ESP32 based devices, which continues to compile and update wirelessly.
Is there something wrong with my compiler?
INFO ESPHome 2023.12.5
INFO Reading configuration /config/esphome/picow-1.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing picow1 (board: rpipicow; framework: arduino; platform: https://github.com/maxgerhardt/platform-raspberrypi.git)
> --------------------------------------------------------------------------------
> HARDWARE: RP2040 133MHz, 264KB RAM, 2MB Flash
> - framework-arduinopico @ 1.30600.0 (3.6.0)
> - tool-rp2040tools @ 1.0.2
> Flash size: 2.00MB
> Sketch size: 1.00MB
> Filesystem size: 1.00MB
> Maximium Sketch size: 1044480 EEPROM start: 0x101ff000 Filesystem start: 0x100ff000 Filesystem end: 0x101ff000
> Dependency Graph
> |-- WiFi @ 1.0.0
> |-- LEAmDNS @ 1.2
> |-- Updater @ 1.0
> |-- noise-c @ 0.1.4
> |-- Wire @ 1.0
> |-- MD5Builder @ 1.0.0
> |-- lwIP-Ethernet @ 1
> |-- lwIP_
CYW43 @ 1
> |-- SPI @ 1.0
> Linking .pioenvs/picow1/firmware.elf
> /data/cache/platformio/packages/toolchain-rp2040-earlephilhower/bin/../lib/gcc/arm-none-eabi/10.3.0/../../../../arm-none-eabi/bin/ld: unrecognized option '--no-warn-rwx-segments'
> /data/cache/platformio/packages/toolchain-rp2040-earlephilhower/bin/../lib/gcc/arm-none-eabi/10.3.0/../../../../arm-none-eabi/bin/ld: use the --help option for usage information
> collect2: error: ld returned 1 exit status
> *** [.pioenvs/picow1/firmware.elf] Error 1
> ========================= [FAILED] Took 24.74 seconds =========================
I’ve tried cleaning the build files, rebooting the entire Host (Raspberry Pi 4 with 2GB RAM), and I’m not sure what else to try. Any help would be appreciated.
Here is my YAML for the Garage Door (plus temperature sensor)
esphome:
name: "picow1"
rp2040:
board: rpipicow
framework:
platform_version: https://github.com/maxgerhardt/platform-raspberrypi.git
# Enable logging
# logger:
# Enable Home Assistant API
api:
encryption:
key: "xxxxxxhidden"
ota:
password: "xxxxxxxhidden"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot in case wifi connection fails
ap:
ssid: "Picow Fallback Hotspot"
password: "xxxxxhidden"
# I2C bus Temp and Humidity
i2c:
sda: GPIO16
scl: GPIO17
scan: true
id: bus_a
# LED Blink Code
switch:
- platform: gpio
pin: 32
name: "Picow 1 LED"
id: picow_led
restore_mode: ALWAYS_OFF
icon: "mdi:led-outline"
# Buzzer Code
- platform: gpio
pin: GPIO2
name: "Garage Door Buzzer"
icon: "mdi:bullhorn-outline"
id: Buzzer
restore_mode: ALWAYS_OFF
on_turn_on:
- delay: 250ms
- switch.turn_off: Buzzer
# Relay Output for Garage
- platform: gpio
pin: GPIO7
name: "Relay"
id: Relay
restore_mode: ALWAYS_OFF
on_turn_on:
- delay: 500ms
- switch.turn_off: Relay
# Dallas Temp DS1820 - Not Activated Currently
#dallas:
# - pin: GPIO1
sensor:
# - platform: dallas
# address: 0xb900000de0402828
# name: "Picow Temp"
- platform: aht10
temperature:
name: "Garage Temperature"
humidity:
name: "Garage Humidity"
update_interval: 60s
# Internal Temperature - Not Activated Currently
# - platform: adc
# pin: TEMPERATURE
# name: "Core Temperature"
# unit_of_measurement: "°C"
# filters:
# - lambda: return 27 - (x - 0.706f) / 0.001721f;
# Garage Door Magnet
binary_sensor:
- platform: gpio
pin:
number: GPIO6
mode:
input: true
pullup: true
name: "Garage Door Sensor"
id: magnet_sensor
device_class: garage_door
filters:
- delayed_on: 250ms
- delayed_off: 250ms
on_state:
then:
- if:
condition:
or:
- binary_sensor.is_on: magnet_sensor
then:
- switch.turn_on: picow_led
else:
- switch.turn_off: picow_led
#Garage Door Code
cover:
# This template hides both the functionality to open/close the door, as well as its current state
# behind a single "cover"
- platform: template
device_class: garage
name: "Garage Door"
id: template_cov
lambda: |-
if (id(magnet_sensor).state) {
return COVER_OPEN;
} else {
return COVER_CLOSED;
}
open_action:
- switch.turn_on: Relay
- delay: 0.5s
- switch.turn_off: Relay
close_action:
- switch.turn_on: Buzzer
- switch.turn_on: Relay
- delay: 0.5s
- switch.turn_off: Relay
Thank you, appreciate any help!