
Продолжаю рассказывать о своём опыте создания BLE адаптера для USB-клавиатуры, которым уже пользуюсь каждый день.
Собранный ранее на макетной плате адаптер с подключённым pico debug был хорош тем, что можно было экспериментировать, набираться опыта, но пользоваться таким адаптером как устройством неудобно: нет корпуса и нет автономного питания.
В комментариях к прошлой статье читатели упоминали, что китайцы продают адаптеры, по функционалу похожие на мой, но пользоваться такими адаптерами также неудобно. C хостом действительно беспроводной канал, а вот кипу проводов к самому адаптеру никто не отменял.
Стремление к универсальности часто приводит к неудобным решениям, поэтому я сосредоточился на своей клавиатуре Kingston HyperX Alloy.
Если у вас другая клавиатура, вам придётся корректировать и разрабатывать свой корпус или каким-то образом колхозить внутри клавиатуры, но я не сторонник идеи внесения правок в оригинальные устройства.
У моей клавиатуры есть разъём мини-USB, поэтому от USB-шнура можно избавиться, не разбирая клавиатуры. Именно это стало для меня стимулом довести проект до конца.
Схема с автономным питанием
Я не стал изобретать велосипед и использовал готовые модули.
Понадобились:
LiPo батарея на 1000 мАч,
модуль зарядки TP4056,
повышающий DC-DC преобразователь на 5 Вольт,
Raspberry Pi Pico W,
вилка mini-USB,
переключатель EG1201,
угловой штыревой PLS разъём,
Dupont-разъёмы типа «вилка»,
Dupont-разъёмы типа «гнездо»,
соединительные провода.
Последние два пункта нужны для удобного отключения Raspberry Pi Pico и батареи.
Схема выглядит следующим образом.

Выходное напряжение модуля зарядки такое, же как и у Li-po батареи: 3.7 Вольта. USB-клавиатуру можно запитать от модуля напрямую, и, скорее всего, всё будет работать, но использование DC-DC преобразователя необходимо, чтобы подавать питание 5 В на клавиатуру, требуемое спецификацией USB.
Для удобства схему питания (батарею, модуль зарядки и DC-DC преобразователь) отделил от Raspberry Pi Pico Dupont-соединением.
USB
В самом простом случае USB — это четыре провода:
+5В (красный),
GND (чёрный),
Data- (белый),
Data+ (зелёный).
Первые два для питания, вторые два для передачи информации. У меня не было белого провода, поэтому на схеме он имеет жёлтый цвет, также жёлтый цвет удобнее использовать на белом фоне.
В BLE-адаптере Raspberry Pi Pico W является USB-хостом, к которому подключается USB-устройство в виде клавиатуры.
Клавиатура питается от хоста, поэтому подавать питание клавиатуре нужно от Raspberry Pi Pico W.
Изначально хотел просто спаять провод micro-USB — mini-USB, но потом узнал, что на обратной стороне Raspberry Pi Pico есть тестовые точки, куда выведены Data+, Data- и GND USB-разъёма, к которым можно припаяться. Питание 5В для клавиатуры берётся с пина VBUS Raspberry Pi Pico.

Используемые тестовые точки приведены в таблице
Тестовая точка |
Назначение |
Цвет подключаемого провода |
|---|---|---|
TP1 |
GND |
чёрный |
TP2 |
Data- |
белый (жёлтый) |
TP3 |
Data+ |
зелёный |
Тестовые точки и VBUS нужно соединить с male-разъёмом mini-USB.
Распиновка приведена ниже:
Пин |
Назначение |
Цвет провода |
|---|---|---|
1 |
+5В |
красный |
2 |
Data- |
белый (жёлтый) |
3 |
Data+ |
зелёный |
4 |
ID |
провод не используется, но контакт замыкается на землю на стороне хоста, чтобы можно было аппаратно определить роль (хост или устройство) |
5 |
GND |
чёрный |

или, чтобы было понятнее:

Pin ID, если посмотреть на схему Raspberry Pi не используется Pico, поэтому ничего к нему не припаиваем.
Главное — не спешить и несколько раз перепроверить, как вы припаяли провода
Корпус
Расположение разъёма mini-USB позволяет сделать адаптер немного похожим на небольшой картридж. Нужно разобраться с размерами и креплением.
Я старался делать крепление к корпусу клавиатуры таким, чтобы не вмешиваться в корпус клавиатуры.
Основу конструкции составляет двухсторонний скотч и крышка в виде скобы, фиксирующей адаптер на клавиатуре.
Как поведёт себя выбранное решение, покажут несколько месяцев эксплуатации, пока своим решением доволен.


