I was looking for some info on varying the CPU speed for the ESP32 whilst testing a high altitude balloon application and came across this post. My tracker board was setup for point to point LoRa, but the board could take a suitable sketch for TTN.
Its reported on here, and shows the tracker battery life for a 100maHr battery at various CPU speeds.
ESP32 LoRa tracker battery life.
I also measured how many maHr an ESP32 IOT node would use to send 1000 packets at bandwidth 125000hz, spreading factor 12, 14dBm, so typical for TTN. That is reported on here;
The test setup is here;
And the summary of power used is;
Power consumption of ESP32 IOT node, sending 1000 packets
ESP32 @ 240Mhz CPU speed using deep sleep 88mAhr
ESP32 @ 20Mhz CPU speed using deep sleep 45.3mAhr
ESP32 @ 20Mhz CPU speed using light sleep 38.2mAhr
ATMega328P @ 8Mhz CPU speed using deep sleep 35.7mAhr
Idle currents versus CPU speed
ESP32 @ 240Mhz CPU speed idle current 62.6mA
ESP32 @ 160Mhz CPU speed idle current 41.8mA
ESP32 @ 80Mhz CPU speed idle current 29.3mA
ESP32 @ 40Mhz CPU speed idle current 16.2mA
ESP32 @ 20Mhz CPU speed idle current 11.9mA
ESP32 @ 10Mhz CPU speed idle current 9.7mA
ATMega328P @ 8MhzCPU speed idle current 4mA