image

Полный видеоролик по этой статье есть на моём YouTube-канале.

Это первая статья в серии, описывающей все этапы создания умных часов. Здесь я хочу показать, что в 2025 году не так уж сложно самому собрать достаточно неплохую модель. Хочется, чтобы наш проект по созданию обновлённых часов помог создавать их и другим желающим.

Вкратце:

  • Мы выбрали микросхему для Core Time 2 — SF32LB52J. Она разработана компанией SiFli и имеет опенсорсный SDK.
  • Я пишу серию статей, посвящённых сборке умных часов.
  • В этой я рассказываю о выборе микросхемы. Про остальное программное и аппаратное оснащение напишу в следующей.
  • Надеюсь, что и вы сможете использовать PebbleOS для сборки интересных умных часов и прочих девайсов.

Умные часы можно отнести к достаточно индивидуальным устройствам, и я реально надеюсь, что перенос PebbleOS в опенсорс разожжёт воображение энтузиастов и поможет им создать собственную идеальную конфигурацию.

В целом, система умных часов состоит из трёх основных компонентов:

  • Железо (сами часы).
  • ПО (обычно прошивка или операционная система).
  • Мобильное приложение (программа под iOS и Android, которая отправляет уведомления, скачивает циферблаты и прочее).

Проектирование потребительской электроники вроде умных часов сопряжено с максимальными ограничениями. Сначала вам нужно определить конечную цель («Хочу часы с читаемым при дневном свете дисплеем, которые будут держать заряд 30 дней»). Потом разбить её на функции/спецификации («E-Paper дисплей», «Bluetooth LE», «водонепроницаемость», «рыночная цена $150») и затем спроектировать дизайн на основе аппаратных и программных компонентов («Sharp Memory LCD», «Li-Pol батарея на 150 мАч», «FreeRTOS» и так далее), которые будут отвечать обозначенным спецификациям и решать поставленную задачу.

После почти 20 лет разработки различных продуктов для меня этот процесс выглядит вполне естественным и порой выстраивается на ходу. Я могу взглянуть на любой продукт и представить себе развёрнутую картину, прикинуть затраты на производство и представить, как будут сочетаться его программные подсистемы. Но такое умение играет как в плюс, так и в минус.

Аппаратное обеспечение часов можно разделить на пять основных систем:

  • Микроконтроллер (обычно с Bluetooth).
  • Дисплей.
  • Датчики и выводы (кнопки, микрофоны, акселерометр, динамики).
  • Прочая электроника (микросхемы, пассивные компоненты, печатная плата, батарея).
  • Механическая часть (корпус часов, стекло, кнопки, ремешок, кабель зарядки).

Сегодня для последних трёх систем подобрать компоненты достаточно просто. Есть множество различных вариантов датчиков, батарей, ремешков, корпусов, микрофонов и прочего на любой бюджет. Вписаться в максимальные ограничения с их помощью относительно легко, и в следующей статье я расскажу об этом подробнее.

Самыми же сложными решениями по части компонентов будет выбор:

  • Микроконтроллера и модуля Bluetooth (описано в текущей статье).
  • Дисплея (будет описано в следующей).

▍ Предыстория


Во времена первых часов Pebble мы использовали микроконтроллеры STM32. Почему? Как-то одним пятничным вечером в далёком 2011 году мы попивали пивко в хакспейсе Hacker Dojo, и мой друг, Хьюго Финнес, восторженно рассказывал об этом относительно новом МК. В те времена я работал над inPulse, в котором использовался LPC2103 (8 КБ RAM!) — и Хьюго обоснованно считал, что нам срочно нужен апгрейд.

Честно говоря, у меня так всегда. Думаю, что каждый важный выбор микросхемы я делал на основе восторженных рекомендаций друзей в отношении конкретной модели. Да, у меня довольно эксцентричные друзья ? Спасибо Трамеллу Хадсону, ТЛ Лиму из Pine64, Питеру Баррету и всем тем, кто давал мне советы в течение этих лет.

Микроконтроллер (МК) — это сердце умных часов. По сути, это целый миниатюрный компьютер, так как в нём есть процессор, RAM, чаще всего флэш-память, механизм ввода-вывода и иногда радиомодули — всё в одной крохотной интегральной микросхеме.

Спецификацию использованных нами ранее МК можете глянуть в этой полезной таблице — 64-144 МГц, 128-256 КБ RAM. В те времена у МК не было интегрированных модулей BT, поэтому мы использовали дополнительные микросхемы вроде TI CC2564 (эта модель почему-то накрепко отпечаталась в моей памяти, возможно, из-за боли с поиском подходящего BT-стека).

▍ Почему так важно выбрать правильный микроконтроллер?


Вернёмся к аспекту максимальных ограничений. МК находится в центре наиболее ограниченных и определяющих всё «уравнений» — совместимость ПО, энергопотребление и затраты.

Самым интересным и трудным ограничением по факту является совместимость ПО. Встраиваемое ПО намного более фрагментировано и специфично в требованиях, нежели ПО для операционной системы ПК. Поскольку компьютер не сильно ограничен в ёмкости жёстких дисков, ядро его ОС можно оптимизировать под более широкую совместимость — к примеру, Linux содержит 17 000 драйверов устройств.

