Предыстория

У моего девятилетнего сына диабет 1-го типа. Здоровая поджелудочная вырабатывает не только инсулин, который помогает преобразовывать глюкозу в крови в энергию, но и производит глюкагон, который сообщает печени о том, что необходимо выпустить глюкозу в кровь, когда уровень сахара в крови становится слишком низким. Человеку с диабетом 1-го типа приходится обходиться без этих естественных механизмов защиты и низкий сахар в крови может привести к потребности в неотложной медицинской помощи, если не заниматься лечением.

Нам повезло, что у нас есть доступ к технологиям, которые меняют жизнь, — например, системы непрерывного мониторинга глюкозы (CGM) и автоматизированные инсулиновые помпы. Однако у них есть свои проблемы, например, тревожные сигналы при высоком или низком сахаре. И помпа, и телефон моего сына начинают пищать, если его уровень глюкозы падает ниже 55 мг/дл. Это может произойти очень быстро в разных ситуациях: например, если он только что поел, получил большую дозу инсулина на еду, а потом пошёл на перемену. Или когда он играет во дворе и гоняет мяч. В идеале ему не нужно бы бегать с телефоном на себе во время футбола, но важно, чтобы он учился чувствовать приближение гипогликемии и успевал принять меры до того, как станет плохо.

Ещё один важный момент — сколько раз в день человек с диабетом 1 типа (или тот, кто за ним ухаживает) проверяет уровень сахара. Это как незавершённая задача, которая постоянно висит в голове, изо дня в день, — и это может вызывать усталость и эмоциональное выгорание. Поэтому, если бы можно было уменьшить время и количество усилий, необходимых для такой проверки или, ещё лучше, получать какой-нибудь сигнал в нужный момент, чтобы вообще не приходилось отвлекаться, — это могло бы значительно улучшить качество жизни.

Почему просто не купить Apple Watch?

Вот, наверное, о чём вы думаете. На отказ от яблочной продукции есть несколько причин.

Во-первых, Apple Watch (как и все продукты Apple) — это слишком гаджетный гаджет для ребёнка. В нём куча ярких функций, приложений и уведомлений. Это потрясающее инженерное и дизайнерское чудо, но оно слишком отвлекает ребёнка в школе.

Во-вторых, он плохо и ненадёжно отображает данные с мониторинга глюкозы (CGM). Интеграция с Dexcom часто работает в фоне, не показывает график в виджете — только число и стрелку. Люди даже идут на костыли вроде создания календарных событий, чтобы видеть актуальные данные.

А ещё задать удобные для пользователя настройки iOS, «Экранного времени» и уведомлений — это своего рода квест среднего уровня сложности. А нам нужно что-то простое.

Это стандартная ситуация, которая возникает, когда пытаешься сделать что-то лучше уже существующего на рынке. То, что продукт есть и технически «соответствует требованиям», не значит, что он работает хорошо. Я опросил сообщество людей с диабетом 1 типа, и результаты показали, что я не одинок: да, такие устройства существуют, и кто-то ими пользуется, но ответы ясно дали понять — они работают не так уж хорошо.

И вот что ещё важно: Apple много говорит о дизайне для детей и защитных механизмах — и да, у них действительно есть команды, которые этим занимаются. Но в корне проблема в том, что Apple — это не социально-ориентированная компания. Их устройства созданы, чтобы вызывать привыкание, удерживать внимание пользователей. А это не то, что я хочу видеть на запястье своего сына в школе.

Так у меня и появилась идея — создать простые умные часы с одной‑единственной функцией. Сначала для сына, а потом, возможно, вывести их на рынок как готовый продукт. Оказалось, я не один такой: другой папа — и по совместительству продукт‑дизайнер — Мэтт Лампкин ещё в 2018 году работал над похожей концепцией и подробно описывал свой опыт. Его кейс, презентация, а также советы и поддержка, которые он мне дал, когда я с ним связался, вдохновили меня всерьёз взяться за этот проект.

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

Пока детали ещё свежи в памяти, я хочу зафиксировать и поделиться своим опытом — вдруг он окажется полезным для других или просто интересным тем, кто задумывается о разработке hardware‑продуктов.

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

Требования к продукту


