Betaflight geek
1.31K subscribers
138 photos
7 videos
36 files
173 links
Канал о новинках Betaflight, мирных дронах и других технических и IT-интересностях. Путиноидам и зетникам здесь не рады.
Download Telegram
Вайбкодинг захватывает мир. FPV не осталось в стороне. Вот вам небольшая подборка нейрослопа разной полезности:
Веб симулятор от UavFuture
PID симулятор от JB
Аналог PIDToolbox (скорее, Plasmatree) на rust
Вот думаю, не навайбкодить ли простенькую прошивку для полетника. Уверен, несколько сотен строк кода Claude достаточно просто осилит. 10к лайков и погнали😎
👍40😁73🤣1
Релиз Betaflight задерживается, так что пока - пара веб-конфигураторов для ArduPilot:

- https://micoair.com/configurator - от MicoAir
- https://arduconfig.com - явно продукт вайбкод модификации Betaflight Configurator 😁

Почему это интересно?

MissionPlanner - основной конфигуратор ArduPilot - выглядит как софт эпохи Windows XP. Но для меня критичнее другое: нет релизов под Linux. Веб-конфигуратор решает обе проблемы, так что, возможно, я наконец починю и настрою свой HeeWing T1, печально пострадавший год назад при ограблении нашего дома 🫠

Есть ещё ArduPilot Methodic Configurator, но он пока не полностью адаптирован под всё, кроме мультироторов, и с UI там тоже не густо - основной упор на последовательную методику настройки, которая в общем-то понятна любому опытному пользователю.
8🥰1😁1
GoPro официально оповестила своих инвесторов о «серьёзных сомнениях в способности продолжать деятельность» в течение ближайших 12 месяцев. Производить такой отчет их принуждает законодательство США. Основными причинами они называют резкое удорожание компонентов и стагнацию рынка камер.

Думаю, все, кто хотя бы немного интересуются темой согласятся, что они просто систематически факапили и ситуация вполне закономерна😁
На скринах - динамика изменения занимаемой доли рынка по годам.
💯82😁2👍1👏1
Наверняка вы слышали, что загрузчик STM32 невозможно снести, а потому невозможно безвозвратно закирпичить полётник? Тем не менее в чатах периодически появляются бедолаги, которые "окирпичили" свой полётник и не могут его оживить. Пару минут назад я подумал, что вот-вот к ним присоединюсь.
Я уже примерно полгода экспериментирую с альтернативным алгоритмом стабилизации в Betaflight. Эксперименты - это почти всегда: сделал доработку, скомпилировал, прошил, записал лог, проанализировал - и так по кругу. Сегодня, после десятка таких итераций, мой AIO перестал входить в DFU, а потом и вовсе перестал определяться компьютером. Зажатие кнопки boot - нулевой результат. А потом я вспомнил, что при включённой аппе полётник не переходил в DFU (но продолжал определяться компом).
Решением оказалось зажатие сразу обеих кнопок boot: Boot ESP (ELRS) и Boot STM (Betaflight).

P.S. заметил, что в посте про вайбкод проекты число просмотров в 3-10 раз выше, чем во всех остальных. Не 10к лайков, но все же любопытно - это тема интересная, или где-то удачно репостнулось)
11👍8😁1
@suzrik разработал ресурс с лидербордом velocidrone. Для тех, кто активно тренирует - очень важно следить за прогрессом и конкурентами)
Я бегло погуглил аналоги и нашел только отдельные ресурсы вроде vdt.tg и крайне скудную официальную статистику.
Пользуйтесь, пишите предложения и замечания)
https://metricore.one
👍7👎3
Релиз edgetx - регулярный источник новостей о новых аппах😅
https://github.com/EdgeTX/edgetx/releases/tag/v2.12.2
😁52🙈2
Шумиха вокруг проблем со стабилизацией dji o4 продолжается. Flywoo даже начали перепаивать гироскопы на старые - сумасшедшая затея)
Тем временем Dji опубликовали характеристики o4 wide юнита, который подозрительно похож на флайвушный же мод. Мне кажется история с dji caddx vista повторяется?)
Основные отличия:
159 градусов FOV против 117 и 155 у старого и про юнитов.
13.3 грамма - достаточно тяжелый для 65 вупов.
Впрочем, в 65 размере и со старым весом в 8.2 грамма было тяжеловато.
😁3👍1😢1
Таки случился релиз кандидат Betaflight 2026.06, очевидно, стабильный релиз в июне уже не произойдет, но формально, в сроки уложились😁
Ключевым (хоть и не самым важным с моей точки зрения) изменением я бы назвал появление автопилота и полета по точкам. Это первый релиз данного функционала, настоятельно рекомендуется пробовать его только в симуляции! На самом деле движение в эту сторону началось еще в прошлых релизах и будет вектором развития прошивки в ближайшем будущем: новые режимы, датчики, расширение мавлинк телеметрии.

Также хочу отметить редизайн конфигуратора, если изменений недостаточно - это значит я не все свои идеи смог протолкнуть к реализации😅
Полный список изменений, можно изучить на сайте:
https://betaflight.com/docs/wiki/release/Betaflight-2026-6-Release-Notes
ладно, никто же не читает релиз ноутсы?)
- Конфигуратор снова можно скачать и установить
https://downloads.betaflight.com/
- Теперь в экосистеме бетафлайт есть новый проект.
Бридж позволяет добавить подключение через вайфай на любой полетник. А еще - можно интегрировать портативный веб конфигуратор (как в елрс). Это было моим шуточным предложением, но, кажется, его уже минимально реализовали.
116😁4👏2
В одном из постов вскользь (жуть, какое странное слово😂) упомянул о написании прошивки. 10к лайков пост не собрал, но просмотров оказалось заметно больше, чем в среднем.

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

