В поисках правильной чёрной таблетки

 Выбираем наиболее удобную/доступную плату с STM32 и поддержкой QMK


Предыстория. Уже почти год я использовал в своих проектах безымянные Black Pill с 
STM32F103C8T6 (верхняя плата на фото). Как для плат (см. контроллер для IBM Model M), так для brute-force переделки разных клавиатур в USB.
Достоинств масса:
  • Копеечная цена. На дату написания статьи они стоили $1.73 плюс $1.18 доставка. В 2 раза дешевле, чем Pro Micro.
  • Полно пинов. 27, если не использовать B12, на котором висит набортный светодиод. Если задействовать его и ещё A13/A14 от SWD, то получается 30. Более чем достаточно для больших матриц M-122 или Kinesis'а. Многопиновый Teensy 2.0++ даже в виде китайского клона стоит в сравнении с этой платой просто безумно дорого.
  • Качество. Из 15 штук только с одной платой были проблемы в виде криво припаянного USB, который при этом работал. Проблем, связанных с неоригинальностью чипа, что уже давно практически поголовно встречается на Blue Pill, не замечено.
Оставалось некоторое неудобство с загрузчиком. Мне не удалось заставить работать STM32 HID bootloader, но оказалось, что STM32duino вполне себе удобен в его штатном режиме. Запустил скрипт прошивки и тут же воткнул USB — всё прошилось. Думал как-то над тем, чтобы вывести переключатель для BOOT1, но это оказалось не нужным. В QMK прикрутили скрипт, который перезапускает dfu-util каждые 5 секунд, пока не поймает загрузчик.

Одна беда — широкий футпринт с расстоянием между ногами в 0.7 дюйма. Это на 0.1 дюйма шире «узкого» футпринта с расстоянием 0.6 дюйма. До недавнего времени это никак не мешало. Но вот появилась идея сделать свой контроллер для drop-in замены в Kinesis Advantage (про Кинезисы надо бы написать отдельную статью). Существующие разновидности от Stapelberg'а (собственно, Stapelberg и kinT) мне не нравятся высокой себестоимостью — там используется Teensy 2.0++ (а kint2pp поддерживает еще и несколько Teensy 3.x), и габариты слегка выходят за 100 мм, что лишает нас скидки у JLCPCB других китайских производителей плат.

Безымянный Black Pill не влезал горизонтально, и я развернул его вертикально. При этом один из разъёмов встал напротив USB-разъёма Black Pill'а. Но вроде бы места было достаточно, чтобы воткнуть MicroUSB. На глаз вроде всё в порядке, нужно поскорее отправлять в производство, верно? Не верно. Это с гребенкой под KB-500 всё влезало, а если припаять Molex 39-53-2135, необходимый для KB-600, то уже не влезает. И это только одна проблема. Вторая — из-за криворукости я не учёл, что автор kinT рисовал плату зеркально и разъёмы должны были размещаться на обратной стороне. Определенный смысл в этом был — возможно, так было проще не перепутать левые и правые разъёмы.



Плата с узким футпринтом на примете была. Это Black Pill от Robotdyn. Ценник уже повыше, доставка подороже, но всё равно достаточно низкий. Качество пайки все хвалят. Есть ещё вариант с клоном, APM32F103CB, подешевле, можно было бы и его попробовать. Заказал 5 штук непосредственно на сайте Robotdyn, за три дня переделал плату.

Заодно добавил внешний EEPROM, чтобы поиграться с VIA, и вывел свободные позиции в матрице под 8 дополнительных свитчей. Всё прекрасно, размещаем заказ? А вот и нет. Прошла неделя, а заказ в Robotdyn всё ещё висит в статусе Processing, что не может не напрягать. Захожу в их магазин на Aliexpress, а там вариантов с родным STM32 уже нет в наличии, только с клонами. Вдруг объявят, что сняты с производства? Есть, конечно, с аналогичной распиновкой платы на F303, но ещё дороже. Одним словом, будущее туманно, а ведь нужно выбрать основу для проектов, которая будет доступна в ближайшие пару лет как минимум. Нет ли альтернативы?

Вспомнил, что у меня уже полгода лежит ещё один Black Pill под названием WeAct MiniF4 на базе STM32F401CCU6. С футпринтом всё замечательно, USB Type C, кнопки вместо boot-джамперов. В QMK на тот момент поддержки STM32F401 ещё не было, так что я взял плату для собственных экспериментов с ChibiOS. За полгода многое изменилось. К QMK прикрутили свежий ChibiOS, где STM32F401 уже поддерживается, и даже onekey-примеры для F401 и 411 сделаны в расчёте на платы WeAct.

DFU-загрузчик там уже прошит. WeAct Studio Download Tool представляет собой bat'ник для запуска консольного программатора от ST. Собрал handwired/onekey/blackpill_f401. Зажимаем кнопку BOOT0, подключаем USB, запускаем скрипт, указываем образ.

Всё прошилось и работает. Вот только boot0 наружу не выведен, так что нужен программный способ входа в загрузчик. Для тестирования собираем handwired/onekey/blackpill_f401:reset. Жмём единственную кнопку в матрице (B0-A7) — работает, попадаем в загрузчик.
За это время WeAct снял с производства платы на базе STM32F401CCU6, но ничего страшного в этом нет. Теперь там STM32F401CEU6. То же самое, только с 512 КиБ флеша вместо 256 и 96 КиБ RAM вместо 64. И то, и другое (пока) избыточно для QMK, но вдруг пригодится? Главное, что распиновка осталась прежней.

Ещё WeAct сделали аналогичную плату на старом добром STM32F103C8T6 и назвали её Blue Pill Plus. Но разница в цене с STM32F401CEU6 составляет меньше 50 центов, так что брать буду всё таки 401.

 P.S. Нашёл ещё безымянные зелёные платы STM32F401CCU6, вот такие:
 Документацию на них с ходу не нашёл никакой, да и стоят дороже, так что смысла в них нет.

Комментарии

Популярные сообщения