Seed Studio introduced a new product In June. I found it to be the ideal solution for a Bluetooth Proxy so I wanted to share here. For $20, you get a package with an ESP32 S3 Plus, External Antenna, and POE Ethernet already assembled in a case. It is not quite as cheap as buying a chip alone but for anyone looking for a super simple solution with ethernet and an external antenna for added BT distance, this is about as easy as it gets. Just program and go.
The ESP32-S3 is excellent because it has Bluetooth version 5.0 which has longer distance than most of the earlier chips. In my testing of another Seed ESP32 S3 with an external antenna, I have been able to reach my robotic lawn mower at a distance of 45 meters (150 ft). The added bonus of this device is that it has both the S3 chip and hardwired Ethernet so the antenna can be dedicated to Bluetooth. I had stability problems with my other S3 as a BT proxy over WIFI. I found it difficult to find a board that had both the S3 and ethernet that didn’t require any soldering but this works great and is super simple.
It did take me a bit to figure out the ethernet pin configuration. I am posting here for anyone else that may want to use this.
esphome:
name: eth1-bt-proxy
friendly_name: Eth1 BT Proxy
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
#Using with ethernet so commenting out WIFI
#wifi:
#ssid: SSID
#password: WIFIPASSWORD
# Enable fallback hotspot in case wifi connection fails
#ap:
#ssid: "Bluetooth-Proxy Fallback Hotspot"
#password: BTProxyPassword
ethernet:
type: W5500
clk_pin: GPIO7
mosi_pin: GPIO9
miso_pin: GPIO8
cs_pin: GPIO2
# Enable logging
logger:
# Enable Home Assistant API
api:
#Comment out if not using encryption
# encryption:
# key: "YOURENCRYPTIONKEY"
ota:
- platform: esphome
password: "ota password"
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: True
bluetooth_proxy:
active: true
connection_slots: 3
button:
- platform: restart
name: "BT Proxy Restart"
icon: "mdi:restart"
entity_category: diagnostic
sensor:
- platform: uptime
name: "Uptime"
entity_category: diagnostic
text_sensor:
- platform: version
name: "Firmware Version"
entity_category: diagnostic
I used ESPHome builder add-on in Home Assistant to install the YAML above. After that, I just plug it into my network and it appears. Super easy.
I haven’t tested the range on this particular device yet but will report back after I do.
I am not associated with Seed and get no benefit with the post. Just sharing my positive experience.

