Беспроводная клавиатура на nRF52840. Как организовать питание?

АлександрАВ

✩✩✩✩✩✩✩
16 Апр 2022
8
0
Здравствуйте.

Предыстория:
Решили мы с товарищем сделать себе клавиатуры. Ибо то что есть в продаже не ахти. Можно конечно заказать из-за границы, но сейчас не вариант. Да и хочется самого лучшего. Параметры клавы достаточно тривиальны, но не без исключение. Беспроводная ортогональная раздельная клавиатура с раскладкой jian, но с добавлением 1 клавиши. Микроконтроллер nRF52840, поддерживает ZMK/QMK прошивки, подключение по USB, BLE, 2.4 ghz при использовании ключа. Все выше описанные функции уже давно отработаны и под них есть исходники, включая разводку и обвязку микроконтроллера. Остается собрать этот конструктор, добавив несколько фишек от себя и спроектировать корпус. Вот мы с мыслями, что все будет просто приступили. Оговорюсь для понимания, товарищ мой программист, от него я ожидал помощи только в настройки прошивки и идей в создании клавы, а на себя взял все остальное. Я учился на программиста-инженера, где программа обучения предусматривала не только изучение программированию МК, но и разработке железа, от кристаллов до готовых устройств. Но я это бросил на 2 курсе, не успев особо получить применимых знаний, а что получил уже успешно забыл. Не интересно мне это оказалось. От слова совсем. Решил уйти в другую специальность. Ну и в этом проекте я планировал, что какие бы то ни было знания мне пригодятся. Ан нет. В клавиатуру было решено добавить 5 зонную подсветку клавиш (5 светодиодов на клавишу по 12 ма, 23 клавиши на одной половинке, если одновременно включить все светодиоды на полную яркость белым цветом будет 1.5 ампера потребления, но типичное потребление планируется не более 0.3 ампера от подсветки ), тактильную отдачу от iphone или sony (у них самые навороченные линейные вибро моторы и стоят копейки, по ним правда вообще ничего не знаю, ориентируюсь на 0.5 ампера, управление шимом через транзистор) и датчик препятствий, для пробуждения клавиатуры при приближении рук (с помощью датчика жестов APDS-9960, если подскажете более простую, реализацию на фотодиодах, буду благодарен.). Вот тут и вылезли все проблем, которые самостоятельно у меня решить не получилось.

Добавление новых функций резко увеличило пиковое потребление системы до 2-3 ампер и повышения напряжения питания с 3.3 вольт до 5. Аккумулятор большой емкости легко нашел свое место в конструкции без изменения размеров. Но этот аккумулятор 1s, а при попытки использования сборки 2s, резко увеличиваются размеры и падает емкость. От куда появляется первая проблема.

Проблема №1
Поиск подходящей DC-DC повышайки c 3.0v (А лучше 2.8, так как под нагрузкой напряжение акб просаживается) до 5.0v или ее схемы для самостоятельной пайки, с высоким КПД, током 2-3a и не большими размерами.
По ка что было найдено 2 варианта. Готовая схема из китая на TPS61088, но цена не радует, а самое проблемное размер, ее очень сложно впихнуть в клавиатуру. Второй вариант использовать плату от повербанка ip5306, существенно дешевле и компактнее, уже есть встроенная зарядка, но время переключения между внешним питанием и акб 50мс. И если МК можно запитать от отдельного стабилизатора на 3.3в (тоже нужно искать, чтобы мог повышать напряжение), что бы при подключении зарядки не было перезагрузки MK или отвала беспроводной связи, то светодиоды, подозреваю, могут мигать. Да и общее качество этого модуля вызывает вопросы.

