Hubsan x4 H501M waypoints fpv

Эдуард

Заводская дольше калибруется и сбивается при резком перемещении, а Курская калибруется быстро и держится, правда заметил тенденцию при повороте носа в сторону начинает бегать компас и модежет начаться унитазинг. Иногда возвращение носа на направлени, как взлетал, исправляет ситуацию.

Эдуард

Купил себе 501а. Решил, что надо брать комплектом. Успел по распродаже. Обошлось чуть больше 11 т.р.
501 м переберу на предмет целостности, проверю и буду продавать. Хватит трепать нервы.

molchunoff

Почитал я форумы 501А и 501S…тоже и “унитаз” и побег в"Китай".В основном из за неправильной калибровки,неисправности железа,попадания сигнала gps,ну и по непонятным причинам естественно.Решают прошивкой,заменой железа и.т.п.В общем 501-я серия не идеальная,впрочем как и всё наверное…

Эдуард

Точно. Вообще нет надежных аппаратов. Все это игрушки. И дорогие к этому же. Мне нужен для обзора при поездках и с нормальным видео. Надеюсь будет летать нормально. Буду дальше пользовать старый, пока не продам.

molchunoff:

Почитал я форумы 501А и 501S…тоже и “унитаз” и побег в"Китай".В основном из за неправильной калибровки,неисправности железа,попадания сигнала gps,ну и по непонятным причинам естественно.Решают прошивкой,заменой железа и.т.п.В общем 501-я серия не идеальная,впрочем как и всё наверное…

Там хотя бы проги ковыряют и убирают косяки.

kiws
Эдуард:

Купил себе 501а. Решил, что надо брать комплектом. Успел по распродаже. Обошлось чуть больше 11 т.р.
501 м переберу на предмет целостности, проверю и буду продавать. Хватит трепать нервы.

Конечно это правильно! Если есть возможность купить или обменять, вернуть, то нечего думать. Стоит попробовать H501A. Я, вот, тока в ближайший год точно не смогу позволить себе покупку другой модели. Пока живем на одну зарплату, т.е. бюджет ограничен. 😃.

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

Из существенного:
Пока едут компасы, удалось освоить азы C++ и применить вот этот алгоритм деобфускации авторства Олега Худякова к прошивке H501M.
Сейчас просмотрел комментарии автора прошивки. Модель компаса в H501M я определил ранее верно - в прошивке многократно имеется его название: Ready to init IST8303.
Кроме того, имеется контроль на запись в компас, например, имеется комментарий: Write IST8303_REG_CNTRL1 error.
В прошивке имеется упоминание компаса IST8310. Значит с ним тоже H501M работает, или задуман работать.
Видна калибровка гироскопа. Гироскоп описан минимум 2-х видов. Это хорошо. Это ОЧЕНЬ хорошо. Если дело не в компасе, а в гироскопе окажется, то будет возможность попробовать другой тип.
Листаю дальше…

Нашел какой у нас чип барометра: dps310.
Вот странная надпись:
S T M i c r o e l e c t r o n i c s S T M 3 2 J o y s t i c k.
STM - это понятно, микроконтроллер у нас STM, а джойстик??

Дольше листаю…
Нашел список переменных:
GyroX,GyroY,GyroZ,AccX,AccY,AccZ,MagX,MagY,MagZ,Baromoter,Latitude,Longitude,gAngleX,gAngleY,Compass,GyroDynamicZeroX,GyroDynamicZeroY,GyroDynamicZeroZ,err6aix,errbaro,errcompass,errgps,Voltage,fAccX,fAccY,fAccZ,GyroX1,GyroY1,GyroZ1,GZeroX,GZeroY,GZeroZ,GHead,GSX,GSY,CPUz,RAccX,RaccY,RAccZ,fAccX,fAccy,fAccZ,fMagX,fMagY,fMagZ,GPS_NUM,GPS_SPEED,fELocX,fELocY,fELocZ GNRMC GNGGA GNVTG GNGSA.

По ним можно составить примерное впечатление.

kiws

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

