EM Systems — Разработка прошивок БПЛА, Embedded C/C++, PyQt5 и ArduPilot
Embedded & UAV Systems

Прошивки, ПО и Инжиниринг БПЛА Под Ключ

Проектируем алгоритмы навигации, разрабатываем ПО для микроконтроллеров STM32/FreeRTOS, кастомизируем сборки ArduPilot/iNav и создаем десктопные интерфейсы на PyQt5.

Разработка прошивок микроконтроллеров для БПЛА

STM32 & FreeRTOS

Низкоуровневая оптимизация, SPI, DMA, UART

🎯

ArduPilot / iNav

Кастомная сборка из исходников под ваш хардвар

🖥️

PyQt5 Desktop GUI

Панели настройки, MAVLink & COM-порт связь

🛰️

Навигация & ESKF

Фильтрация Кальмана, IMU, GPS, Телеметрия

🍓

Одноплатники (Orange Pi)

Бортовые компьютеры и софт верхнего уровня

Инженерные Направления & Услуги

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

Кастомизация ArduPilot & iNav

Собираем прошивки из исходного кода под редкие или специфические стеки (SpeedyBee, Matek, кастомные платы). Исключаем неисправные периферийные модули (битые барометры, гироскопы) и переназначаем входы/выходы.

WSL / Docker Отключение датчиков Custom HW Target Re-mapping ESC
Сборка полетных контроллеров ArduPilot

Встроенное ПО (FreeRTOS / C++)

Пишем жесткий Real-Time софт для микроконтроллеров STM32. Оптимизируем обработку прерываний, настраиваем потоки RTOS, защищенные зоны памяти и передачу данных по DMA без задержек.

STM32F4/F7/H7 FreeRTOS Tasks SPI / DMA / UART ESKF Kalman
Разработка прошивок STM32 FreeRTOS

ПО Управления на PyQt5

Создаем функциональные графические интерфейсы для ПК (Windows/Linux) для конфигурации дронов, приема телеметрии по радиоканалу (Air Module), работы с COM-портами и мониторинга состояния роя.

PyQt5 / Python 3.12 MAVLink / iNav Protocol Telemetry & Air Module COM Port Serial
Десктопные интерфейсы PyQt5

Реализованные Кейсы

Примеры реальных задач: восстанавливаем работоспособность платы, создаем кастомные GUI и оптимизируем RTOS

ArduPilot / Custom Firmware

Восстановление полетного контроллера с поврежденным барометром

Задача: Полетный контроллер (стек SpeedyBee) выходил в ошибку инициализации из-за физически поврежденного барометра и сгоревшего канала ESC.
Решение: Развернули окружение сборки ArduPilot в WSL, исключили опрос поврежденного барометра из HWDEF-файлов и перенаправили управление ESC на резервный PWM-выход.
PyQt5 / Desktop GUI

Панель управления и мониторинга телеметрии БПЛА

Задача: Разработать удобный десктопный интерфейс для связи с телеметрическим Air-модулем через COM-порт.
Решение: Написали асинхронный GUI на PyQt5 с поддержкой парсинга пакетов iNav и MAVLink. Добавили выносные виджеты искусственного горизонта, уровень RSSI и логирование параметров в реальном времени.
STM32 / FreeRTOS

Низкоуровневый модуль сбора данных IMU по SPI+DMA

Задача: Обеспечить опрос датчиков ориентации на плате STM32F407G без задержек основного цикла.
Решение: Настроии передачи по шине SPI через DMA с аппаратной синхронизацией по прерываниям. Разделили обработку на задачи FreeRTOS с разным уровнем приоритетов и защитой критических секций.

Вопросы & Ответы

Детали взаимодействия, сборки прошивок и поддержки

Вы делаете кастомные сборки ArduPilot/iNav под нестандартные платы?

Да. Если вам нужно собрать прошивку ArduPilot/iNav с отключенными или переназначенными компонентами (например, при неисправности барометра, гироскопа или нетипичной разводке ESC), мы компилируем бинарник непосредственно из исходников со всеми нужными правками.

На каких микроконтроллерах вы разрабатываете встроенное ПО?

Основной стек — линейка STM32 (F4, F7, H7). Мы разрабатываем системы на базе FreeRTOS, настраиваем работу с периферией (SPI, DMA, UART, Timers) и алгоритмами ориентации на базе фильтров Кальмана (ESKF).

Можно ли разработать индивидуальный GUI для управления дроном по радиомодему?

Да. Мы создаем десктопное ПО на Python/PyQt5, которое подключается к радиомодему через COM-порт, декодирует протоколы связи (iNav / MAVLink) и позволяет управлять параметрами полета или телеметрией в реальном времени.