Проблема №2
Питание по USB. А вот тут совсем все плохо. Спецификация USB type-С позволяет получить до 3A, а при пайке резисторов с СС1 и СС2 линий на землю, правильной идентификации современными зарядками. Но проблема в том, что это клавиатура, да еще и программируемая, и подключение к ПК, к портам USB 2.0, норма. И нагрузка в 15 ват будет уводить ПК в защиту по питанию USB, и это в лучшем случае. Следовательно нужна микросхема управления режимом питания по USB, при чем такая, что определит подключение к USB 2.0, так как это разъем тупой, и не идентифицирует что к нему подключено. По этому ограничение тока должно происходить на клаве, в зависимости от версии и интерфейса USB. Но я пока не смог найти ни названия таких чипов ни схемы их подключения. Максимально близкое, что я пока нашел TUSB320 и STUSB4500, но как я понял, они работают, только с новыми версиями USB, а так же по протоколу power delivery. То есть с портами, способными отвечать, что они такое и сколько тока готовы отдать. Можно конечно полностью отказаться от зарядки, так как аккумулятор съемный 18650. И в логику беспроводной клавиатуры, замена аккумулятора вместо его зарядки вполне вписывается, также это решит проблему с задержкой переключения ip5306. Но не хотелось бы урезать функционал клавиатуры, мало ли где она будет использоваться. USB type C уже почти везде есть, а вот зарядка li-ion не всегда под рукой.

Буду крайне благодарен всем, кто попытается помочь.

Очень примерная компоновка одной из половинок клавиатуры, если кому интересно:

image.pngimage (2).pngimage (1).png
 
Изменено:

АлександрАВ

✩✩✩✩✩✩✩
16 Апр 2022
8
0
Нашел вот такой контролер BD93W21F , но в связи отсутствием профильных знаний и языка мало что понял. Судя по всему контролер USB должен говорить процу платы какой usb подключен, а проц дает команду силовой части, сколько ват можно потреблять. Ну допустим IP2305 можно регулировать в достаточных пределах для стандартов usb, но в месте с dc-dc преобразователем его не впихнуть. Даташит прикрепил архивом, PDF -ка не влезла.
 

Вложения

Изменено:

АлександрАВ

✩✩✩✩✩✩✩
16 Апр 2022
8
0
@Геннадий П, У этой клавиатуры значительно меньше клавиш чем у стандартной, за счет реализации слоев. И светодиоды будут подсвечивать только тот символ, что сейчас активен. За основу взята эта раскладка из 4 слоев + доп слой будет с мультимедийными клавишами и макросами. Как раз 5.
jian-ru.png

Сайт увы пережимает фото
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,910
617
45
@АлександрАВ, Я все понимаю. Но разве такая клавиатура не рассчитана на слепой набор? А в слепом наборе особо пофигу где что подсвечивается.
 

АлександрАВ

✩✩✩✩✩✩✩
16 Апр 2022
8
0
@Геннадий П, Да, в принципе любая клавиатура, на это рассчитана. Но мои навыки слепой печати не велики и переучиваться надо на новую раскладку. Да и внешне подсветка, если она сделана нормально, а не похожа на светофор смотрится хорошо.
 

akzi

✩✩✩✩✩✩✩
9 Июн 2020
1
0
Кейкапы какие-то специальные/самодельные с 3д принтера, раз 5ти зонную подсветку переваривают?

Себе в данный момент тоже хочу сплит, но такой, который обратно соединять можно... Фотки видел готовых, вдохновляло, если это ортолинейные или приближенные к этому.