APP\Hubsan_copter.cpp @Jan 30 2018 09:24:25 //Т.е. по идее H501M, изготовленные после 30 января должны идти с версией 1.1.7, а до 30 января 2018г. прошивали версию 1.1.4.
%s Init_finish %d
error sensor baro
error sensor compass
error sensor inertial 6 axis
error sensor GPS
remove all file succeed!!
MPUREG_ICM20600_ID Disconnect or Error! //1-й тип гироскопа/акселерометра
Init Accel !
Init Gyro !
gyro did not converge: diff=%f dps
******************************
calibrate _gyro_orth %d, %d
***********************************
MPU6050 acc offset calibrate! //2-й тип гироскопа/акселерометра
MPU6050 gryo offset calibrate!
start Flash_eraseCompletely…
erasing w25Q device now… wait
Flash_eraseCompletely ok
@check rom true
Ready to init IST8303 //1-й компас
IST83XX ID is %x
Read compass Id error
ist8303 intial setting error
IST8303_REG_SELECTION_REG error
Rean N IST8303_REG_XX_CROSS_L error
crossaxis_enable = 1
crossaxis_enable = 0
Write IST8303_REG_CNTRL1 error
Mag_Offsetx = %f
Mag_Offsety = %f
Mag_Offsetz = %f
?IST8310_Radii = %f //замечен 2-ой тип компаса?? Или случайно написали так? Тут у меня имеются сомнения
>Mag_Accurancy = %d
=======================
Mag_Lib is Ready
=====================
start gtap200 init ! //1-й тип барометра
gtap200 init ok!
@who_am_i = %x
icm20600 not availabley
_product_id = %x
******************************
calibrate _gyro_orth %d, %d
***********************************
MPU6050 acc offset calibrate!
MPU6050 gryo offset calibrate!
@dps310_iic_readprom error
=====================
start dps310 init ! //2-ой тип барометра
Dps310 ID error
dps310_config error
activate error
CI_Calibrate:%d
AutopilotVer
AutopilotVer
H501M_FC_V1.1.7 //версия прошивки
0123456789abcdef //Учимся считать до 16 😃
0123456789ABCDEF //Повторение - мать учения! 😁
===============================MagAccurary %d===============================
"$GNRMC,013513.60,A,2231.57856,N,1 //GPS
!6.18937,E,0.799,240816,A*6C

kiws

В Курской прошивке программист Hubsan удалил вот эти блоки: Mag_Accurancy (Магнетометр - точность) и Mag_Lib (Магнетометр - библиотека).
Наверное сильно упростили коррекцию показаний магнетометра самой прошивкой коптера.

Дисассемблировать у меня не получилось, не знаю точку входа в программу (нет опыта).

Filin737
kiws:

Вот что выловил из прошивки 1.1.7

Браво, Сергей! Спасибо! А опыт, говорят, дело наживное? 😁

kiws

Обратите внимание на эти странные строки в прошивке:

kiws:

"$GNRMC,013513.60,A,2231.57856,N,1
!6.18937,E,0.799,240816,A*6C

GPS модуль посылает текстовые сообщения такого вида с координатами и другой важной информацией. А тут уже многие цифры заранее прописаны.
Как будто координаты куда улетать домой в Китай 😁.
Шучу, не может быть такого (насчет улетать домой).

Filin737
kiws:

Шучу, не может быть такого (насчет улетать домой).

Не знаю, не знаю… Мой никогда не желал вернуться в исходную точку, каждый раз прямиком куда-то отправлялся, невзирая на мои танцы с пультом (смартфоном).

kiws

Что-то у H501A, H501S, H507A не похожи прошивки на H501M.
У нас обилие текста, а у перечисленных всего несколько строк читаемого текста. Мало за что есть зацепиться для сравнения между ними.
Может другой программист писал для нас. Оставил кучу сообщений, что в принципе должно быть неплохо для анализа.

Хотя, у H501A тоже есть список переменных в текстовом виде, и он очень похож на H501M, но поменьше. Наверное это из-за того, что у нас по сути все реализовано на одном STM32 контроллере, а у других H501-х есть FC и RX прошивки.

mazepa2000
Эдуард:

Снова поменялась прога для андроида.

ЧТО НОВОГО
Zino:
Добавлены параметры параметров камеры (4K, 2.7K, 1080P, ISO, экспозиция и т. Д.).
Добавлено отслеживание изображений.

😦

Эдуард

Понятно. Я не смотрел ещё. Они теперь будут эту Зину проталкивать.

kiws

Немного получилось продвинуться с прошивкой.

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

