Hubsan X4 FPV H501S - FAQ, инструкции, прошивки, модернизации
Обзор работы H501S и аппы DEVO.
В передатчик DEVO 8S установлен модуль, включающий чип A7105 и прошита прошивка DeviationTX, поддерживающая протокол Hubsan4.
Что в данный момент работает:
Биндится, армится, летает, переключает режимы светодиодов, переключает полётные режимы, запись видео/фото, принудительный дизарм, бортовое напряжение по телеметрии, failsafe RTH.
Не работает:
Всё остальное 😃 (RTH, fly with no GPS, Circle Fly, Headless mode и т.д.)
На дальность не проверял, в аппе выставлена мощность 150 mW
Обсуждение работы протокола Hubsan4 на форуме проекта DeviationTX.
В передатчик DEVO 8S установлен модуль, включающий чип A7105 и прошита прошивка DeviationTX, поддерживающая протокол Hubsan4.
Что в данный момент работает:
Биндится, армится, летает, переключает режимы светодиодов, переключает полётные режимы, запись видео/фото, принудительный дизарм, бортовое напряжение по телеметрии, failsafe RTH.
Не работает:
Всё остальное 😃 (RTH, fly with no GPS, Circle Fly, Headless mode и т.д.)
И это не удивительно, потому как протокол особо, похоже, никто не тестировал.
У goebish, похоже, нету такой апаратуры и написал он это “вслепую”.
Там есть, например, такая ошибка в хабсановском пакете 0xe8:
case 0xe8: // H501S
// GPS latitude
Telemetry.gps.latitude = (u32)packet[1]<<24|(u32)packet[2]<<16|(u32)packet[3]<<8|packet[4];
TELEMETRY_SetUpdated(TELEM_GPS_LAT);
// GPS longitude
Telemetry.gps.latitude = (u32)packet[5]<<24|(u32)packet[6]<<16|(u32)packet[7]<<8|packet[8];\
TELEMETRY_SetUpdated(TELEM_GPS_LONG);
// RSSI ???
Telemetry.value[TELEM_FRSKY_RSSI] = packet[14];
TELEMETRY_SetUpdated(TELEM_FRSKY_RSSI);
break;
[QUOTE=Всё остальное 😃 (RTH, fly with no GPS, Circle Fly, Headless mode и т.д.)
На дальность не проверял, в аппе выставлена мощность 150 mW
Обсуждение работы протокола Hubsan4 на форуме проекта DeviationTX.[/QUOTE]
CH9-Headless, CH10-RTH, CH11-GPS hold
RTH and Headless works, here my setting with Devo7E
Непосредственно перед выводом на экран надписи “System initializ” в пульте H901A (FPV2) производится инициализация радио-модуля 2.4ГГц.
Алгоритм инициализации поочерёдно включает 11 каналов с задержкой 5 мс и замеряет RSSI на каждом.
Лушее значение RSSI запоминает вместе с номером канала и по окончании работы алгоритма устанавливает лучший канал.
Т.е. когда вы видите надпись “System initializ” уже установлена оптимальная частота по измеренному RSSI.
Кстати, сразу же за выводом надписи “System initializ” аналогичная процедура с поиском и выбором “чистого” канала производится и для видеотракта.
Тоже последовательным перебором каналов по диапазону с сохранением частоты канала у которого был наилучший RSSI.
Процедура обнаружения магнетометра:
В начале дрон пытается найти магнетометр HMC5883L с адресом 0x1E на шине I2C. Для этого:
- Читается регистр 10 (идентификационный регистр A) и проверяется на совпадение с 0b1001000.
- Читается регистр 11 (идентификационный регистр B) и проверяется на совпадение с 0b110100.
Если выполняются оба условия, датчик HMC5883L считается обнаруженным и взводится флаг, что датчик HMC5883L обнаружен.
При несовпадении хотя бы одного условия флаг обнаружения HMC5883L сбрасывается и выполняется процедура,
которая десять раз включает и выключает бит 7 порта GPIOF с задержкой между включениями и выключениями
по 1000 тиков таймера TIM6. Вероятно, на этот вывод подключен светодиод и он мигает когда HMC5883L не обнаружена.
После этого следует задержка 10 мс и далее процедура обнаружения нового датчика магнетометра с адресом 0xC на шине I2C.
Самое интересное, что если и этот датчик не обнаружен, то дрон снова мигает светодиодиком и начинает обмен с каким-то устройством
с адресом 0x18 на шине I2C. Возможно, что он умеет работать ещё с каким-то видом датчика. Нужно разбираться.
Магнетометр HMC5883L используется в двух режимах:
Режим 1 - частота 15Гц, диапазон +/-2.5Ga, одиночные измерения.
CRA = 0b10001 (DO2, MS0 = 15Hz rate, Positive bias current)
CRB = 0b1100000 (GN1, GN0 = +/-2.5Ga range)
MR = 1 (MD0 = Single measurement mode)
Режим 2 - частота 30Гц, усреднение по 4 замерам, диапазон +/-1.9Ga, непрерывное измерение.
CRA = 0b1010100 (MA1, DO2, DO0 = 4 averaged samples, 30Hz rate)
CRB = 0b1000000 (GN1 = +/-1.9Hz range)
MR = 0 (Continuous Measurement Mode)
Для чего какой пока не разбирался. Наверное один для калибровки, другой для измерений в полёте.
Наконец удалось разобраться с магнетометром нового образца EA4000038.
Процедура обнаружения магнетометра:
В начале дрон пытается найти старый магнетометр HMC5883L с адресом 0x1E на шине I2C.
Для этого:
- Читается регистр 10 (идентификационный регистр A) и проверяется на совпадение с 0b1001000.
- Читается регистр 11 (идентификационный регистр B) и проверяется на совпадение с 0b110100.
Если выполняются оба условия, датчик HMC5883L считается обнаруженным и взводится флаг, что датчик HMC5883L обнаружен.
Если не выполняется хотя бы одно условие, то вызывается процедура мигающая 10 раз светодиодом (предположительно).
Далее выполняется поиск нового магнетометра ALPS HSCDTD008A с адресом 0xC на шине I2C (миниатюрный в корпусе 8 pin FLGA размером 1.6x1.6 мм).
Для этого: считывается регистр 0xF “Who I am” и проверяется на значение 0b1001001.
При совпадении магнетометр HSCDTD008A считается найденым и взводится соответствующий флаг.
За тем, вызывается сброс (reset) взведением бита 7 (SRST) регистра 0x1D (CTRL3).
Производится задержка 100 мс.
Сбрасывается бит SRST и взводится бит 1 OCL (Start to Calibrate Offset in Active Mode) того же регистра.
Опять делается задержка 100мс.
В регистре 0x1B (CTRL1) взводятся биты соответствующие активному режиму и частоте измерений 100 Гц.
Магнетометр Honeywell HMC5883L 3-х осевой магнетометр с разрешением 0.25 микротесла на LSB в корпусе
16-pin LPCC размером 3.0x3.0x0.9 мм. Диапазон измерения -8…+8 миллитесла.
Магнетометр ALPS HSCDTD008A 3-х осевой магнетометр с разрешением 0.15 микротесла на LSB в корпусе
8-pin FLGA размером 1.6x1.7x0.7мм. Диапазон измерения -7.2…+7.2 миллитесла.
В магнетометре присутствует FIFO память на 8 измерений.
Кстати, если значение магнитометра не считывается, то диод тоже мигает 10 раз и заново запускается процедура поиска магнетометра описанная выше.
И таки да, дрон понимает ещё один, какой-то до селе науке неизвестный, третий вид магнетометра.
Краткий алгоритм работы прошивки RX:
- Инициализация часов, регистров управления, портов ввода-вывода.
- Определение манетометра.
- Инициализация приёмо-передатчика A7105.
- Перемигивание белыми светодиодами в колпаках 2 секунды.
- Установка мощности A7105.
- Инициализация GPS.
- Инициализация watchdog.
- Основной цикл:
8.1. Обработка команд.
8.2. Через 0.2 сек от старта цикла инициализация и установка мощности RTC6750.
8.3. Через 1 сек от старта цикла включение сохранённого видеоканала.
8.4. Чтение показаний магнетометра через I2C.
8.5. Чтение и разбор сообщений NMEA от GPS через USART.
8.6. Установка режима свечения светодиодов колпаках.
8.7. Отсчёт времени при помощи TIM16.
8.8. Переход к п. 8.1.
Подскажите пожалуйста , что можно сделать с пультом версии про. После прошивки перестал полностью работать дисплей. Он просто не включается, хотя индикатор работы пульта работает . В компьютере он определяется. Возможно с дуру не ту прошивку прошил.
С самого начала, еще когда не приехал квадрик уже хотелось чтобы он мигал белым, а не сиреневым.
Подобрал номиналы резисторов для того, чтобы сиреневый свет стал белым.
Номиналы с макета:
R R4 = 8R2 (8.2 Ом)
G R5 = 2R7 (2.7 Ом)
B R6 = 220 (22 Ом)
Это наиболее удачный вариант. Номиналы скорректированы относительно предыдущего сообщения для того, чтобы светодиоды светили по-ярче, а белый точнее попадал в белый цвет.
При включении цвет будет немного в теплоту, но по мере прогрева становится лунно-белый. При перегреве даже немножко синит, так что в полёте думаю будет самое оно.
Потребляет около 250 мА на 3.3 В.
здравствуйте, Почему прошивки на оф сайте HUBSAN для разных стран разные??? какую лучше ставить тогда???
Захотелось сделать камеру с изменяющимся углом взгляда. Сделал. Проверил. Работает. Похвастался.
Правда - сделано на Н501С, но не принципиально, смысл тот же.
Никаких приводов, зато и почти без изменения веса.
Новый корпус камеры сидит достаточно плотно, не болтается, но руками изменить угол можно легко и просто (если допрыгнуть до квада 😃)
Мне кажется, все были бы только ЗА, если бы производитель добавлял подобный простой функционал в стоке.
Пока никак не решусь на установку новой официальной прошивки. На оф. сайте показывают и объясняют, но очень быстро и на английском. :-/Нет ли инструкции по обновлению на русском и какие впечатления от новой прошивки?
Коллеги! Вопрос к знатокам про аппы (H906a). После ребинда с h501ss не отображаются координаты пульта. Там, где они должны быть, пустая строка. При этом координаты коптера там, где им и положено находиться… В аппе на приемнике ЖПС горит красный светодиод. Судя по тому, что расстояние от коптера до пульта вычисляется (хотя пробовал только в режиме 6 спутников при запуске моторов, дальше по мере нахождения большего кол-ва координаты уточняются) и расстояние соответственно меняется в пределах 10м, пульт координаты свои знает но не показывает. При дизарме дельта по расстоянию устанавливается в 0. Вот такая беда. Что делать то?
П.с:Прошивка версии пульта с 1.1.9 до 1.1.16 не помогла.
Коллеги! Вопрос к знатокам про аппы (H906a). После ребинда с h501ss не отображаются координаты пульта. Там, где они должны быть, пустая строка. При этом координаты коптера там, где им и положено находиться… В аппе на приемнике ЖПС горит красный светодиод. Судя по тому, что расстояние от коптера до пульта вычисляется (хотя пробовал только в режиме 6 спутников при запуске моторов, дальше по мере нахождения большего кол-ва координаты уточняются) и расстояние соответственно меняется в пределах 10м, пульт координаты свои знает но не показывает. При дизарме дельта по расстоянию устанавливается в 0. Вот такая беда. Что делать то?
П.с:Прошивка версии пульта с 1.1.9 до 1.1.16 не помогла.
Проверяйте провод и разъемы самого модуля GPS (разъединить и заново соединить), возможно где-то контакт плохой.
А еще надо осмотреть визуально сам модуль - если на площадке с антенной есть трещина (трещины) - то ловить НЕ будет - под замену!
Провода проверил, переткнул. Пробовал включать пульт без жпс модуля. Изменений нет. Пульт не ругается, хотя может и не должен. Может кто проверит, как реагирует пульт на отключение модуля жпс. И в догон вопрос. Напро пульте и стандарте эти модули разные?
Провода проверил, переткнул. Пробовал включать пульт без жпс модуля. Изменений нет. Пульт не ругается, хотя может и не должен. Может кто проверит, как реагирует пульт на отключение модуля жпс. И в догон вопрос. Напро пульте и стандарте эти модули разные?
Эти модули Одинаковые, я даже менял местами с самим коптером - попробуйте и тогда все станет ясно, либо модуль не рабочий, либо все-таки контакт…
P.S.: пульт ни как не будет реагировать на отсутствие GPS (показаний на пульте не будет).
Спасибо, вечером попробую. Странно, что появление проблемы совпало с биндом, до этого было все хорошо. Пульт установил связь с коптером, появилась строчка координат коптера, а координаты самого пульта нет. Может есть комбинация сброса про пульта до заводских настроек?