Просто берём этот самый ESP32-C3 Super Mini, берём I2C расширитель PCF8574T и слепляем это вместе.
Кнопульки, понятное дело, подключаются к расширителю в XP4 и тянут его ноги на землю. Здесь я использую выход прерывания PCF для того, чтобы будить ESP32-C3 из глубокого сна: как известно, этот выход переходит в 0, если состояние любого "квазидвунаправленного" выхода изменит состояние относительно того, которое было записано в чип, иными словами, если нажать на любую из кнопок.
На LM3671 сделана Step-down понижайка в 3,3В. Данный чип, помимо своей высокой эффективности, хорош ещё тем, что если напряжение на его входе становится близким к стабилизируемому на выходе, или даже ниже, он не уходит в какую-то защиту и т.д., а просто полностью открывает свой ключ, пропуская на выход практически всё, что есть на входе.
Тем не менее, чтобы не высаживать слишком сильно литиевый аккумулятор, добавлен супервизор DA1, вырубающий чип при входном напряжении ниже 2,6В и зажигающий светодиод, подключенный к пинам XP2.
К XP1 подключен тумблер в разрыв питания. M1 - это "классический" китайский модуль зарядки на TP4056, типа такого. К нему разведена панелька для банки 18650.
XP3 просто прокинутый на плату UART, мало ли для отладки (хотя мне не пригодилось).
Если кому надо, здесь полный архив проекта, включающий в себя плату в Altium Designer 10 и проект прошивки для Arduino PlatformIO, что есть почти то же самое, но с Майкрософтом и тёмной темой.
Добавлено after 18 minutes 21 second:
Плата более-менее встала конкретно вот в этот корпус.
И пара слов о софтовой части: чтобы всё завертелось, я, не долго думая, взял первый попавшийся проект BLE-клавы и немного его пообрезал. Чтобы он скомпилировался, нужна библиотека NimBLE, но не абы какая, а версии не выше 1.4.3...так гугловский ИИ-поиск утверждает.
Задержка delay(20) нужна, чтобы адекватно успевала отработать библиотека PCF8574 и её алгоритм антидребезга для кнопок.
Остальное более-менее должно быть понятно.
А теперь о вещах, которые не очень понятны мне: какой-то этот блютус на ESP32C3 получается...не очень лоу энерджи! Модуль в активном состоянии (пока не спит) постоянно кушает чуть более 80 мА, не зависимо даже, подключился он к хосту, или нет. Это примерно столько же, сколько ест ESP8266!