Мои цели по дизайну:

  1. Создать простое устройство без лишних функций, отвлекающих моего сына во время занятий в школе, и которое не требовало бы больших усилий для настройки.

  2. Устройство должно выдерживать игры на улице или занятия футболом, а также иметь защиту от дождя или брызг.

  3. Оно должно выглядеть как обычные смарт-часы.

  4. Устройство должно предоставлять корректные данные о глюкозе в любое время по запросу.

  5. Оно должно уметь тактильно уведомлять пользователя, например, при приближении опасной гипогликемии («Срочно! Низкий сахар») или затяжной гипергликемии («Высокий сахар более часа»).

  6. Дизайн циферблата должен потенциально упростить процесс проверки уровня глюкозы или хотя бы сделать его менее сложночитаемым.

Процесс


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

Первые макетные платы и модули

Полтора года назад я попробовал запрограммировать готовое устройство M5Stick для отображения данных CGM. Получилось! Но батарея садилась быстро, использовался Wi-Fi, а корпус (стильный оранжевый) был громоздким и не защищал электронику от дождя или даже аккуратного мытья рук.

M5

Когда я серьёзно взялся за разработку, то начал с готовых модулей от Adafruit и SparkFun — они предлагают удобные для макетирования компоненты: микроконтроллеры, сенсоры, батареи, кнопки, плюс отличную документацию с уроками, схемами и даже разводкой плат. Это позволило сосредоточиться на прошивке для Arduino и собрать основную систему с минимальной пайкой.

Ранний прототип на базе модулей Adafruit: ESP32-S3, DRV2605 и LiPo-зарядник

Первое серьёзное препятствие: стабильное BLE-соединение

В проекте было несколько технических «узких мест», способных поставить крест на всей затее. Первое — надёжное Bluetooth Low Energy (BLE) подключение к iOS‑приложению, которое должно получать данные от Dexcom. Apple жёстко ограничивает фоновые процессы ради экономии батареи и стабильности системы.

Изначально я пытался настроить фоновый запрос данных каждые 5 минут. Всё работало... но только если iPhone был на зарядке и приложение активно. Стоило его отключить или свернуть программу — запросы «проваливались в туман», выполняясь хаотично. Обходных путей не нашлось: iOS использует неочевидные алгоритмы, учитывающие частоту использования приложения, заряд батареи и другие факторы.

Это почти убило проект. Спасла смена логики: теперь часы (а не телефон) инициировали подключение каждые 5 минут, запрашивая данные через BLE. В этом случае iOS‑приложение (почти всегда) просыпалось и успевало выполнить HTTPS‑запрос во время сеанса связи. Так я доказал работоспособность схемы BLE → HTTPS.

Тест подключения Bluetooth Low Energy (версии 1 и 2)

Самое удобное оказалось в том, что данные Dexcom CGM обновляются с предсказуемыми интервалами. Это позволило настроить часы так, чтобы они просыпались и отправляли BLE‑запрос буквально через несколько секунд после загрузки новых показаний. В результате часы отстают от сенсора или помпы максимум на пару секунд — практически в реальном времени.

Переход на собственную печатную плату

После успешного тестирования прототипа на макетной плате пришло время уменьшить конструкцию до размеров наручных часов. Для этого я освоил Fusion 360 от Autodesk — программу для 3D‑моделирования.

Первое время было непривычно работать:

  • Вместо рисования 3D‑корпуса нужно начинать с 2D‑эскиза

  • Затем «вытягивать» его в трёхмерную форму

  • Любые правки исходного эскиза (который теперь в «прошлом» на временной шкале) влияют на всю последующую геометрию

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

Первая версия разводки печатной платы в программе Fusion 360

Для меня это стало настоящим вызовом. Пришлось осваивать:

  • Основы электротехники.

  • Программы для проектирования схем и печатных плат (я выбрал KiCad и не пожалел).

  • Правила подготовки файлов для производства печатных плат.

  • Особенности сборки, чтобы плата действительно работала после изготовления.

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

  • Разработку принципиальной схемы

  • Подбор компонентов

  • Изучение технической документации

  • Подготовку символов компонентов, их посадочных мест

  • Составление полной спецификации (BOM)

После долгой работы я наконец получил свою первую печатную плату! Теперь на одной компактной плате были интегрированы:

  • Разъём для батареи

  • Кнопка управления

  • Модуль DRV2605 (драйвер тактильного сигнала)

Первая версия платы

Тут же обнаружилась досадная ошибка — я перепутал полярность подключения батареи на модуле ESP32-S3, из‑за чего плата не включалась. Обидно, но это не остановило прогресс.

