Blog
Articles and guides on reaching, updating and debugging ESP32 devices that are not on your desk.
- Sharing an ESP32 sensor page with anyone, without port forwarding
An ESP32 already serves its readings on your WiFi. How to give that page a public HTTPS address, and how to write it so many visitors at once do not take the device down. - ArduinoOTA over the internet, with a rollback
Why ArduinoOTA only works on your own network, and how to update an ESP32 Arduino sketch from anywhere, with a rollback if the new firmware cannot connect. - ESP32 remote access compared: port forwarding, ngrok, Cloudflare Tunnel, Tailscale
Five ways to reach an ESP32 web server from outside its network, compared on what each needs, where it runs and what it costs, as of November 2026. - esp_http_server slow? The 250 ms delay and the fix
Why every response from ESP-IDF esp_http_server can take about 250 ms, on the LAN and through a tunnel, and how TCP_NODELAY in open_fn removes it. - Before the first ESP32 ships: a field support checklist
What to have in an ESP32 product before it leaves for customers: remote access, logs, crash reports, OTA with rollback, and knowing which firmware each device runs. - Remote access to an ESP32 without TLS: what it measured and what it costs
Why the Pinscope device component uses the Noise protocol instead of TLS, what it measured on an ESP32-S2, and what that choice costs. - Reaching an ESP32 web server from outside its network
Four ways to reach an ESP32 web server behind NAT or a router: port forwarding, a VPN, MQTT and an outbound tunnel, and what each one costs. - Updating ESP32 firmware over the internet, with rollback
What ESP32 OTA firmware updates need when the device is not on your network: two OTA partitions, a way to deliver the image, and a rollback. - Crash backtraces from devices in the field
Why did the ESP32 crash with no serial cable attached? Decoding a Guru Meditation backtrace with addr2line, core dumps, and reporting it after reboot. - Remote logging: ESP_LOG without a serial cable
How to get ESP_LOG output from an ESP32 that is not on your desk: hooking the log with esp_log_set_vprintf, where to send it, and the mistakes that crash the device. - Heap and stack monitoring in the field
Which ESP32 memory numbers to watch in the field: free heap, minimum free heap, largest free block and the stack high-water mark of each task, and what each one tells you. - An ESP32 behind CGNAT, 4G or Starlink
Why an ESP32 on a 4G router, Starlink or a carrier-grade NAT connection cannot be reached by port forwarding or dynamic DNS, and what works instead. - TLS memory usage on the ESP32, and how to reduce it
How much heap one mbedTLS connection takes on an ESP32, measured, and the menuconfig options that reduce it: dynamic buffers, smaller record sizes and what each one costs.