ТЗ: максимально просто, без программистских изощрений (я такое и не умею), написать прошивку дрона, чтобы было понятно, что там происходит. Я не ставлю целью создать летающую прошивку, но если оно полетит, будет весело :)

Вдохновляемся своими знаниями, репозиториями Betaflight и Flix, ну и куда же без Claude.

Arduino - просто потому что🙃

Контроллер - любой из семейства ESP32: дешево, функционально, уже есть у меня под рукой.

И сразу псевдокод с общей логикой нашей прошивки. Большая часть строк представляет собой простую конструкцию:
объект.действие();
результат = объект.действие(параметры);

настройка() {
//этот блок выполнится один раз при подаче питания
гироскоп.инициализировать();
гироскоп.калибровать();
приемник.инициализировать();
моторы.инициализировать();
}

цикл() {
//будет выполняться бесконечно до тепловой смерти вселенной
данные_гироскопа = гироскоп.измерить();
сетпоинт = приемник.получить_данные();
результат_ПИД = стабилизатор.рассчитать_ПИДы(сетпоинт, данные_гироскопа);
команды_для_ESC = микшер.рассчитать_для_Х_коптера(приемник.газ, результат_ПИД);
моторы.отправить(команды_для_ESC);
ждем_окончания_цикла();
}


И вот так это выглядит в коде:

void setup() {
imu.init();
imu.calibrate();
receiver.init();
motors.init();
}

void loop() {
gyro = imu.getGyro();

setpoints = receiver.getChannels();

pidOutputs = stabilizer.computePIDs(setpoints, gyro);
motorCommands = mixer.mixQuadX(receiver.getThrottle(), pidOutputs);

motors.spin(motorCommands);
waitForNextLoop();
}

#GeekFirmware
51👍20🔥8😁2
Релиз кандидат elrs 4.1
Немного багфиксов и начальная поддержка нового поколения semtech lr2021 чипов, а это значит - новые продукты от производителей на горизонте. Вы давно обновляли свою аппу?😅
https://github.com/ExpressLRS/ExpressLRS/releases/tag/4.1.0-RC1
👍6
Пост с логикой пока не сильно зашел, надеюсь, наберет просмотров на большой дистанции. А пока решено рассказать про "железо". Итак, представляю вам мой подопытный квад:
- esp32-s3-tiny (имеет съемный юсб и позволяет сэкономить несколько грамм)
- mpu6050 - (самый дешевый imu c spi подключением, что я смог найти)
- коллекторные 8520 моторы
- 65-75мм пропы
- 1s esc на 10 ампер (плата разламывается на 4 отдельных рега)

Можно ли было взять обычный стек от fpv коптера? Вполне, но это скучно😎
Почему коллекторные моторы? Ответ простой: когда я в прошлый раз игрался с написанием своей полетной прошивки - я сжег с десяток моторов и регов просто отлаживая ПИДы и Фильтры. Коллекторник же можно напрямую подключить к батарее, зажать руками вал и получить лишь постепенный нагрев. Случайно сжечь его неправильной настройкой фильтров, скорее всего, невозможно.
#GeekFirmware
🔥16👍4😁3
Что такое таргет?
По сути таргет - это файл, в котором заранее написано, к какой ноге контроллера (MCU) подключен тот или иной контакт на вашем полетнике и какую функцию он выполняет.
Подробнее:

Все контакты интерфейсов на полетнике (то есть UART, I2C, все, кроме питания) уходят напрямую в MCU.

Представьте, что вам пришлось бы высматривать, на какую ногу контроллера уходит дорожка от контакта. После этого искать в технической документации (даташит) название этой ноги, и только потом в конфигурации вы бы смогли указать, что туда подключен RX контакт от вашего GPS. А потом еще повторить эту же процедуру для TX и всех остальных устройств, включая встроенные: барометр, IMU, пины моторов, датчики тока и напряжения.

Чтобы избавить пользователя от этой работы и существует таргет.

У плат ESP32 есть несколько преимуществ, облегчающих создание таргета:

- пины на плате заранее пронумерованы и соответствуют пинам контроллера, то есть нам не надо искать это в даташите
- на большинство пинов можно назначить практически любую функцию за счет механизма GPIO Matrix (есть исключения, но сейчас это не важно)

Нам нужно лишь выбрать удобные по расположению пины и присвоить этот номер переменным для удобства использования внутри кода. Например, я решил подключить ESC к пинам 1, 5, 14, 18. По схеме я вижу, что для этих пинов доступна функция PWM, которым мы будем управлять моторами.

Записываем:
мотор_1_пин = 5
мотор_2_пин = 1
мотор_3_пин = 14
мотор_4_пин = 18

И вот так выглядит код файла target.h:

#pragma once
#include <Arduino.h>

constexpr uint8_t MOTOR_1_PIN = 5;
constexpr uint8_t MOTOR_2_PIN = 1;
constexpr uint8_t MOTOR_3_PIN = 14;
constexpr uint8_t MOTOR_4_PIN = 18;


#GeekFirmware
👍22🔥82👏1😁1
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥215👍4🤔4
Тут на реддите запостили in-fligh автотюн.
Первая реакция - почему без ссылки на пулл реквест? Но, посмотрев профиль автора, понял, что я бы тоже не стал публиковать код. Хотя, кто знает...
В общем то, сам механизм понятен и лишь вопрос времени и усилий для его реализации, изобретать велосипед не нужно)
За наводку спасибо @ivan_antonyuck
https://www.reddit.com/r/fpv/comments/1v87hj1/built_an_inflight_pid_autotune_for_betaflight/
👍7