S-OSD для NAZA Lite/V2

ialeksey

Собрал я тут себе прошивочку…
Изначально просто хотел впихнуть все возможности в одну прошивку (компас, горизонт, led, радар), чтобы не приходилось выбирать. А потом немного затянуло…

Сейчас в прошивке:

  • стрелка домой по компасу
  • режим полета
  • радар (как и все остальное отключается из конфигуратора!) 😃
  • горизонт
  • пучок нужных мне 😎 дополнений, которые может кому-то еще придутся по вкусу

В архиве присутсвует файл со шрифтами, который крайне желателен к применению, т.к. некоторые иконки были изменены, а некоторые неиспользуемы задействованы (и соотв. тоже изменены).

Список изменений, просто что помню.

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

  2. Стрелка домой по компасу (спасибо alezz). До момента нахождения спутников работает просто как компас, в полете уже как стрелка домой.

  3. Радар присутствует в прошивке, но теперь он отключаемый из конфигуратора.
    Масштаб радара (который стандартно выводится справа от него) я оторвал от самого радара и повесил на неиспользуемую панельку “Air Speed”. Теперь в конфигураторе ее можно переместить в любое удобное место (у меня она снизу под радаром, т.к. справа я привык видеть высоту). Сам радар выводится там же где горизонт, даже если сам горизонт выключен в конфигураторе.
    А отключение панельки “Air Speed” в конфигураторе отключает и сам радар.

  4. Индикатор режима полета сам режим показывает, но имитация мигания LED там больше нет.

  5. Предупреждение о FailSafe продублировано на панель “Warnings” даже если режим полета не выведен на экран, но LED подключен к OSD.

  6. Переключатель экранов OSD теперь только 2-позиционный (панель1, панель2). В оригинале было 3 положения (панель1, панель2, чистый экран). Экраны меняются только так, по положению газа как у alezz не меняются.

  7. Панелька тока (Current) двустрочная (alezz). Показывает текущее потребление тока и суммарно израсходованные mAh во второй строке.

  8. Фиксация дома по 6 спутникам, а не дефолтным 5 (alezz).

  9. Определение момента взлета и сброс времени и статистики (доработанная идея alezz).
    Сразу после включения коптера отсчитывается “время простоя” (своя иконка у часов).

Взлетом определяется двумя способами:
фиксация дома + throttle больше 55% (почти как у alezz)
ИЛИ
если ток превысил 3 амера и панелька тока выведена на экран. (здесь и далее, если у кого нет датчика тока, то надо просто скрыть индикатор с экрана, чтобы его “погода на Марсе” не влияла на поведение OSD).

Иконка часов меняется на режим полета и идет отсчет времени полета.

Далее, если газ оказался в 0% более чем на 5 сек, то это считается паузой в полете (взлетели и приземлились по каким-то причинам). Отсчет времени при этом останавливается и иконка часов показывает паузу в полете.

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

Если полет продолжался более 30 сек, то в режиме “паузы”, пока газ в 0% выводится статистика полета. см. далле.

Для правильного отображения иконок часов нужны мои шрифты.

  1. Индикатор батерии высчитывает процент по напряжению (доработанная идея alezz).
    Добавлено автоматическое определение кол-ва банок, а не завязано железно на напряжение 3S. Но работать будет только если подключать более/менее хорошо заряженные батерии.
    Если подлючить разряженную 4S, то от 3S ее отличить естественно не получится. Предполагается, что на разраженных батареях влетать мы не будем. Так что это всё примерно, собственно как и сам этот процент.

  2. Иконка процента батареи меняется вместе с изменением отображаемого процента. Идея была зарыта в недрах прошивки, но не использовалась. Шрифты нужны, там что-то менялось.

  3. Если есть датчик тока, то процент заряда батареи может показывать реальный оставшийся заряд исходя из емкости батерии в mAh.
    Здесь всё немного замороченно 😈 Во-первых, для настройки емкости батарии обязательно требуется подключенный канал Throttle И подключенный переключатель экранов. Без них в режим настройки не войти.
    На экран надо вывести неиспользуемая ранее, но теперь задействованную панельку “Efficiency”. Там задается емкость батареи.

