Связаться
IoT и умные устройства

Прошивка, приложение и облако одной командой

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

Что мы делаем

Где мы подключаемся

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

Приложение к вашему устройству

Железо и прошивка есть, не хватает стороны телефона. Плюс обычная спасательная история: приложение работает на айфоне основателя и на половине андроидов. Делаем BLE- или WiFi-клиент, сценарий сопряжения, экраны управления и выпуск в сторы.

Протокол с обеих сторон ведёт одна команда

От прототипа на столе до продукта

ESP32 на макетке, который работает у вас на столе, — ещё не устройство, которое клиент достанет из коробки. Доводим до настройки подключения, состояний ошибок, сброса к заводским, обновлений и всего, что вылезает за пределами лаборатории.

Работают не только счастливые сценарии

Подключение устройства к WiFi

Шаг, на котором рождается большинство обращений в поддержку. Делаем настройку через BLE или SoftAP, разбираемся с сетями только на 2,4 ГГц, captive-порталами и неверными паролями — и говорим пользователю, что именно пошло не так.

Владелец доводит настройку до конца без вас

Телеметрия и дашборды

Устройства отправляют данные по MQTT или HTTPS в бэкенд, который принадлежит вам. Показания, состояние, ошибки и заряд в одном месте, с алертом, когда устройство перестало выходить на связь.

Видно, что происходит с парком устройств

OTA-обновления, которым можно доверять

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

Обновление прошивки без отзыва партии

Устройства на батарейке

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

Время работы, которое можно писать на коробке

Стек

С чем работаем

Кристаллы Espressif и транспорты вокруг них, плюс приложение и бэкенд, которые делают устройство пригодным для людей.

Чипы и прошивка

  • ESP32
  • ESP32-S3
  • ESP32-C3
  • ESP8266 (legacy)
  • ESP-IDF
  • FreeRTOS
  • Arduino core

Связь

  • BLE / GATT
  • WiFi
  • MQTT
  • HTTPS / TLS
  • Настройка через SoftAP и BLE
  • OTA

Приложения и облако

  • React Native
  • iOS и Android
  • Node.js
  • PostgreSQL
  • Хранение временных рядов
  • Дашборды

ESP8266 помечен Espressif как не рекомендованный для новых разработок, поэтому мы берём его для устройств, которые уже в поле, а новое начинаем на ESP32-C3 или C6. У вас другой микроконтроллер или SDK вендора? Скажите какой: половина с приложением и облаком от этого не меняется.

Границы

Где начинается и заканчивается наша часть

Договориться об этом на входе дешевле, чем выяснить через месяц.

Делаем

  • Прошивку для ESP32 / ESP8266 и сопоставимых микроконтроллеров
  • Протокол BLE и WiFi — и на устройстве, и в приложении
  • Настройку подключения, OTA и управление парком устройств
  • Приложения для iOS и Android, включая выпуск в сторы
  • Бэкенд, хранение телеметрии и дашборды
  • Разбор связи, которая работает на столе и отваливается в поле

Не делаем

  • Схемотехнику и разводку печатных плат
  • Корпус и промышленный дизайн
  • Сертификацию EMC, FCC и CE
  • Серийное производство и цепочку поставок

Работаем рядом с вашим схемотехником или контрактным производителем и говорим с ними на одном языке.

Процесс

Как идёт проект с устройством

01

Смотрим, что уже есть

Ваше железо, прошивку в том виде, в котором она есть, и протокол между устройством и телефоном. Первое, что мы записываем, — сам протокол, с версией: чтобы потом изменение в прошивке и изменение в приложении не разошлись молча. Дальше говорим, что оставили бы, а что переделали.

02

Соединяем сквозь всю цепочку

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

03

Строим продукт вокруг

Настройка подключения, экраны управления, телеметрия, OTA и сценарии ошибок. Прошивка и приложение едут вместе, поэтому протокол не расходится.

04

Полевые тесты и релиз

Настоящие телефоны, настоящие роутеры, настоящие стены. Проверяем на разных производителях Android, выпускаем в сторы и остаёмся на первых раскатках прошивки.

FAQ

Частые вопросы

У нас ещё нет железа. Возьмётесь?

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

У нас уже есть прошивка. Вы её перепишете?

Обычно нет. Читаем её, договариваемся о протоколе и дописываем там, где приложению нужно то, чего она не отдаёт. Переписывание предлагаем, только если существующий код не может безопасно нести OTA и защиту, и объясняем почему.

Почему BLE работает на iPhone, но не на части Android?

Потому что BLE в Android различается и у производителей, и между версиями системы. Недокументированная ошибка GATT 133, негласный лимит в пять сканирований за 30 секунд, MTU, который остаётся дефолтным в 23 байта, если его никто не согласовал, и фирменные энергоменеджеры, убивающие фоновые соединения, — это обычные полевые отказы. Мы тестируем на наборе реальных телефонов тех марок, которыми пользуются ваши клиенты, а не на одном флагмане.

Сколько это занимает?

Телефон, говорящий с вашей платой, — обычно 2–3 недели. Устройство, которое человек достаёт из коробки и настраивает сам, — 2–4 месяца в зависимости от того, сколько прошивки уже есть и сколько у продукта состояний.

Кому принадлежат прошивка и ключи?

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

Есть устройство, которое нужно подключить?

Расскажите, что за железо и на чём застряли. Скажем, что сделали бы первым и чего это потребует.

Обсудить устройство