- Hardware PWM LED control at least 10bit and 1khz without using CPU
Yes, using LEDC peripheral (driver available).
- Capacitive touch sensors, pref with adjustable sensitivity via software or hardware (anyone tried this yet?)
Driver for touch sensor is available, although currently it doesn't have any adjustable parameters. Exposing them is possible though.
- Basic http server (no tls required)
AFAIK Esphttpd project has been ported to the ESP32, and provides a feature-rich HTTP server.
- Basic http client (tls required)
Depending on how basic it needs to be; Libcurl has been reported running on the ESP32 (see
http://esp32.com/viewtopic.php?f=17&t=409). There is also a
fair number of HTTP clients written in C and C++ using socket APIs — in general they should work with little or no modifications. TLS is supported via mbedTLS library. OpenSSL wrappers for mbedTLS are also available in the ESP-IDF.
- Switch between AP and STA mode during runtime (reboot ok)
- Enable / disable wifi & bluetooth radios
This is supported in the current master branch.
- Udp broadcast send/receive for device discovery
- Tcp send/receive for device control (ie setting PWM duty cycle)
Supported using sockets API, or LwIP netconn API, or LwIP raw API.
- Save string data to flash during runtime to persist across device reboots
Supported in the SDK using non-volatile storage (NVS) library. SPIFFS file system has also been ported to the ESP32 (a number of open source projects are using it).
- Remote firmware update via http polling of update server (if not too complex...)
This is supported, see OTA demo in the current master branch of ESP-IDF.