Воодушевлённый успехами, я решил отказаться от готового модуля ESP32-S3 в пользу чипа ESP32-S3-MINI-1 (со встроенной антенной), разместив его непосредственно на плате. Но возник вопрос: как прошивать firmware, выполнять отладку?

Изучив аналоги (например, часы Bangle.js), я понял, что удобнее всего использовать магнитные контакты типа pogo‑pin. Нашёл поставщика 4-контактных разъёмов и соответствующих кабелей USB‑A → pogo‑pin — решение сработало отлично.

Параллельно я сотрудничал с местной мастерской 3D‑печати, заказав несколько вариантов корпусов из смолы. Хотя детали получались идеально точными, материал оказался слишком хрупким для повседневного использования.

В ходе работы получил жёсткий урок: необходимость допусков (зазоров между деталями). В первой версии я их не предусмотрел — попытка вставить pogo‑коннектор закончилась сломанным корпусом. Методом проб выяснил, что оптимальный зазор для плотной посадки — 0.1 мм.

Тестирование TFT-дисплея и pogo-пина в корпусе из смолы

Неожиданные сложности с тактильной отдачей

Казалось бы, все вибромоторы‑»таблетки» с одинаковыми характеристиками должны работать идентично — но это не так. Из‑за разброса в сопротивлении между экземплярами требования к напряжению и реальная отдача варьировались от «вообще ничего не чувствуется» до «громко, как дрель».

DRV2605 (драйвер моторов) поддерживает калибровку, но я выяснил: стабильная работа возможна только с моторами, чьё сопротивление близко к 30 Ом.

Существует два основных типа тактильных моторов:

  • ERM — обычные вибромоторы, простые, но грубоватые;

  • LRA — линейные резонансные актуаторы (как в Apple Taptic Engine), обеспечивающие более тонкие и точные вибрации.

Я тестировал LRA, но доступные модели оказались слишком тихими — возможно, из-за качества или особенностей драйвера. В итоге для прототипа выбрал ERM: они громче и проще в управлении.

Задумка была не просто в «жужжании», а в ритмичных постукиваниях, скорость которых зависит от динамики уровня сахара:

  • Низкий сахар + падение → учащающиеся импульсы;

  • Низкий сахар + рост → импульсы замедляются;

…и так далее — чтобы сын мог на ощупь оценить ситуацию.

// Play a beat based on latest BG value and velocity
void playSugarBeat(float bg, float vel) {
  float totalDelay = 0;
  float maxDelay = 3000;
  int maxBeats = 8;

  for (int i = 0; i < maxBeats; i++) {
    // 40mg/dL = 20ms, 400mg/dL = 920ms
    float multiplier = 2.5;
    float offset = 80;
    float bgToDelay = (bg * multiplier) - offset;

    totalDelay += bgToDelay;
    if (totalDelay > maxDelay) {
      break;
    }

    playEffect(1); // 1 = a short tap
    delay(bgToDelay);

    bg += vel;
    if (bg > 400) {
      bg = 400;
    } else if (bg < 40) {
      bg = 40;
    }
  }
}

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

Выбор дисплея и корпуса

Остановился на 1.69-дюймовом IPS‑экране с разрешением 240×280 пикселей. Альтернативы вроде AMOLED (сочные цвета, высокая чёткость) или E‑Ink (энергоэффективность, всегда включённый экран) выглядели заманчиво, особенно учитывая их низкое энергопотребление. Однако их стоимость была существенно выше, а совместимость с библиотеками вроде TFT_eSPI (которую я в итоге использовал) оставалась под вопросом.

От сенсорного слоя сознательно отказался — он усложнил бы конструкцию, добавил лишнюю толщину и противоречил главной идее «часов без отвлекающих факторов».

Для изготовления корпусов сотрудничал с компанией Fictiv. Результат превзошёл ожидания: быстро, качественно и по разумной цене.

Корпус спроектирован под стандартные 20 мм ремешки с пружинными штифтами

Передо мной стоял огромный выбор производственных процессов, причём каждый вариант предлагал не менее внушительный ассортимент материалов. После тестирования двух технологий, SLS и Multi‑Jet Fusion (MJF), стало ясно, что MJF обладает неоспоримыми преимуществами. Эта технология не только более доступна по цене, но и обеспечивает исключительную точность печати. Используемый материал демонстрирует удивительную прочность, сохраняя свои свойства даже при толщине менее рекомендуемого минимума в 1 мм. Особого внимания заслуживает характерная зернистая текстура поверхности, которая выглядит очень аккуратно и профессионально.

