Hubsan X4 FPV H501S - FAQ, инструкции, прошивки, модернизации

Andrey_USK
Рамзес888:

она редактирует Почти Все версии прошивок

что то не работает…
DeviceArrival {4D1E55B2-F16F-11CF-88CB-001111000030}
DeviceRemoveComplete {4D1E55B2-F16F-11CF-88CB-001111000030}
Снял видюшку как все происходит… cloud.mail.ru/public/6Pzc/b6Dqnci7H
Как он должен определятся? Почти у всех в наборах софта лежит драйвер PL2303 но интерфейсный контроллер дрона явно другой…

Рамзес888
Andrey_USK:

что то не работает…
DeviceArrival {4D1E55B2-F16F-11CF-88CB-001111000030}
DeviceRemoveComplete {4D1E55B2-F16F-11CF-88CB-001111000030}
Снял видюшку как все происходит…
Как он должен определятся? .

Определяться он должен только как Устройство Ввода.
А прошивальщик у вас не тот (внизу красными буквами написано к каким версиям прошивки подходит).

Забияка

ОБРАЩАЮСЬ КО ВСЕМ !

ПАРНИ, Толи читать не умеем, Толи специально делаем, НУ просят же ВАС не захламлять данную ветку информацией не по теме, по существу Пожалуйста.
Многие вопросы задаваемые дублируются и в основной теме, Но почему то отвечаете именно здесь, НЕПОНЯТНО, хотим помочь (ответить), ну перенесите вопрос в основную тему.

P.S. давайте соблюдать правила !

Post deleted.
lukappaseidue

Hi guys,
here my latest update (20 october 2017) , with latest official firmware from HUBSAN (thank HUBSAN team) and even updated modding tool

HERE MY ARCHIVE

FC 1.1.41 very latest tested version
TX for standard remote controller H901A TX 4.2.28
TX for PRO Advanced remote controller H906A TX 1.1.16

13 days later
fisenko

Обзор работы H501S и аппы DEVO.

В передатчик DEVO 8S установлен модуль, включающий чип A7105 и прошита прошивка DeviationTX, поддерживающая протокол Hubsan4.
Что в данный момент работает:
Биндится, армится, летает, переключает режимы светодиодов, переключает полётные режимы, запись видео/фото, принудительный дизарм, бортовое напряжение по телеметрии, failsafe RTH.
Не работает:
Всё остальное 😃 (RTH, fly with no GPS, Circle Fly, Headless mode и т.д.)
На дальность не проверял, в аппе выставлена мощность 150 mW

Обсуждение работы протокола Hubsan4 на форуме проекта DeviationTX.

8 days later
tpc
fisenko:

В передатчик 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;
willkhlau

[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

model9.rar

tpc

Непосредственно перед выводом на экран надписи “System initializ” в пульте H901A (FPV2) производится инициализация радио-модуля 2.4ГГц.
Алгоритм инициализации поочерёдно включает 11 каналов с задержкой 5 мс и замеряет RSSI на каждом.
Лушее значение RSSI запоминает вместе с номером канала и по окончании работы алгоритма устанавливает лучший канал.

Т.е. когда вы видите надпись “System initializ” уже установлена оптимальная частота по измеренному RSSI.

tpc

Кстати, сразу же за выводом надписи “System initializ” аналогичная процедура с поиском и выбором “чистого” канала производится и для видеотракта.
Тоже последовательным перебором каналов по диапазону с сохранением частоты канала у которого был наилучший RSSI.

7 days later
tpc

Процедура обнаружения магнетометра:

В начале дрон пытается найти магнетометр HMC5883L с адресом 0x1E на шине I2C. Для этого:

  1. Читается регистр 10 (идентификационный регистр A) и проверяется на совпадение с 0b1001000.
  2. Читается регистр 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)

Для чего какой пока не разбирался. Наверное один для калибровки, другой для измерений в полёте.

tpc

Наконец удалось разобраться с магнетометром нового образца EA4000038.
Процедура обнаружения магнетометра:

В начале дрон пытается найти старый магнетометр HMC5883L с адресом 0x1E на шине I2C.

Для этого:

  1. Читается регистр 10 (идентификационный регистр A) и проверяется на совпадение с 0b1001000.
  2. Читается регистр 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 измерений.

tpc

Кстати, если значение магнитометра не считывается, то диод тоже мигает 10 раз и заново запускается процедура поиска магнетометра описанная выше.

И таки да, дрон понимает ещё один, какой-то до селе науке неизвестный, третий вид магнетометра.

tpc

Краткий алгоритм работы прошивки RX:

  1. Инициализация часов, регистров управления, портов ввода-вывода.
  2. Определение манетометра.
  3. Инициализация приёмо-передатчика A7105.
  4. Перемигивание белыми светодиодами в колпаках 2 секунды.
  5. Установка мощности A7105.
  6. Инициализация GPS.
  7. Инициализация watchdog.
  8. Основной цикл:

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.

Albvin

Подскажите пожалуйста , что можно сделать с пультом версии про. После прошивки перестал полностью работать дисплей. Он просто не включается, хотя индикатор работы пульта работает . В компьютере он определяется. Возможно с дуру не ту прошивку прошил.