Разработка корпуса — увлекательный итеративный процесс, требующий применения инженерных решений. Навык работы с CAD 3D-системами необходим для создания корпусов. Освоить базовые приёмы можно за пару недель, если у вас нет опыта.
Создание 3D-модели корпуса
В таких средах как Solidworks или Компас 3D можно выполнять параметрическое моделирование, которое позволяет рассмотреть различные варианты корпусов. Главное — правильно выбрать базовые размеры.
Хотя 3D-моделирование упрощает жизнь, всё-таки парочку вариантов детали желательно напечатать на 3D-принтере, так как некоторые нюансы замечаешь, когда щупаешь модель руками.
Я поленился и не стал искать 3D-модель своей клавиатуры, в результате упустил из виду важный размер, который не позволял разместить адаптер под клавиатурой. Пришлось делать адаптер тоньше и утончать стенки корпуса.
Распечатка корпуса на 3D-принтере
Созданная трёхмерная модель корпуса — это полдела, модель нужно превратить в набор инструкций для принтера: как передвигать экструдер (печатающую головку) и стол, когда включать вентилятор, какую температуру использовать для плавления филамента (пластика).
Делается это в специальной программе — слайсере. Из всего разнообразия слайсеров я выбрал BambuStudio, так как принтер у меня Bambu Lab.
Преобразование построенной модели в слайсере для 3D-печати, если нет особенных требований к качеству корпуса — процесс, который можно освоить за несколько часов, особенно при наличии опыта печати на 3D-принтере.
Одним из ключевых моментов является то, как вы расположите модель на столе принтера. От этого зависят внешний вид, точность геометрии и прочность детали.
Также нужно определиться, какой тип пластика вы используете, как правило, для корпусов самодельной электроники используются PLA, PETG или их разновидности. Я использовал PLA, но PETG обладает лучшими характеристиками. PLA больше подходит для печати прототипов или художественной печати.
STL-модели деталей корпуса и файлы, созданные в слайсере, находятся моём репозитории на GitHub в директории 3d.


Сборка

Сборка всего адаптера проста:
Навесным монтажом собирается электронная схема.
На двухсторонний скотч к нижней части корпуса приклеивается батарея, модуль зарядки, DC-DC преобразователь.
К внутренней части верхней крышки на двухсторонний скотч крепится Raspberry Pi Pico.
Соединяется схема питания и Raspberry Pi Pico.
Две части корпуса соединяются на шурупах.
Вилка mini-USB вставляется в разъём mini-USB клавиатуры.
Корпус крепится к клавиатуре на двухсторонний скотч.
Собрать можно и без dupont-разъёмов, но гораздо удобнее, когда можно удобно при необходимости отсоединить Raspberry Pi Pico или батарею.
Установка прошивки
Прошивка находится в моём репозитории GitHub. Так как теперь адаптер уже готовое решение, то можно использовать прошивку в виде файла в формате UF2.
UF2 — формат, разработанный Microsoft, позволяющий обновлять прошивку без сложных программ. Обновление прошивки выполняется загрузчиком, на плате устройства. Загрузчик нужно перевести в специальный режим, где он эмулирует внешний USB-диск. Для обновления прошивки нужно записать на этот диск файл прошивки в формате UF2.
Для Raspberry Pi Pico это выглядит так:
Зажимаем на Pico кнопку Boot.
Подключаем к разъёму USB компьютера.
Отпускаем кнопку Boot.
На появившийся диск копируем файл прошивки.
Чтобы ничего не спалить, лучше отключите Pico от остальных компонентов устройства.
Потребление тока
Так как адаптер использует аккумулятор, нужно рассмотреть энергоэффективность разработанного устройства.
Замеры потребления тока оказались следующие:
Сценарий работы |
Потребляемый ток от аккумулятора |
|---|---|
USB-клавиатура не подключена |
47 мА |
USB-клавиатура подключена |
84 мА |
Выполняется печать на клавиатуре |
100…110 мА |
При использовании батареи ёмкостью 1000 мАч адаптер способен проработать 8–9 часов. Время автономности можно немного увеличить, используя энергоэффективные режимы работы Raspberry Pi Pico.
Сама USB-клавиатура потребляет достаточно много тока, поэтому я не стал усложнять прошивку. Хотя осталась интересная задача по энергоэффективности.
Забавный факт, но маленький USB-донгл для беспроводной клавиатуры потребляет больше тока, чем USB клавиатура Kingston HyperX Alloy (общее потребление тока 127 мА вместо 84 мА у моей Kingston).
Выводы
Когда получаешь работающее полноценное устройство, испытываешь радость. Применение знаний на практике ещё лучше закрепляет знания.
Использование готовых модулей значительно упрощает задачу создания автономного питания для Raspberry Pi Pico W.
Полученный в итоге адаптер можно использовать в повседневной жизни. Большую роль в завершённости устройства играет корпус.
CAD-системы и 3D-принтеры значительно упрощают разработку и изготовление DIY-устройств.
Разработка корпуса — итеративный, творческий и увлекательный процесс, 3D принтер позволяет быстро получить и опробовать прототип.
В своём корпусе я бы добавил ещё несколько отверстий для крепления, но и разработанный является юзабельным.
Возможно, более элегантным решением будет разработка корпуса, который собирается без использования шурупов, но я использовал шурупы для надёжности.
Энергопотребление устройства достаточно высокое, но заряда аккумулятора должно хватать на один рабочий день. Можно увеличить ёмкость батареи или посмотреть в сторону спящего режима Pico, но и сама USB-клавиатура потребляет значительное количество тока.
© 2026 ООО «МТ ФИНАНС»
Комментарии (4)

ProstoAlex24
20.05.2026 09:00При использовании батареи ёмкостью 1000 мАч адаптер способен проработать 8–9 часов.
заряжать каждый день ?! о_О
Спасибо, но нет, спасибо. Я свою Keychron раз в полгода заряжаю, и то кажется, что часто )))
kenomimi
TP4056 так использовать нельзя, она не поддерживает заряд-разряд одновременно, и в таком сценарии уходит в защиту. Нужен именно модуль с поддержкой одновременного заряда и разряда, их много на али (например, MH-CD42), размер примерно тот же.
artyomsoft Автор
Спасибо за замечание. Не знал этого. Но зарядка вроде всегда работала без проблем.
kenomimi
Она может работать, но это нештатный режим. Китайцы так делают иногда, но они таки ставят цепь отключения для нагрузки, когда идет зарядка.