ROM:0000F804 ; ---------------------------------------------------------------------------
ROM:0000F804 PUSH.W {R4-R10,LR} //стёк
ROM:0000F808 MOV R4, R0
ROM:0000F80A VPUSH {D8}
ROM:0000F80E SUB SP, SP, #0x20
ROM:0000F810 ADR R0, aReadyToInitIst ; “Ready to init IST8303\r\n”
ROM:0000F812 BL sub_23FE4 //управление работой шины I2C
ROM:0000F816 MOVS R0, #1
ROM:0000F818 BL sub_1FA7C
ROM:0000F81C MOVS R0, #1
ROM:0000F81E BL sub_1FAA6
ROM:0000F822 LDR R6, =0x20000534
ROM:0000F824 LDR R7, =0x40005400
ROM:0000F826 ADDS R6, R6, #4
ROM:0000F828 MOVS R3, #1 //число регистров для чтения
ROM:0000F82A MOVS R2, #0 //регистр ID
ROM:0000F82C MOVS R1, #0xC //адрес компаса
ROM:0000F82E MOV R0, R7
ROM:0000F830 STR R6, [SP]
ROM:0000F832 BL sub_B750 //Чтение ID регистра компаса
ROM:0000F836 MOVS R5, #0
ROM:0000F838 CBZ R0, loc_F87A //Если не прочитали ID, то выход
ROM:0000F83A LDRB R1, [R6]
ROM:0000F83C ADR R0, aIst83xxIdIsX ; “IST83XX ID is %x\r\n”
ROM:0000F83E BL sub_23FE4 //управление работой шины I2C
ROM:0000F842 MOVS R0, #0x32 ; ‘2’
ROM:0000F844 BL sub_B9C4
ROM:0000F848 MOVS R3, #1 //это надо записать
ROM:0000F84A MOVS R2, #0x40 ; ‘@’ //регистр темп. компенсации
ROM:0000F84C MOVS R1, #0xC //адрес компаса
ROM:0000F84E MOV R6, R7
ROM:0000F850 MOV R0, R7
ROM:0000F852 BL sub_B412 //Настройка температурной компенсации
ROM:0000F856 CBZ R0, loc_F8B4 //Если не получилось с компенсацией, то выход из компаса
ROM:0000F858 MOVS R3, #0xC0 ; ‘L’ //это надо записать
ROM:0000F85A MOVS R2, #0x42 ; ‘B’ //регистр гистерезиса
ROM:0000F85C MOVS R1, #0xC //адрес компаса
ROM:0000F85E MOV R0, R6
ROM:0000F860 BL sub_B412 //Настройка гистерезиса
ROM:0000F864 CBZ R0, loc_F8B6 //Если не получилось с гистерезисом, то выход из компаса
ROM:0000F866 ADD R0, SP, #4
ROM:0000F868 STR R0, [SP]
ROM:0000F86A MOVS R3, #2 //сколько регистров надо прочитать
ROM:0000F86C MOVS R2, #0x9C ; ‘Ь’ //первый регистр смещения
ROM:0000F86E MOVS R1, #0xC //адрес компаса
ROM:0000F870 MOV R0, R6
ROM:0000F872 BL sub_B750 //Тестовое чтение части регистров смещения
ROM:0000F876 CBZ R0, loc_F8D4 //Если не прочитались регистры смещения, то пометка что их нет, и продолжение работы процедуры инициализации компаса
ROM:0000F878 B loc_F8DA //Продолжение с пометкой что регистры смещения есть

И т.д. и т.п.
Явно не увидел чтобы сравнивался регистр ID на значение FF, может это где-то спрятано.
Т.е. большая вероятность что Hubsan H501M настроен на работу разных компасов из серии IST83**, без разницы какой ID, главное чтобы не 0. Но надо чтобы в компасе обязательно были регистры 0, h40, h42.

Artmkas

Сегодня вышло новое обновление на Ios, там что то про GPS и ограничения. Кто силен в китайском?
优化云台调节;
无GPS起飞增加条件限制。

maverickr
Artmkas:

Сегодня вышло новое обновление на Ios, там что то про GPS и ограничения. Кто силен в китайском?
优化云台调节;
无GPS起飞增加条件限制。

Optimize the pan/tilt adjustment;
No GPS takeoff increases the condition limit

mazepa2000

А теперь по русски 😃)))
Так на андроид не давно вышло обновление,возможно на яблоко вышло позже или это другое обновление? На Андроиде интересного для нас не фиксили.

Artmkas
mazepa2000:

А теперь по русски 😃)))
Так на андроид не давно вышло обновление,возможно на яблоко вышло позже или это другое обновление? На Андроиде интересного для нас не фиксили.

Это новое обновление, на Андройд с сильной задержкой выходят. Зина на Андройде появилась недавно, а на Ios она уже несколько месяцев.

mazepa2000

Радует.но мало что понял из перевода если честно.