Хотя SLS тоже показал хорошие результаты по прочности, качество печати оказалось несколько грубее, а изделия имели более выраженные признаки 3D‑печати. Основным недостатком MJF оказалась пористость материала, из‑за которой корпус свободно пропускал воду. Это потребовало поиска специального защитного покрытия.

В процессе испытаний были опробованы различные методы нанесения покрытия: ручная покраска, аэрография и распыление краски. Наилучший результат показала матовая серая аэрозольная краска Krylon, которая после высыхания создавала надёжное водонепроницаемое покрытие с УФ‑защитой, абсолютно не липкое и комфортное при ношении. При этом любые попытки использовать глянцевые составы приводили к появлению неприятного липкого слоя, который не исчезал со временем.

Первые собранные часы без стекла. В этот момент я почувствовал, что сделал настоящие часы

Эволюция печатной платы

К финалу проекта я последовательно разработал девять версий PCB. Наиболее значимым усовершенствованием стал переход с 2-слойной на 4-слойную архитектуру платы, что кардинально решило проблемы трассировки в условиях ограниченного пространства.

В процессе доработок я интегрировал акселерометр BMA400, выполняющий две ключевые функции: отслеживание шагов для мотивации физической активности и автоматическое пробуждение устройства при обнаружении факта снятия часов.

Многократная корректировка расположения компонентов позволила не только упростить процесс пайки и конечной сборки, но и оптимально разместить LiPo‑аккумулятор в ограниченном пространстве под платой.

8 версия конструкции корпуса с внутренними компонентами

К сожалению, я так и не нашёл идеального способа подключения аккумулятора. Пайка проводов вызывала опасения — не хотелось случайно спровоцировать короткое замыкание. Даже самый компактный 1.0-миллиметровый JST‑SH разъём оказался слишком велик для этого устройства.

Хотя вариант с зажимом проводов между платами не был реализован, возможность удобной замены и тестирования батарей определённо стоило предусмотреть в конструкции.

На плате v9 установлены стабилизатор RT9080 3.3V (U3), P-канальный MOSFET (Q1) и контроллер заряда MCP73831T LiPo (U2)

Аналогичная ситуация и с дисплеем — в идеале разводку платы стоило сделать под разъём для TFT‑экрана. Вместо этого приходится вручную припаивать шлейф, где расстояние между контактами не превышает трети миллиметра. Этот процесс:

  • Требует ювелирной точности

  • Занимает неоправданно много времени

  • Нуждается в профессиональном оборудовании

Схема v9 платы в KiCad

Изготовление стекла для часов

Я узнал, что китайская фабрика может изготовить небольшую партию стёкол с шелкографией по очень доступной цене и доставить их за несколько недель. Стекло не будет идеальным и уж точно не Gorilla Glass™, но будет достаточно близко к заданным спецификациям и вполне подойдет для прототипа.

Когда стекло было у меня на руках, я подумал, что у меня есть все необходимое для финальной сборки. Но тут выяснилось ещё кое‑что...

Оказалось, что нельзя просто взять и поместить стекло перед TFT‑дисплеем — в этом случае результат будет выглядеть как дешёвый смартфон первого поколения. Требуется специальная OCA‑плёнка (Optically Clear Adhesive), и только очень шумный и дорогой ламинатор сможет правильно её нанести. Без него неизбежно появятся пузыри, которые испортят изображение.

Я отправился в местную мастерскую по ремонту техники и попытался объяснить владельцу, что мне нужно не починить часы, а разработать свои собственные. Когда он наконец понял мою просьбу, то сказал, что у него нет OCA‑ламинатора. Его совет был прост: найти дисплей с уже приклеенным стеклом.

Эксперименты с плёнкой OCA

Это означало бы полный пересмотр конструкции: пришлось бы заново проектировать стекло, корпус и даже менять форму и размеры платы. Меня это категорически не устраивало.

После безумных поисков и ощущения, что проект вот‑вот рухнет, я осенило: OCA‑ламинатор по сути просто создаёт сильное давление, выдавливая воздух между плёнкой и стеклом. У меня не было ламинатора, но зато был... чугунный пресс для тортильи.

