You can still reduce your ESP32-H2 active current. Several adjustments help. Lower the CPU clock when possible. BLE tasks need little speed. Use 32 or 48 MHz. Reduce BLE activity too. Increase the BLE connection interval. Add slave latency for fewer wakeups. This often cuts a few milliamps.
Reduce the advertising rate as well. Longer intervals save energy. Keep the transmit power at a minimum. Adjust SPI behaviour, too. Lower the SPI clock if possible. Use event-driven transfers, not polling loops. Idle the CPU between SPI reads. This avoids constant wake states.
Disable unused peripherals. Turn off ADC, UART logs, and timers. Each block adds a small drain. Use light sleep during idle windows. ESP32-H2 supports it with BLE. It drops the current significantly. The idea is simple. Sleep until the next BLE event. Many developers follow this approach. The guide here helps:
https://www.theengineeringprojects.com/ ... modes.html
Also, inspect your power path. Use a good regulator. Avoid big voltage drops. Stable 3.3 V reduces waste. Your current numbers look normal. But you can expect lower. Many reach near 10 mA. This requires tuning. Your 15.6 mA can drop. Target 10–12 mA with care.
Light sleep makes the biggest difference. CPU frequency scaling also helps. BLE parameter tuning gives solid gains. SPI optimization adds a bit more. Use all techniques for the best results.