PebbleOS же, по сути, писалась с учётом поддержки МК лишь от одной компании — STM. Для перехода на другого производителя нужно было писать новые драйверы периферии (i2c, SPI, DMA и так далее), осваивать новый SDK и порой вносить изменения в систему. Все эти коррективы не представляют рисков, но требуют времени на реализацию и тестирование. Некоторые МК с натяжкой поддерживают FreeRTOS (к примеру, nRF53/54, в котором отсутствует стек BLE (Bluetooth Low Energy)).

Поскольку мы не планируем выпускать сотни, тысячи или миллионы часов, затраты на разработку ПО не получается амортизировать за счёт количества, и они сильно сказываются на итоговой стоимости каждой единицы. Мы даже готовы рассмотреть покупку более дорогой микросхемы, если только это позволит упростить и ускорить разработку ПО.

Умные часы должны быть постоянно подключены к телефону по Bluetooth, поэтому среднее энергопотребление здесь будет одним из самых значимых расходов заряда — вторым будет дисплей.

▍ Выбор микросхем для новых часов


В итоге мы решили использовать для модели Core 2 Duo микроконтроллер Nordic nRF52840. Это старенький чип, но мы были с ним хорошо знакомы и знали, что он довольно шустро потянет PebbleOS. Поначалу мы хотели использовать стек Nordic SoftDevice BLE, но благодаря стараниям Лиама (мой коллега из Pebble, а ныне один из контрибьюторов Rebble) переключились на опенсорсный стек BLE под названием nimBLE.

Несмотря на то, что производительности nrf52840 достаточно для Core 2 Duo, для Core Time 2 (CT2) нам нужен был МК с бо́льшим объёмом RAM и большей мощностью.

Мы решили продолжать использовать для этой модели микросхемы Nordic (так как только что потратили уйму времени на портирование PebbleOS для работы с Nordic SDK и периферией), но план Nordic по развитию микроконтроллеров с BLE не особо радовал. Их микросхема nRF54L15, занявшая на тот момент бюджетный сегмент, несла на борту лишь 256 КБ RAM.

Увеличенный цветной дисплей Core Time 2 требует больше памяти, плюс мы хотели оставить запас для каких-нибудь новых функций. Кроме того, эта модель лишь недавно вышла в массовое производство, поэтому из наших друзей её ещё никто не использовал — то есть отзывов было мало.

У Nordic также есть серия 54H с 1 МБ RAM, но она минимум вдвое дороже ($4-5). Опции на 512 КБ нет. В CT2 также нужен особый интерфейс для 64-цветного MIP-дисплея, который в моделях Pebble 2015 года управлялся при помощи отдельной ПЛИС.

Итак, я находился в поисках новой микросхемы. Я рассматривал различные опции вроде Apollo, BES и Dialog, но не находил ничего, что бы в точности подходило под наши нужды. Одним из самых серьёзных препятствий являлось отсутствие опенсорсного SDK.

Была одна весьма интересная микросхема от BES, но мы столкнулись с проблемами при попытке её протестировать — банально из-за отсутствия доступного SDK. Примеров кода не было. Вся информация находилась под соглашением о неразглашении. Нам этот вариант не подходил — PebbleOS должна быть опенсорсной.

Но здесь нам внезапно повезло. Мне написал генеральный директор небольшой компании по разработке Bluetooth под названием SiFLi, и мы в течение нескольких часов обменялись серией сообщений. Стало ясно, что он очень хотел пристроить свои микросхемы в опенсорсную модель умных часов.

Чипы SiFli изготавливаются в качестве основного элемента часов. Они уже используются в десятках миллионов таких устройств, выпускаемых брендами вроде Redmi, Oppo, Noise и многих других. Самая малая (!) их микросхема, SF32LB52x, располагает более 512 КБ SRAM, 16 МБ PSRAM, имеет выделенную MIP-линию для нашего дисплея — исключая необходимость в отдельной ПЛИС или дорогостоящей интерфейсной плате вроде Epson.

Помимо прочего, у неё крайне низкий профиль энергопотребления: ~50 мА при активном BLE-подключении. Причём стоит она меньше $2! У компании даже есть несколько микросхем, несущих от 1 до 2MB SRAM, на которые мы можем перейти в случае необходимости.

Самое же главное — их SDK лежит в открытом доступе на GitHub, и они предложили помочь портировать PebbleOS, чтобы та работала на их чипах.

Итак, что мы имеем. В качестве микросхемы для Core Time 2 будет использоваться SF32LB52J (вариация SF32LB527 на 1,8 В). Эта модель однозначно отпечатается в моей памяти надолго!

Ссылки на SiFli:


Telegram-канал со скидками, розыгрышами призов и новостями IT ?

Комментарии (1)


  1. nixtonixto
    25.05.2025 12:26

    Чип очень похож по цене и периферии на ESP32. При том, что у Espressif просто огромное сообщество и есть библиотеки на все возможные случаи.