И знаете что? После нескольких проб и ошибок пресс сработал на удивление хорошо! Он удалил 99% пузырьков, а оставшиеся таинственным образом исчезли через пару часов. Проблема решена!

Другие кошмары сборки

На сборку этих часов ушло несколько часов, но при установке их в корпус отломилась кнопка

Корпус должен был быть максимально компактным и по возможности водонепроницаемым. Потребовалось множество проб и ошибок, чтобы:

  • Правильно подобрать размер и расположение кнопки

  • Точно позиционировать экран относительно стекла

  • Определить оптимальное место пайки дисплея к плате

TFT IPS дисплей оказался склонен к засветам по углам при малейшем перекосе или натяжении, поэтому все элементы требовали идеального совмещения.

Для фиксации стекла на корпусе я использовал клей T-7000, нанося его по краю стеклянной панели. Хотя для прочного соединения требовалось минимальное количество клея, устранение засветов по краям потребовало многочисленных попыток и доработок.

Внутренняя часть часов перед приклеиванием экрана

Сюрприз! Arduino небезопасен 

Когда сборка прототипа была практически завершена, я узнал, что для полной блокировки прошивки на ESP32 (чтобы её нельзя было прочитать или перезаписать) требуется два компонента: шифрование Flash и «Secure Boot v2». Оказалось, что ни то, ни другое не работает с Arduino IDE — приходится использовать менее удобную платформу разработки ESP‑IDF от Espressif. При этом бóльшую часть кода пришлось бы переписать с использованием библиотек для ESP‑IDF.

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

Финальный босс: оптимизация батареи

Большинство собранных мной часов работали около 3 дней, кроме одних — тех, что носит мой сын. Они почему‑то держались 6–7 дней. Трёх дней в целом достаточно, но я заметил, что при сильном разряде батарея переставала заряжаться — видимо, сбоили либо LDO на 3,3 В, либо зарядный чип. Чтобы устройство могло пройти бета‑тестирование, нужно было улучшить автономность «трёхдневных» часов.

Сначала я предположил, что в «долгоиграющих» часах могли быть изменены регистры GPIO на ESP32-S3. Я написал программу для считывания всех регистров, но различий не нашёл. Затем я попытался оптимизировать настройки, чтобы ESP32 не потребляла энергию в режиме сна (минимизировал плавающие пины и подтянул неиспользуемые к земле), но это не дало эффекта.

Затем я проверил, не связана ли проблема с разбросом параметров компонентов, но замеры сопротивления резисторов в разных часах не показали существенных отличий.

Я потратил несколько дней, но так и не понял причину. В планах была 10-я версия платы с увеличенным сопротивлением подтягивающих резисторов, но я не уверен, что это поможет. Ещё одна нерешённая задача — полное отключение питания, чтобы часы могли месяцами лежать «выключенными». Из‑за требований к водонепроницаемости и компактности корпус прототипа неразборный, что усложняет доработки.

Две готовые модели часов с промежуточными версиями дизайна экрана

Заключение

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

Можно ли считать этот проект успешным? И да, и нет.

С одной стороны, часы улучшили качество жизни сына в школе, помогая отслеживать уровень глюкозы и предотвращать гипогликемию до срабатывания тревог. Устройство выглядит как «настоящие» умные часы. Я получил бесценный опыт в hardware‑разработке.

В то же время, создание прототипа — это лишь подножие горы. Сложности начинаются дальше: поиск надёжных производителей, построение бизнес‑связей, привлечение инвестиций, создание сообщества, вывод продукта на рынок и долгосрочная поддержка. Не говоря уже о сертификации (FCC) и прочих штуках.

Я восхищаюсь создателями Glowcose и SugarPixel — им удалось преодолеть всё это и создать по‑настоящему ценные решения для людей с диабетом 1 типа.

С готовым прототипом я связался с руководителем известного фонда помощи людям с диабетом. Хотя они не финансируют потребительские продукты, мы сошлись во мнении, что открытая модель (возможно, как наследник Pebble) — наиболее реалистичный путь. Впрочем, после недавнего анонса открытого исходного кода Pebble OS и возрождения бренда ситуация может измениться.

Если проект вас заинтересовал, хотите узнать больше или обсудить не затронутые темы — дайте знать!

Спасибо за внимание. Ваш Cloud4Y. Читайте нас здесь или в Telegram‑канале!