F4BY. Отечественный ответ Pixhawka'm

alexeykozin
konstantin_sakryukin:

Или, что-то другое посоветуете?

rctimer.com/product-971.html
правда фотографы из магазина ошиблись. карбоновая пластина крепится к раме а дюралевая часть под полетный контроллер.
колпак тяжеловат правда

alexeykozin

F4BY 002B003E 31355111 32303731
Frame: QUAD
PX4: 9d652d5e NuttX: 8c965992
APM:Copter V 3.4.4 (47a18999)

любителям самостоятельно скомпилировать github.com/dipspb/ardupilot/…/Copter-3.4.4-f4by
собирается мэйком без танцев с бубнами.
прошивку погоняем пару дней в настольных тестах и раздадим желающим

Hyperion

Отличная новость! уже пытаюсь собрать под квад. Собирается в последнем тулчейне как обычно?

что то не собирается у меня.
делал так
git clone github.com/dipspb/ardupilot.git
cd ardupilot
git checkout Copter-3.4.4-f4by-addons
git submodule update --init --recursive
из консоли px4_console установленного крайнего тулчейна
make -C ArduCopter f4by-quad

$ make -C ArduCopter f4by-quad
make: Entering directory `/i/f4by/ardupilot/ArduCopter’
// BUILDROOT=/i/f4by/ardupilot/Build.ArduCopter HAL_BOARD=HAL_BOARD_F4BY HAL_BOARD_SUBTYPE=HAL_BOARD_SUBTYPE_NONE TOOLCHAIN=NATIVE EXTRAFLAGS=-DGIT_VERSION=“ccf7bef0” -I/i/f4by/ardupilot/libraries/AP_Common/missing -DMAVLINK_PROTOCOL_VERSION=2 -DNUTTX_GIT_VERSION=“8c965992” -DPX4_GIT_VERSION=“9d652d5e” -DUAVCAN=1 -D__STDC_FORMAT_MACROS -DHAVE_STD_NULLPTR_T=0 -DHAVE_ENDIAN_H=0 -DHAVE_BYTESWAP_H=0 -I/i/f4by/ardupilot/Build.ArduCopter/libraries/GCS_MAVLink/include/mavlink -DFRAME_CONFIG=QUAD_FRAME
Checking modules
make[1]: Entering directory `/i/f4by/ardupilot/modules/PX4Firmware’
Skipping submodules. NUTTX_SRC is set to /i/f4by/ardupilot/modules/PX4NuttX/nuttx/
%% Configuring NuttX for f4by
0 [main] sh 2796 open_stackdumpfile: Dumping stack trace to sh.exe.stackdump
0 [main] sh 8972 open_stackdumpfile: Dumping stack trace to sh.exe.stackdump
%% Exporting NuttX for f4by
0 [main] make 5860 open_stackdumpfile: Dumping stack trace to make.exe.stackdump
make[3]: *** wait: No children. Stop.
make[2]: *** [tools/mkconfig] Error 2
make[1]: *** [/i/f4by/ardupilot/modules/PX4Firmware/Archives/f4by.export] Error 2
make[1]: Leaving directory `/i/f4by/ardupilot/modules/PX4Firmware’
make: *** [/i/f4by/ardupilot/modules/PX4Firmware/Archives/f4by.export] Error 2
make: Leaving directory `/i/f4by/ardupilot/ArduCopter’

если из простой консоли то вывод другой

I:\f4by\ardupilot>make -C ArduCopter f4by-quad
make: Entering directory `I:/f4by/ardupilot/ArduCopter’
…/mk/environ.mk:38: *** ERROR: cannot determine sketchbook location - please specify on the commandline with SKETCHBOOK=<path>. Останов.
make: Leaving directory `I:/f4by/ardupilot/ArduCopter’

alexeykozin

git clone github.com/dipspb/ardupilot.git
cd ardupilot
git checkout Copter-3.4.4-f4by
git submodule update --init --recursive
из консоли px4_console установленного крайнего тулчейна
make -C ArduCopter f4by-quad

