Even that is sadly horrifically unreliable.
I got an image:
But only one after several minutes. The logs don’t look promising:
And the pings to the unit are horrible despite being wired into the same switch:
Compared this with a PoESP32:
And sadly I just wouldn’t recommend the PoECam
Edit: Final config in case you think there’s something more I could / should be doing to make it play nicer:
type: W5500
clk_pin: GPIO23
mosi_pin: GPIO13
miso_pin: GPIO38
cs_pin: GPIO4
esp32_camera:
external_clock:
pin: GPIO27
frequency: 20MHz
i2c_pins:
sda: GPIO14
scl: GPIO12
data_pins: [GPIO32, GPIO35, GPIO34, GPIO5, GPIO39, GPIO18, GPIO36, GPIO19]
vsync_pin: GPIO22
href_pin: GPIO26
pixel_clock_pin: GPIO21
reset_pin: GPIO15
name: PoECamW
max_framerate: 1 fps
idle_framerate: 0.1 fps
resolution: 1024x768
esp32_camera_web_server:
- port: 8080
mode: stream
- port: 8081
mode: snapshot```
The ping times are odd… a few things to try:
Verify ip 192.168.122.209 is the wired network and not the wifi as the board has both interfaces.
Could be the default clock is too fast for SPI
of the W5500 interface. Try adding clock_speed: 30Mhz
to the settings. Example:
ethernet:
type: W5500
clk_pin: GPIO23
mosi_pin: GPIO13
miso_pin: GPIO38
cs_pin: GPIO4
clock_speed: 30Mhz
Yeah it’s definitely the wired IP. I have no WiFi settings in the config, plus I can see it’s not connected to any of my UniFi APs. In addition, even all my Atom Lite units that are on WiFi have a ~1ms ping time.
I can try adding the clock speed to the ethernet shortly and will let you know.
BeFygo
(Be Fygo)
July 17, 2024, 7:12pm
44
Hi @rtv how did you manage to get the POESP32 working with framework: type: esp-idf?
If I define it this way the device doesnt boot as a POE device and the network switch doesnt give POE.
It only boots POE when i do not define the framework but then the bleproxy does not work.
kkellner:
clock_speed: 30Mhz
tried 30Mhz, doesn’t work at all.
works only with 20Mhz with huge ping (lagging)
nickrout
(Nick Rout)
July 18, 2024, 1:52am
46
If there is overheating, I have seen people use very simple heatsinks - like a coin glued on - and they have said it produced results. Dunno if that would work in the m5 though, it is pretty small.
_s0
November 10, 2024, 8:30am
47
Hi folks,
The unreliability is caused by M5stack connecting the W5500 without the INT pin. This is technically supported as the MCU can poll it, but wasn’t supported in the ESP IDF until recently, and EspHome had code assuming that interrupt was in use.
This PR should fix it, though I haven’t yet gotten my PoECam board working.
esphome:dev
← slakichi:w5500-polling-mode
opened 11:41AM - 27 Sep 24 UTC
# What does this implement/fix?
W5500 can work without interrupt(IRQ) pin, bu… t crash at init if configure without `interrupt_pin`.
This patch adds polling mode to SPI-based ethernet if ESP-IDF framework is supported.
## Types of changes
- [x] Bugfix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Other
**Related issue or feature (if applicable):** fixes esphome/issues#6268
**Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#4389
## Test Environment
- [ ] ESP32
- [x] ESP32 IDF
- [ ] ESP8266
- [ ] RP2040
- [ ] BK72xx
- [ ] RTL87xx
## Example entry for `config.yaml`:
<!--
Supplying a configuration snippet, makes it easier for a maintainer to test
your PR. Furthermore, for new integrations, it gives an impression of how
the configuration would look like.
Note: Remove this section if this PR does not have an example entry.
-->
```yaml
esphome:
name: m5atoms3-lite
friendly_name: "M5Stack M5AtomS3 Lite"
platformio_options:
board_build.f_cpu: 80000000L
board_build.f_flush: 80000000L
esp32:
board: esp32-s3-devkitc-1
flash_size: 8MB
variant: esp32s3
framework:
type: esp-idf
# recommended version disables polling mode (interrupt_pin is mandatory; polling_interval is invalid)
# version: recommended
version: "5.3.1"
platform_version: "6.9.0"
network:
enable_ipv6: false
ethernet:
type: W5500
# W5500(SPI) mandatory pins
# ATOM: CLK=22, CS=19, MISO=23, MOSI=33
clk_pin: GPIO5
mosi_pin: GPIO8
miso_pin: GPIO7
cs_pin: GPIO6
# if ESP-IDF >= 5.3 or 5.2.1+ or 5.1.4+ / arduino >= 3.0.0, interrupt_pin is optional; oterwise mandatory
#interrupt_pin: GPIO4
# [New] if interrupt_pin is omitted, set polling interval; minimum is 1ms, default is 10ms.
# available only if ESP-IDF >= 5.3 or 5.2.1+ or 5.1.4+ / arduino >= 3.0.0 (* pio still not supports arduino-esp32 3.0.x)
polling_interval: 10ms
#reset_pin:
clock_speed: 10MHz
manual_ip:
static_ip: 192.168.xxx.xxx
gateway: 192.168.xxx.xxx
subnet: 255.255.255.0
dns1: 192.168.xxx.xxx
api:
encryption:
key: !secret home_assistant_api_password
reboot_timeout: 300s
ota:
platform: esphome
password: !secret ota_password
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true
bluetooth_proxy:
active: true
sensor:
- platform: uptime
type: timestamp
entity_category: diagnostic
- platform: internal_temperature
entity_category: diagnostic
name: "Internal Temperture"
```
## Checklist:
- [x] The code change is tested and works locally.
- [ ] Tests have been added to verify that the new code works (under `tests/` folder).
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [esphome-docs](https://github.com/esphome/esphome-docs).