Has anyone managed to get ESPHome working on this dev board?
https://www.aliexpress.com/item/1005006881646670.html
I’ll admit I grabbed one to toy with without much thought, and it doesn’t seem to even run.
Has anyone managed to get ESPHome working on this dev board?
https://www.aliexpress.com/item/1005006881646670.html
I’ll admit I grabbed one to toy with without much thought, and it doesn’t seem to even run.
Not that specific board. I have an ESP32-S3-CAM from Seeed and that works fine, with a bit different setup than those listed on esphome.io.
Are you not able to get it working with a basic ESP32-S3 config in ESPHome?
Yes. Do not use. It overheats.
Get the Freenove ESP32 cam instead.
This is what I tried, and it neither showed up on my wifi nor gave me any console output.
esphome:
name: esp32-s3-cam
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
variant: esp32s3
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
password: "<snip>"
wifi:
ssid: <snip>
password: <snip>
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp32-Camera Fallback Hotspot"
password: "<snip>"
captive_portal:
Maybe I got a lemon?
I did notice it got very very warm when it just booted up and started playing some music. Darn, that’s a shame. I quite liked that it had support for microphone and speakers built-in.
On the paper it looks like a nice little board, but from what @Rudd-O posted and your own experience, it seems like you’re better of just binning it and count yourself lucky it was cheap.
For reference; this is what the head of my ESP32-S3-Cam config looks like:
esphome:
name: esp32-cam-1
friendly_name: "ESP32-CAM-1"
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
Thanks. I gave that a try and still no joy.
I’ll leave this open a little longer but might have to do as you suggest, I suspect. Always figured it was the risk I was taking, so it’s no big surprise.
Do you happen to know how feasible it would be to hook up an I2S mic and speaker to it while retaining the camera functionality? Looking at the pinout it seems a lot of them are taken.
If you don’t use the camera pins, I bet you could reuse them with extremely advanced soldering skills on a ribbon cable.
Or bin it and use another device.
I meant on the Freenove ESP32 cam (or maybe the Freenove ESP32-S3-WROOM CAM).
The more I look around, the more it seems like I might want two ESP32s. One for video and one for mic and speaker.
I think the Freenove should be able to do I2S and camera simultaneously. Don’t expect gaming framerates tho.
So, an update on this. I actually managed to get these boards running, sort of. It seems they use the PSRAM pins for the camera. Here’s my YAML:
esphome:
name: esp-s3-cam-test
friendly_name: esp-s3-cam-test
# Commented out because it prevents the camera detecting
# platformio_options:
# build_flags: -DBOARD_HAS_PSRAM
# board_build.arduino.memory_type: qio_opi
# board_build.f_flash: 80000000L
# board_build.flash_mode: qio
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
#snip
ota:
# snip
wifi:
# snip
captive_portal:
esp32_camera:
external_clock:
pin: GPIO33
frequency: 20MHz
i2c_pins:
sda: GPIO37
scl: GPIO36
data_pins: [GPIO7, GPIO5, GPIO4, GPIO6, GPIO8, GPIO42, GPIO48, GPIO47]
vsync_pin: GPIO35
href_pin: GPIO34
pixel_clock_pin: GPIO41
#power_down_pin:
# Image settings
name: ESP32 Camera
esp32_camera_web_server:
- port: 8080
mode: stream
This works, though I’m concerned about the PSRAM being disabled or conflicting with the camera. There is a diagram for the wiring of all parts on the seller’s site, but it’s hard to read, and I’m not sure how I’d go about telling ESPHome to use different pins for the PSRAM.
Interestingly, now that it’s running ESPHome properly the chip doesn’t seem to be getting particularly hot.
Log dump, in case it’s useful:
INFO ESPHome 2024.5.5
INFO Reading configuration /config/esphome/esp-s3-cam-test.yaml...
WARNING GPIO33 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO37 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO36 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO35 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO34 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
INFO Starting log output from 10.0.2.63 using esphome API
INFO Successfully connected to esp-s3-cam-test @ 10.0.2.63 in 0.160s
INFO Successful handshake with esp-s3-cam-test @ 10.0.2.63 in 0.054s
[16:57:43][I][app:100]: ESPHome version 2024.5.5 compiled on Jun 14 2024, 16:44:07
[16:57:43][C][wifi:580]: WiFi:
[16:57:43][C][wifi:408]: Local MAC: 74:4D:BD:AF:34:14
[16:57:43][C][wifi:413]: SSID: [redacted]
[16:57:43][C][wifi:416]: IP Address: 10.0.2.63
[16:57:43][C][wifi:420]: BSSID: [redacted]
[16:57:43][C][wifi:421]: Hostname: 'esp-s3-cam-test'
[16:57:43][C][wifi:423]: Signal strength: -41 dB ▂▄▆█
[16:57:43][C][wifi:427]: Channel: 1
[16:57:43][C][wifi:428]: Subnet: 255.255.0.0
[16:57:43][C][wifi:429]: Gateway: 10.0.0.1
[16:57:43][C][wifi:430]: DNS1: 10.0.0.1
[16:57:43][C][wifi:431]: DNS2: 0.0.0.0
[16:57:43][C][logger:185]: Logger:
[16:57:43][C][logger:186]: Level: DEBUG
[16:57:43][C][logger:188]: Log Baud Rate: 115200
[16:57:43][C][logger:189]: Hardware UART: USB_CDC
[16:57:43][C][esp32_camera:048]: ESP32 Camera:
[16:57:43][C][esp32_camera:049]: Name: ESP32 Camera
[16:57:43][C][esp32_camera:050]: Internal: NO
[16:57:43][C][esp32_camera:052]: Data Pins: D0:7 D1:5 D2:4 D3:6 D4:8 D5:42 D6:48 D7:47
[16:57:43][C][esp32_camera:053]: VSYNC Pin: 35
[16:57:43][C][esp32_camera:054]: HREF Pin: 34
[16:57:43][C][esp32_camera:055]: Pixel Clock Pin: 41
[16:57:43][C][esp32_camera:056]: External Clock: Pin:33 Frequency:20000000
[16:57:43][C][esp32_camera:060]: I2C Pins: SDA:37 SCL:36
[16:57:43][C][esp32_camera:062]: Reset Pin: -1
[16:57:43][C][esp32_camera:080]: Resolution: 640x480 (VGA)
[16:57:43][C][esp32_camera:129]: JPEG Quality: 10
[16:57:43][C][esp32_camera:131]: Contrast: 0
[16:57:43][C][esp32_camera:132]: Brightness: 0
[16:57:43][C][esp32_camera:133]: Saturation: 0
[16:57:43][C][esp32_camera:134]: Vertical Flip: ON
[16:57:43][C][esp32_camera:135]: Horizontal Mirror: ON
[16:57:43][C][esp32_camera:136]: Special Effect: 0
[16:57:43][C][esp32_camera:137]: White Balance Mode: 0
[16:57:43][C][esp32_camera:140]: Auto Exposure Control: 1
[16:57:43][C][esp32_camera:141]: Auto Exposure Control 2: 0
[16:57:43][C][esp32_camera:142]: Auto Exposure Level: 0
[16:57:43][C][esp32_camera:143]: Auto Exposure Value: 300
[16:57:43][C][esp32_camera:144]: AGC: 1
[16:57:43][C][esp32_camera:145]: AGC Gain: 0
[16:57:43][C][esp32_camera:146]: Gain Ceiling: 0
[16:57:43][C][esp32_camera:152]: Test Pattern: NO
[16:57:43][C][psram:020]: PSRAM:
[16:57:43][C][psram:021]: Available: YES
[16:57:43][C][psram:024]: Size: 8191 KB
[16:57:43][C][captive_portal:088]: Captive Portal:
[16:57:43][C][mdns:115]: mDNS:
[16:57:43][C][mdns:116]: Hostname: esp-s3-cam-test
[16:57:43][C][ota:096]: Over-The-Air Updates:
[16:57:43][C][ota:097]: Address: esp-s3-cam-test.local:3232
[16:57:43][C][ota:100]: Using Password.
[16:57:43][C][ota:103]: OTA version: 2.
[16:57:43][C][api:139]: API Server:
[16:57:43][C][api:140]: Address: esp-s3-cam-test.local:6053
[16:57:43][C][api:142]: Using noise encryption: YES
[16:57:43][C][esp32_camera_web_server:088]: ESP32 Camera Web Server:
[16:57:43][C][esp32_camera_web_server:089]: Port: 8080
[16:57:43][C][esp32_camera_web_server:091]: Mode: stream
[16:57:49][D][esp32_camera:196]: Got Image: len=19258
[16:57:59][D][esp32_camera:196]: Got Image: len=19293
Interestingly, it says that the PSRAM is available…
It uses this microphone msm261s4030h0 with the following settings:
I2s:
GPIO38 as SCK (input)
GPIO39 as SD (output)
GPIO40 as WS (serial data-word select for I2S)
No pin AFAICT is assigned to enabling or disabling the microphone so prob is always on hardware wise
Here is the datasheet for the microphones
microphone datasheet
it uses this speaker ns4168 with the following settings:
I2s:
GPIO9 as I2S ADC SDOUT
GPIO10 as I2S MCLK
GPIO45 as I2S LRCK
GPIO46 as PA CTRL
maybe someone who can speak chinese can help with this datasheet
speaker datasheet
My knowledge in programming unfortunately doesnt translate as far as i would like to continue this on my own
Got this link from a vendor on ali.
https://drive.google.com/drive/folders/1oJGKMcIU5iBQF0UDqe7xDhWQU1bvcbMg?usp=sharing
Hello, did you find a full config for this board ? I would like to use it as a video doorbell with esphome firmware…
I got freenove ESP cam working a long time ago, with the correct platform and platform version:
I don’t even think I need a custom component for the camera anymore.
Hi, everybody
I recently bought this ESP32-S3-Cam on Amazon
wich is undocumented.
Searching in Aliexpress found this schematics wich includes the pin configuration for the camera
and the pinout
but PSRAM was not detected and this was the piece that made it work, thanx @zenzay42
So this is the resulting code:
esphome:
name: s3-cam
friendly_name: S3-Cam
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
logger:
level: VERBOSE
# Enable Home Assistant API
api:
encryption:
key: "Your_API_key"
ota:
- platform: esphome
password: "Your_psswd"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "S3-Cam Fallback Hotspot"
password: "u1AUVirSVcEf"
captive_portal:
sensor:
- platform: wifi_signal
name: "S3-Cam Signal"
update_interval: 60s
light:
- platform: fastled_clockless
chipset: WS2812
pin: GPIO48
num_leds: 1
rgb_order: GRB
name: "S3-Cam Led"
id: led
esp32_camera:
external_clock:
pin: GPIO15
frequency: 20MHz
i2c_pins:
sda: GPIO4
scl: GPIO5
data_pins: [GPIO11, GPIO9, GPIO8, GPIO10, GPIO12, GPIO18, GPIO17, GPIO16]
vsync_pin: GPIO6
href_pin: GPIO7
pixel_clock_pin: GPIO13
#power_down_pin:
# Image settings
name: ESP32 Camera
resolution: 640X480
max_framerate: 20 fps
idle_framerate: 0.2 fps
vertical_flip: True
horizontal_mirror: True
The only failure I see is the LED blinks strangely on colour change.
Hello. I have the same dev board(or at least similar), but i still can’t get neither psram nor camera working. In arduino ide it works just fine, but strangely not in ESPHome. Maybe someone has a solution?
Hi all, I bought this ESP32-S3 Cam board on Aliexpress a week ago and as all said already, it doen’t come with a documentation.
After trying many different configs, I get the camera-board to work with Homeassistant.
Attached is the working yaml with some comments in it.
Hope it works for others as well.
esphome:
name: esp32-cam-1
friendly_name: "ESP32-CAM-1"
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
logger:
level: VERBOSE
tx_buffer_size: 256
# Enable Home Assistant API
api:
encryption:
key: "xxx"
ota:
- platform: esphome
password: "xxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Cam Fallback Hotspot"
password: "xxx"
#update with yourIP address
use_address: 192.168.178.184
manual_ip:
static_ip: 192.168.178.184
gateway: 192.168.178.1
subnet: 255.255.255.0
dns1: 192.168.178.1
dns2: 192.168.178.1
captive_portal:
# very important:
psram:
mode: octal
web_server:
port: 80
#doesn't work with Arduino:
#esp32_camera_web_server:
# - port: 8080
# mode: stream
# - port: 8081
# mode: snapshot
text_sensor:
- platform: wifi_info
ip_address:
name: device/ip
mac_address:
name: device/mac
sensor:
- platform: wifi_signal
name: "S3-Cam Signal"
update_interval: 60s
light:
- platform: fastled_clockless
chipset: WS2812
pin: GPIO48
num_leds: 1
rgb_order: GRB
name: "S3-Cam Led"
id: led
#Pinout as per Freenove esp32-s3-devkitc-1
i2c:
- id: camera_i2c
sda: GPIO4
scl: GPIO5
esp32_camera:
external_clock:
pin: GPIO15
frequency: 20MHz
i2c_id: camera_i2c
data_pins: [GPIO11, GPIO9, GPIO8, GPIO10, GPIO12, GPIO18, GPIO17, GPIO16]
vsync_pin: GPIO6
href_pin: GPIO7
pixel_clock_pin: GPIO13
#power_down_pin:
# Image settings
name: ESP32 Camera
resolution: 1024X768
max_framerate: 20 fps
idle_framerate: 0.2 fps
vertical_flip: True
horizontal_mirror: False
DUDE. THANK YOU THANK YOU THANK YOU! You’re the best!