если нужны доработки то после этого уже
git checkout Copter-3.4.4-f4by-addons

бинарник arducopter 3.4.4
dropbox.com/…/ArduCopter-ac344-quaid-f4by.zip?dl=0
в полете не проверял

проверил
-ppm-sum и калибровку радио
-выходы на моторы, арминг.
-сенсоры, калибровка втч компас ориентация.
-олед дисплей (включается параметром см ридми в архиве)

прошу информировать о тестах, если все в порядке соберу все рамы

Hyperion

из винды делаете? Собирал как Copter-3.4.4-f4by так и Сopter-3.4.4-f4by-addons - монопесуально, не собирается. Как make так и эклипсом. Тулчейн последний. Мастер diydronoвский собирается. Все закачивалось с нуля.
Пробую уже ставлю виртуалку убунту, попробую еще из под нее…
за бинарник спасибо, проверю. в полете конечно пока не смогу, только на столе.

u-blox 0 HW: 00080000 SW: EXT CORE 3.01 (107900)
PreArm: Check Board Voltage
EK2: Changed EK2_GPS_TYPE to 1
GPS 0: detected as u-blox at 115200 baud
EKF2 IMU0 tilt alignment complete
GPS 0: detected as u-blox at 38400 baud
EKF2 IMU0 initial yaw alignment complete
F4BY 002F0019 3434510F 39323531
Frame: QUAD
затестил немного.
ppm sum работает
телеметрия осд работает
управление подвесом с полетника работает
моторы армятся
базер работает.
ваншот не заработал. регули не армятся и в калибровку не входят. Думаю прошить бетафлай и проверить на нем ваншот.

Hyperion

Проверил на бетафлае. В симонке калибровка с ваншотом не работает, но ваншот на симонке работает. Прошил один регуль на блхели. С ним калибровка работает из бетафлай конфигуратора. Прошил обратно АПМ. Ни калибровка ни ваншот не работают с включенным ваншотом. Только Pwm

Hyperion

о, под убунтой все нормально собирается

alexeykozin

похоже винда блокирует файлы в ходе загрузки через жит, я под виндой собираю.
собрал самолет
F4BY 00460053 30345107 33393234
PX4: a0cef2f6 NuttX: 258f2257
ArduPlane V3.7.1 (be2a1742) но надобно ему допилить наши фичи

alexeykozin
Hyperion:

о, под убунтой все нормально собирается

видимо был какойто глюк сервиса житхаб. первый раз собралось идеально, потом примерно сутки были непонятные косяки при попытке обновления субмодулей в новом клоне. Сейчас снова все идеально клонируется и обновляются модули втч под виндой.
назначение веток
github.com/dipspb/…/ArduPlane-3.7.1-f4by-addons - актуальный тестовый репозиторий самолета из которого мы собираем бэты, правим недочеты.
github.com/dipspb/…/Copter-3.4.4-f4by-addons - актуальный тестовый репозиторий мультироторов из которого мы собираем бэты, правим недочеты.
github.com/dipspb/ardupilot/…/Copter-3.4.4-f4by - чистый репозиторий без наших улучшений для подготовки процесса слияния в официальный репозиторий github.com/ArduPilot/ardupilot

по мере получения информации об успешных облетах прошивок тестовые репозитории будут перенесены в наш официальный проект github.com/Swift-Flyer/ardupilot

Hyperion

после некоторых мучений

youtu.be/xWJHo-bWP-M

заработал ваншот на f4by 😃

youtu.be/XZp35e2_2iI

Но по звуку мотора как то не очень приятно от Oneshot125. Простой OneShot звучит приятнее… Прошивка в регуле симонк.

alexeykozin
Hyperion:

Но по звуку мотора как то не очень приятно от Oneshot125. Простой OneShot звучит приятнее… Прошивка в регуле симонк

в принципе причина понятна, в арду разрешение таймера пвм/ваншот 1мс. для ваншота надо в 8 раз точнее. думаем как сделать честный ваншот125