+Хотелось клавиш побольше, аля 75%-TKL, т.е не самый минимум.
Самое интересное - хочется поэкспериментировать с раскладками - свести к минимуму различие в местах знаков препинания и тп на разных языках, может только на втором слое, или с нажатыми доп клавишами модификаторами и тп, НО В ОДНОМ МЕСТЕ, на своей diy клаве могу себе позволить 6-7 "лишних" кнопок под "лишние" буквы в ру, и отдельные кнопки переключеня раскладок(может даже аля тумбллер двух трехпощиционный, а не эти вот дебильные кнопки без фиксации..._" ==>> сразу нехилая часть кейкапов не подходит мне!(

НО(!!!) F1-12 ряд весь (или минимум F11, F12!), PrintScreen, Caps Lock, Num lock, ScrLock, Ins, PgUp/Down, Home/End , Win, кнопка вызова контекстного меню, Alt, Tab -- какими-ниб мембранными кнопочками минимальной высоты, точно меньшей высоты, желательно с подсветкой в середине, аля как на редрагонах; а также фигурной формы(на редрагонах все одинаковые, блин), чтобы и тактильно различать!)
Надо погуглить, на каких клавах были кнопки мультимедийные мембранного варианта с подсветкой снизу, чтобы вытащить оттуда резиновые части, срисовать pcb, светодиоды выпаять и тп.) Т.к. не пришло в голову где еще что-то подобное полуготовое достать.
Но, кстати, эта часть предполагает сверху закрывающую панель корпуса, с прорезями точно по размеру... Где в своем мухосранске подобное смогу недорого заказать!?(

+Крутилки компактные горизонтальные аля Redragon механики/Logitech
+Несколько дублирующихся блоков Play-Pause(на разные плееры-вкладки-расширения). Вот там точно треугольной формы Play, пауза и стоп какой-ниб еще нестандартной формы и тп. Ну или там добавлять опять слои и или на модификатор Fn N*.

Дисплей вместо led светодиодов состояния побольше минимальных 128-32 и 128-64, т.е и SoC не самое г, чтобы управлять всем этим mipi-dsi! Они сейчас копейки стоят, чего бы не побаловать!)

Адрессные лед светодиодные ленты раскурочить на подсветку, ваш вариант 5типозиционной подсветки - крутейшее, что нашел!) Могу посоветовать только еще rgbww вариант адресных светодиодных лент искать, хз получится ли максимально компактно... ww - позволит кроме 3цветов еще и белый, даже теплый белый(!) иметь на своей клаве, ибо многие рукастые перепаивали на своих клавах светодиоды подсветки на белые приятного оттенка, ну и я их понимаю!)