Для входа в режим настройки емкости нужно в режиме “простоя” или “паузы в полете”, установить Throttle больше 30%, но менее 55% (чтобы не засчитался взлет) и дважды переключить экран OSD с текущего на другой и вернуться обратно. Т.е. должно быть ЧЕТЫРЕ ЩЕЛЧКА тумблером с интервалом не более 1 сек между каждым щелчком.
Иконка Efficiency начнет мигать.
Далее всё по аналогии с калибровкой напряжение или тока: выше газ - добавляем емкость в mAh, ниже - уменьшаем. В режиме установки емкости “взлет” не засчитается, даже если газ в 100%.
Для выхода - снова переключить экран в OSD. (1 щелчок тумблера).
Установленная емкость сбрасывается если отключить питание.
Теперь процент батареи считается исходя из установленной емкости и суммарно потребленного тока.

  1. Панелька “GPS Coord” однострочная, но короткая. Lat/lon идут не друг за другом и не друг под другом, а переключаются каждые 2 сек. Для экономии места на экране.

  2. После окончания полета при газе в 0% выводится статистика по центру экрана (на месте горизонта).
    Показывает максимальное удаление от дома, максимальную скорость, максимальную высоту. Если есть датчик тока, то еще максимальный ток и средний расход mAh/км.

  3. Добавлена фильтрация (усреднение) значений текущего тока и RSSI прямо в прошивку, чтобы сильно не прыгали.

  4. Подправлены значения определения цвета LED (у меня в режимах иногда ошибался из-за неправильного определения цвета)

В архиве сама прошивка, файл шрифтов, калибровочные прошивки (alezz), прошивка для заливки шрифтов и мои настройки экранов OSD. При заливке шрифтов не забудьте отключить все лишние провода (ообенно провода LED и GPS, которые идут в NAZA и в OSD).

P.S. Общий налет прошивки пока 0 часов 0 минут 0 секунд. Гыгыгы. Все тестировалось только через эмуляцию 😂
P.P.S. нифига я тут настрочил

S-OSD_by_AVI.zip

Agioso
ialeksey:

Собрал я тут себе прошивочку…

В архиве сама прошивка, файл шрифтов, калибровочные прошивки (alezz), прошивка для заливки шрифтов и мои настройки экранов OSD.

Что делаю не так?
Отцепил все провода gps и led, подключил адаптер:

открыл программу OSD_Config, далее Options->Update Firmware, выбираю ваш файл SOSD_by_AVI.hex, заливаю… Далее через File->Open OSD File открываю avi.osd, жму Panel 1, сохраняю настройки в OSD через кнопку Save current tab to.
Тестирую… компаса нет, стрелка “Дом” мечется как и раньше, правда не взлетал. Добавил на экран компас - тоже мечется, то есть компас как и прежде по gps. Напряжение в процентах и прочих ништяков также нет. Что я делаю не так? Может прошивать следует через USBasp?
Шрифты - minNAZAOSD_upload_MCM? Заливаю через тот же Options->Update Firmware. Далее Options->Update CharSet, выбираю avi.mcm, немного подумав, выдает: Error entering font mode - No Data

Чувствую что делаю что то не то 😵😕

crown
Agioso:

Чувствую что делаю что то не то

Шрифт заливать через специальную прошивку (прошивка для шрифта, потом шрифт, потом основную прошивку)

Agioso
crown:

Шрифт заливать через специальную прошивку (прошивка для шрифта, потом шрифт, потом основную прошивку)

Шрифты это mcm? Пробовал так: отключаю все модули, через Options->Update Firmware заливаю прошивку minNAZAOSD_upload_MCM.hex. Далее Options->Update CharSet, выбираю файл avi.mcm. Немного погодя, выдает: Error entering font mode - No Data
Далее через Options->Update Firmware заливаю основную прошивку SOSD_by_AVI.hex. Загружаю и сохраняю настройки avi.osd, для удобства добавив компас. Все то же самое - компас и стрелка мечется, напряжения в процентах нет. Иконки те же самые.

Yden
Agioso:

Немного погодя, выдает: Error entering font mode - No Data

это значит что не залились шрифты, ясно дело не будет других иконок

да шрифты это mcm

Agioso

как я понимаю шрифты влияют лишь на корректное отображение иконок и самого текста? На поведение компаса и цифровых значений влиять не могут? Значит не в них дело. Мне собственно все равно какие иконки, я на них не смотрю.

Yden
Agioso:

как я понимаю шрифты влияют лишь на корректное отображение иконок и самого текста?

да именно так,
если есть usb isp програматор попробуй стереть чип и залить бутлоадер и прошивку

ialeksey
Agioso:

заливаю основную прошивку SOSD_by_AVI.hex

Agioso:

компас и стрелка мечется, напряжения в процентах нет

Во время “Booting up…” на экране что написано? minnazaosd 0.0.1 или что-то другое?