Hyperion
alexeykozin:

в принципе причина понятна, в арду разрешение таймера пвм/ваншот 1мс. для ваншота надо в 8 раз точнее. думаем как сделать честный ваншот125

причина в Арду или в Ф4? Если в первом то может стоит отписаться ардупилотовцам?

alexeykozin
Hyperion:

причина в Арду или в Ф4? Если в первом то может стоит отписаться ардупилотовцам?

мы собрали 3.4.4
в этом релизе в арду проблема,
но судя по свежим комитам не вошедшим в релизы работы ведутся
github.com/…/85d69ee58c26f0a042ab2e92247eef8ca8f39… и еще два предыдущих комита

arb

Зачем так сложно мутить?
Самое простое поставить фиксированную частоту, к примеру 2000 Гц, уже будет чересчур быстро и будет гарантированно работать. И при этом код проще.
3000 не проверял, но если надо, то можно и проверить.

alexeykozin
arb:

Зачем так сложно мутить? Самое простое поставить фиксированную частоту, к примеру 2000 Гц, уже будет чересчур быстро и будет гарантированно работать. И при этом код проще. 3000 не проверял, но если надо, то можно и проверить.

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

alexeykozin

обновил прошивку, ридми
https://www.dropbox.com/s/tcg7teyxgnd7sov/ArduCopter-ac344-quaid-f4by.zip?dl=0

прошивке поддерживается бортовой олед дисплей ssd1306 и SH1106

NTF_DISPLAY_TYPE
0 = Disabled (default)
1 = SSD1306
2 = SH1106

в прошивке поддерживается функция коррекции офсета сенсора алегро
BATT_ISALEGRO =1 компенстровать офсет датчика тока по напряжению питания контроллера

режимы выходного сигнала управления моторами
MOT_PWM_TYPE=0 - стандартный PWM , период обновления регулируется через RC_speed 50-400 гц разрешение 1000 ступеней
MOT_PWM_TYPE=1 - ONESHOT период обновления зависит от внутреннего цикла чтения сенсоров обычно 350-550 Гц разрешение 1000 ступеней
MOT_PWM_TYPE=2 - ONESHOT125 период обновления зависит от внутреннего цикла чтения сенсоров обычно 350-550 Гц разрешение 1000 ступеней
MOT_PWM_TYPE=3 - ULTRAPWM8х , период обновления регулируется через RC_speed (значение умножается на 8) 400-3300 гц разрешение 1000 ступеней, длительность импульса соответствует ONESHOT125

к слову PIXHAWK так и не поддерживает ваншот125 с 1000 шагами

arb
alexeykozin:

MOT_PWM_TYPE=3 - ULTRAPWM8х , период обновления регулируется через RC_speed (значение умножается на 8) 400-3300 гц разрешение 1000 ступеней, длительность импульса соответствует ONESHOT125

Для этого режима не рекомендуется ставить RC_Speed=50 (включится 0 режим с частотой 50 Гц). 51-400 норм.
Рекомендуемое значение для RC_Speed = 400 для всех режимов. Работать будет с любым значением, но с этим будет ну очень быстро 3,3 кГц:).

alexeykozin

да, верно, забыл сказать про магическое число RC_Speed=50, оставил для проверки

arb
alexeykozin:

к слову PIXHAWK так и не поддерживает ваншот125 с 1000 шагами

Напоминание на всякий случай. Блхели не поддерживает 1000 шагов в ПВМ, а только 255.
Появление рабочих 2 и 3 режимов гарантированно включают ваншот125, а значит 1000 шагов (дает плавное управление). И это классно.

Симонка и Блхели_С эта проблема не касается.

Hyperion

проверка Loiter, rtl прошивка 3.4.4

youtu.be/CliTIJusBFQ

сначала смутило то что жпс обнаруживался и перенастраивался на 115200 (в видео ошибочка), думал косяк какой, но оказалось ардушники поменяли и теперь жпс работает на более высокой скорости.