==============================
Понравилась идея аналоговых(магнитных на эффекте Холла(и или TMR сенсорах- UPD2!) клав - что можно настроить срабатывание как на ноутбучных или мембранных на самом дне нажатыми! А не как обычно чуть коснулся соседних клавиш, и уже тут и там тьма опечаток!( У меня опечаток на многих островных и тп аля ноутбучных клавах намного меньше было.

Нагуглил максимально diy клаву на магнитных самодельных свитчах Riskable70 - his Void DIY magnetic levitation keyboard switches. Опенсорс,
кейкапы diy на 3д принтере с встроенными магнитиками, +это влагозащищенный вариант легко моющийся.
Только траблы с размером - переделывать все на лоупрофиль ортолинейный сплит вариант, размер свитчей дотянуть бы до низкопрофильных Нюфи и редрагонов, чтобы совместимые кейкапы были уже.... Хотя печально насчет низкопрофильных кейкапов, их итак вразы меньше, аля пудинги с надписями сбоку фиг найдешь, да и надписи то не особо подойдут стандартных qwerty-йцукен((...
=============================


Пока затарился дешевыми редрагонами, а в новых там не арм процы 32битные, как раньше было, а поменяли на 8051 клоны в лице byk916 901( Только 1 клаву купил бу на старых sonix mcu, куда портирован qmk - попробую sonix qmk (порт qmk на редрагоны__реддит) сегодня собрать прошивку и залить.
+Там еще openrgb, была надежда прикрутить вот такую фичу - на разных раскладках/слоях - разным цветом светить, (т.е. кириллицу красным!, а qwerty - синим, например.) Пока подобное приделывали только на корсаир клавах через модульность их фирменного сотфа(на хабре статья была), в редрагонах софт г, прямого управления светодиодами не умеет ни софт, ни дефолтные прошивки их клав... qmk прошивка, вроде бы, умеет!) В новых беспроводных редрагон клавах 2 MCU: 8051 клон и beken какой-то как приемопередатчик по беспроводу 2.4/BT5. На их "новые" 8ми битные пока портов прошивок нет(на 2 других брендов клавы с подобными mcu пытаются портировать, или уже? В отзывах на подобные чипы говорят, что анрил почти, они примитивные и крайне тормозные, qmk придется основательно очистить от функционала, это уже не тот qmk будет(

Даже мысль появлялась поменять чип byk916, встроить вместо него какой-ниб stm32/arm0/... аля как тут, на habr статья с заменой чипа сгоревшего на rp2040 , но покрасивее как-ниб, может можно прям на родное место впаять через переходную плату и тп. Как вариант разрабатывать pcb под тот корпус...

Сейчас на начало 2025 какой чип заказывать? rp2040 устарел, наверное, вроде бы уже на nrf52840 модули от нордик портировали всякие прошивки. С другой стороны, мне не уперлась эта беpпроводность, а на магнитных свитчах не видел беспроводных, видать жрут энергию как не в себя!)
Upd2! TMR сенсоры не жрут ничего почти, на порядки и тп меньше чем HE сенсоры, есть и совместимые +- по выводам, по обвязке, тупо замени один на другой с минимальной переделкой в прошивке, софте и тп и ок! Точнее также в десяток раз+. Даже какие-то находил, недорого, не на али, 100шт +- в 1к ббр вышло бы, терпимо, сравнимо с HE недорогими. Найти не могу сходу название, добавлю закладку страницы, если не забуду постараюсь обновить инфу!

Таки переключатель между несколькими компами и мобилой был бы удобен, каким-ниб слайдером-переключателем и тп.

+Трекпоинт-джойстики и всякие сенсоры аля присутствия, жестов, радары лидары аля Soli(уже модули даже продавались, вроде бы), сканер отпечатков и тп встроенный USB хаб - круть и юзабельно! хотя бы с козможностью дооснастить, т.е. модульного дизайна!)
И обязательно отстегивающиеся кабели и возможность вывести кабель с нескольких сторон под клавой, кабель канавки и тп)


Сейчас глянул в qmk, он уже даже несколько чипов для беспроводного соединения поддерживать научился, что есть круто!)
---------------------------------

Upd2. Заказал себе:
*st-link 2.1
с тем самым stm32f103CB(такая морока именно на них программатор найти была, ито это даплинк или j-link, и стоят они в 3,5 раза + дороже самых простых с 64кб и тп на китайских клонах stm32 чипах без защит и нужных функций (но некоторые те клоны хвалят, аля прямо 1в1 прошивку как stm32 заливают, и они ок работают! Круть!). Защит порта usb, портов mcu от статики и тп также не заметил на платке (опять такое только у самодельщиков, блин), согласований питающего напряжения и тп тоже. Гребенка с нестандартным шагом и разъемом, но пофиг - разово надо, надеюсь). Это для блэкпил прошивки и заливки sonixqmk, +возможно для wch582m тоже.
*rp2040(Слишком дофига проектов на них! Всюду портировали! +как и в rp2350b самой старшей и как в nrf52840 есть прошивка перетаскиванием как на флешку в проводнике и тп; + они от 130р, дешевле только совсем г с десятком кб памяти и тп. Отдельно чипы не смотрел, просто докупил и мелких квадратных платок. Чуть дороже есть с fpc шлейфиком на отдельную вторую платку с портом usb-c -- но оно не сильно компактнее, блин). Без безпровода, только если отдельный приемопередатчик добавлять.
+nrf52840 (чипы по 50р+16р доставка! Копейки, заказал несколько штук с надеждой развести когда-ниб плату pcb по уму? одна двухслойная с перемычками, ну а одну совсем многослойную очень компактную! Ибо с готовыми модулями этими особой компактности не добиться, блин! К этому же располагает и то, что mcu есть как bga, так и с выводами, хоть и с очень мелким шагом - через1-2 таки припаяться можно). Платки тоже самые простые, походу, по 250р пару-тройку( ибо хотел без диодную сборку собрать, но на эти платки не выводятся все под 50шт gpio и тп от чипа nrf52840, т.е. даже подобные сплит без F* ряда, цифр и тп без диодов и матрицы будет трудно, блин(. С дополнительными выводами вторым слоем внутренним и тп в тех же +- компактных размерах стоили уже кратно ^A больше(.
Почему -то не нашел дешевых платок nrf52840 сразу с дисплеем, а ведь ips дисплеи отдельно сущие копейки стоят? Подобное для rp2040 видел, но дисплеи опять на вкус и цвет разные? не то(
+black pill для повторения вариации на тему Riskeyboard70(хотя тут них нет вокруг 3д принтера. и хз сколько слупят с меня за pom печать тем инженерным супергладким филаментом, а части прозрачным аля pc или какой-там пластик был...) это без безпровода, или отдельным дополнительным модулем-чипом на безпроводную связь. Ну и мне нравятся свитчи магнитные тоненькие меньшей высоты из нюфи клав, как бы не пришлось ту клаву за 8-10к по текущему курсу покупать на разбор.
+wch582m - больно мне понравились их платки, что вывели все 40 gpio в 2 ряда слева и справа, но она здоровенная, блин(... Но это не bga чип, припаяться к mcu таки можно? хоть и с трудом(проводами волосинками) на diy pcb!) И это далеко на самый топ чип из всей серии. Там ch584m или ch585m, забыл, подошли бы лучше, т.к. появлялся в хар-ках в даташите HS usb2! 8kHz и тп NFC, но стоило 1к+ и отдельно чипы не продавались( Но это такое, стоит недорого=150ббр, чисто поэтому, и это risc-v, но отзывы так себе, с другой стороны мне все фичи и энергопотребление до нано амперов пофиг как для клавы, и что они там с г и палок насобирали архитектурно(вон, qmk на атмегах 8мибитных работает и ок!) +Если не смогу tmr сенсоры найти(HE жрут нехило!), и тем более для проводного варианта! Но есть уже порт qmk и тп, поэтому...

Если вам совсем макропад какой-ниб мелкий, то там до 100р ch57*f или ch58*f были безпроводные ble 5.3+, там только выводов меньше - 20!, а также FS USB2, памяти +-, ble и тп, но надо тестить как оно работает! Отзывов в плане работы на клавах и тп мало или нет!
------------------------------------------------------------------------
Далее, столкнулся с тем, что мне надо rgb адресные светодиоды, не помню какие там в Riskeyboard70, обычные ws2811-12? 12V?
Нагуглил и нашел на али ws2813 5V, из фич: если один светодиод выйдет из строя, то(ну, в хорошем сценарии) остальные за ним следующие не перестанут светиться. И еще много разных видов и клонов! Топикстартер как собирается уместить их? Там хваленые из недорогих sk9822(на низкой яркости якобы не мерцают - этим круче всех, даже круче чем apa102, и частота их повыше многих, пусть и не такая высокая как в дорогущих APA102) таки крупные по размеру! Или у вас контрроллер отдельно и просто 3-4 дорожки к диодам и земля, или там вообще отдельные цвета и только яркостью управлять хотелось? Вот тоже думаю WW led отдельно подсветку пустить! Ато, блин, 5 вольтовых ws2813 нет rgbw, хваленых не самых дорогих sk9822 тоже нет rgbw((
Т.е. если хочу rgbww, то выбора еще меньше!( Там чуть не остаются только клоны 2812 и тп 12V(но пишут, вроде, что можно и с меньшим напряжением пусть и не так ярко(а мне куда по глазам лупить?!).

А если попробовать шаг и размер свитчей, кейкапов и тп подстроить под готовые матрицы адрессных светодиодов 10*10 и тп?? Свитчи то бывают из прозрачного пластика, полно вариантов, включая и кейкапы и тп. Некоторые вполне компактные! можно потеснить немного! А некоторые аля супернизкопрофильные механические бабочки, но не pg1316s, там чуть компактнее были - они совсем небольшие!) + вариант с свитчами void diy магнитными - там же можно отмасштабировать их!) Крч, нашел лайфхак!) Но они не такие уж дешевые( Проще нарезать кусочки из 1m с 60 led? Ну или подскажите откуда недорого достать? Также померьте сколько см надо на 5-6-11 клавиш в ряд у вас. А в тех лентах шаг считайте сами: на 1м: 30, или 60, или 144шт( Т.е на 20 см: 6шт, или 12шт, или 28.8шт светодиодов приходится, если не резать и не паять. А у меня на клаве 10.5 клавиш на 20см = 11клавиш на 21см, целое кол-во одинаковое не получается сходу, надо резать, чуть сгибать ленту гибкую под ними и тп(
 
Изменено: