Sendspin_Zero-Source v2026.10.25.53

Install Firmware

Connect your device via USB and click the button below to install.

Browser not supported.
ESP Web Tools requires a Chromium-based browser (Chrome, Edge) with Web Serial support. Please use one of these browsers, or follow the manual installation instructions below.
Browser-based installation requires HTTPS.
This page is not served over a secure connection, so the install button won't work. Use web.esphome.io to install the firmware instead.
Firmware Download
Configuration Download
### SendspinZero Source
substitutions:
  name: esphome-web-ce5604
  friendly_name: SendspinZero-Source

external_components:
  - source:
      type: git
      url: https://github.com/ApolloAutomation/CAST_PRO-1
      ref: 743af5bd27ed4281eebe9bdfbab7150aaa43e199
      path: Integrations/ESPHome/components
    components: [sendspin_source]

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  min_version: 2026.10.0
  name_add_mac_suffix: true
  project:
    name: realdeco.sendspin_zero
    version: "2026.10.0"
  on_boot:
    priority: -100
    then:
      - binary_sensor.template.publish:
          id: line_in_streaming
          state: OFF

esp32:
  variant: esp32s3
  flash_size: 4MB
  framework:
    type: esp-idf

logger:
  level: WARN

psram:
  mode: quad
  speed: 80MHz

api:
  reboot_timeout: 0s

ota:
  - platform: esphome

wifi:
  output_power: 8.5dB
  power_save_mode: none
  # Workaround: roam scans drop active audio
  post_connect_roaming: false
  ap:

improv_serial:

captive_portal:

i2s_audio:
  - id: i2s_in
    i2s_bclk_pin: GPIO3
    i2s_lrclk_pin: GPIO5
    i2s_mclk_pin: GPIO6

microphone:
  - platform: i2s_audio
    id: line_in_adc
    i2s_audio_id: i2s_in
    i2s_din_pin: GPIO4
    adc_type: external
    pdm: false
    channel: stereo
    bits_per_sample: 32bit
    sample_rate: 48000
    mclk_multiple: 256

sendspin:
  id: sendspin_hub
  task_stack_in_psram: false
  unpaired_access: false
  on_pairing_failed:
    - logger.log:
        format: "Sendspin pairing failed: %s"
        args: ["reason.c_str()"]
        level: WARN

sendspin_source:
  id: line_in_source
  sendspin_id: sendspin_hub
  microphone:
    microphone: line_in_adc
    channels: [0, 1]
    # PCM1808 is a 24-bit ADC; 16 halves the bandwidth
    bits_per_sample: 24
    gain_factor: 1
  codec: pcm
  chunk_duration: 20ms
  capture_buffer: 500ms
  line_sense:
    # Tune threshold to your source level
    enabled: true
    threshold: -60dB
    hysteresis: 6dB
    attack: 100ms
    release: 2s
  on_streaming_started:
    - binary_sensor.template.publish:
        id: line_in_streaming
        state: ON
  on_streaming_stopped:
    - binary_sensor.template.publish:
        id: line_in_streaming
        state: OFF
  on_signal_present:
    - binary_sensor.template.publish:
        id: line_in_signal
        state: ON
  on_signal_absent:
    - binary_sensor.template.publish:
        id: line_in_signal
        state: OFF

binary_sensor:
  - platform: template
    id: line_in_streaming
    name: "Line In Streaming"
    icon: mdi:audio-input-rca
    entity_category: diagnostic

  - platform: template
    id: line_in_signal
    name: "Line In Signal"
    icon: mdi:waveform
    entity_category: diagnostic

text_sensor:
  - platform: sendspin
    id: sendspin_pairing_code
    type: pairing_code
    name: "Sendspin Pairing Code"

button:
  - platform: restart
    id: restart_button
    name: "Restart"
    entity_category: config
    icon: "mdi:restart"

  - platform: template
    id: sendspin_confirm_pairing
    name: "Sendspin Confirm Pairing"
    icon: mdi:link-variant
    entity_category: config
    on_press:
      - sendspin.confirm_pairing_window: sendspin_hub
OTA extension Download
# Factory firmware - generated by ewt-gen
# Users should import Sendspin_Zero-Source.yaml directly, not this file.

packages:
  original: !include Sendspin_Zero-Source.yaml

esphome:
  project:
    version: "2026.10.25.53"

ota:
  - platform: http_request
    id: ota_http_request

update:
  - platform: http_request
    id: update_http_request
    name: Firmware
    source: https://realdeco.github.io/SendspinZero/Sendspin_Zero-Source/manifest.json

http_request:

dashboard_import:
  package_import_url: github://RealDeco/SendspinZero/Sendspin_Zero-Source.yaml@main