Agioso
ialeksey:

Во время “Booting up…” на экране что написано? minnazaosd 0.0.1 или что-то другое?

Да, именно так. И на оригинальной прошивке и после вашей. А что должно быть?

Yden:

да именно так,
если есть usb isp програматор попробуй стереть чип и залить бутлоадер и прошивку

А где можно бутлоадер взять?

ialeksey
Agioso:

Да, именно так. И на оригинальной прошивке и после вашей. А что должно быть?

Значит прошивки у вас не заливаются. У меня текст изменен.
Не заливается прошивка для шрифтов (поэтому и шрифты обновить не получается), не заливается и моя прошивка, поэтому и не работает.

Agioso
ialeksey:

Значит прошивки у вас не заливаются. У меня текст изменен.
Не заливается прошивка для шрифтов (поэтому и шрифты обновить не получается), не заливается и моя прошивка, поэтому и не работает.

Тогда возможно причина в моем usb-адаптере. Я ранее писал, у него нет аппаратного ресета, приходится вручную кнопку жать. Настройки экрана меняются успешно, да и при прошивке пишет что вроде все нормально, загрузилось… но может что то не хватает. Попробую найти адаптер с аппаратным ресетом и попробовать снова.

crown
Agioso:

Попробую найти адаптер с аппаратным ресетом и попробовать снова.

У меня есть адаптер проверенный, могу одолжить

Agioso
crown:

У меня есть адаптер проверенный, могу одолжить

Буду признателен 😃 отписал в личку

budulu

привет всем! парни подскажите как прошить осд через usbasp

Orlov
budulu:

парни подскажите как прошить осд через usbasp

Рафаэль, привет!
Я решил проблему с бутлоадером. Попробуй, может получится.

Симптомы следующие: OSD работает, но при коннекте через FTDI выдает “Failed to talk to bootloader”.
Решение: одновременно с кнопкой “Read from OSD” нужно нажать “Reset” на S-OSD.

Yden
Orlov:

Решение: одновременно с кнопкой “Read from OSD” нужно нажать “Reset” на S-OSD.

если это действительно бутлоадер, то через ftdi его не перешить

Orlov
Yden:

через ftdi его не перешить

Ну во-первых я не про прошивку бутлоадера, это решение - обход косяка с тем что по какой-то причине не дергается ресет. Есть идея, что нужно помимо питания от FTDI на OSD подать еще 5V, например от канала Throttling и тогда бутлоадер стартанет без нажатия на Reset.

А во-вторых бутлоадер можно прошить FTDI-адаптером на базе FT232RL, на этой микросхеме есть нужные выводы для ISP, вчера лично прозвонил.

Yden

а контактов в вашем ftdi 5 или 6 ?

чё то я не догоняю, допустим что ftdi на ft232RL имеет что то для ISP, но тогда его надо подключать не в сериал порт через который конфигурируется ОСД а в ISP разём

Orlov
Yden:

а контактов в вашем ftdi 5 или 6 ?

6 пинов, брал по Вашей наводке. Вот такой

Yden:

чё то я не догоняю

Так никто и не спорит, все верно написали. Просто если у Рафаэля проблема с бутлоадером, нужно его заливать через ISP порт, если проблема, как у меня в Reset - нужно либо тыкать на кнопку Reset при чтении данных с OSD. Либо искать другие пути решения, сегодня вечером буду думать

alezz
Orlov:

Ну во-первых я не про прошивку бутлоадера, это решение - обход косяка с тем что по какой-то причине не дергается ресет. Есть идея, что нужно помимо питания от FTDI на OSD подать еще 5V, например от канала Throttling и тогда бутлоадер стартанет без нажатия на Reset.

для того чтобы загрузка начиналась без тыканья в reset с ftdi нужно подать DTR. Пин расположен рядом TX, с одно стороны у него RX а с другой как раз DTR

Orlov:

А во-вторых бутлоадер можно прошить FTDI-адаптером на базе FT232RL, на этой микросхеме есть нужные выводы для ISP, вчера лично прозвонил.

ну я бы был поосторожней с такими сенсационными открытиями 😃 FT232RL работает по протоколу UART бутлоадер же шьется по протоколу SPI

Orlov
alezz:

ну я бы был поосторожней с такими сенсационными открытиями FT232RL работает по протоколу UART бутлоадер же шьется по протоколу SPI

😁 возможно, не спорю. Взял от сюда (2 способ) и еще от сюда

надеюсь меня за это не забанят сильно:)