Deviation - альтернативная прошивка для Walkera DEVO

RW9UAO

у меня возникли проблемы со сборкой libopencm3. пришлось гуглить проблему и изгаляться. Linux way.
ну по ссылке с выложенной средой сборки MinGW другая проблема. копаю.

c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/bin/ld.exe: error: cdcacm.elf uses VFP register arguments, c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/lib/thumb/v7m\libc.a(lib_a-memcpy-stub.o) does not
c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/lib/thumb/v7m\libc.a(lib_a-memcpy-stub.o)
c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/bin/ld.exe: error: cdcacm.elf uses VFP register arguments, c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/lib/thumb/v7m\libc.a(lib_a-strlen.o) does not
c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/lib/thumb/v7m\libc.a(lib_a-strlen.o)
collect2.exe: error: ld returned 1 exit status
make[1]: *** [cdcacm.elf] Error 1
make: *** [examples/stm32/f4/stm32f4-discovery/usb_cdcacm/] Error 2

так, ну с этим разобрались. был глюк в путях. в файле .profile прописал

export PATH=/mingw/stm32/bin:/mingw/python27:.:/usr/local/bin:/mingw/bin:/bin:

но вылезла ошибка как на домашней машине

c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/bin/ld.exe: error: cdcacm.elf uses VFP register arguments, c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/lib/thumb/v7m\libc.a(lib_a-memcpy-stub.o) does not

я находил ее решение, нужно взять правильный libopencm3, но после его сборки основная программа ругается на отсутсвие функций ADC в собранной библиотеке. пришлось подменить файл src/libopencm3/lib/stm32/adc.c на тот, который лежит в девиации.
ставлю линух в виртуалку.

VladislavVY

Фиг его знает, у меня под Windows сразу все пошло без ошибок. Только пути добавлял в стандартные пути Windows. Я делал в такой последовательности:

Установка среды сборки:
Установка MingW:
* Загрузите установщик mingw отсюда: sourceforge.net/projects/mingw/files/…/download
* Запустите установку, и выберите ‘C++’, ‘MSYS’ и ‘Developer Toolkit’

Установка fltk:
* Загрузите fltk отсюда: fltk.org/software.php?VERSION=1.3.0&FILE=fltk/1.3.…
* Запустите msys (у вас должен быть значок, в противном случае запустите C:\MingW\msys\1.0\msys.bat)
* mkdir src
* cd src
* Распакуйте fltk: tar -xzf <путь к дистрибутиву fltk> (вы можете найти его на диске C: в пути mingw используя например /c/Users/<user>/Downloads)
* cd fltk-1.3.0
* ./configure
* make
* make install

Установка portaudio:
* Загрузите portaudio отсюда: www.portaudio.com/…/pa_stable_v19_20111121.tgz
* Запустите msys (у вас должен быть значок, в противном случае запустите C:\MingW\msys\1.0\msys.bat)
* cd src
* Распакуйте portaudio: tar -xzf <путь к дистрибутиву portaudio> (вы можете найти его на диске C: в пути mingw используя например /c/Users/<user>/Downloads)
* cd portaudio
* ./configure
* make
* make install

Установка YAGARTO:

  1. Загрузите и установите YAGARTO (установите в каталог С:\mingw\stm32) www.yagarto.de/#download
    1a) добавьте YAGARTO в переменную PATH (I like to put this into ~/.profile so it is there each time I start msys)
    export PATH=/mingw/stm32/bin:$PATH
    (здесь я просто добавил путь С:\mingw\stm32\bin в пути Windows)

  2. Убедитесь, что установили python. Если нет, установите отсюда: www.python.org/download/releases/2.7.3/
    2a) Добавьте python к пути msys: export PATH=“/c/<path to python>”:$PATH
    (например: export PATH=“/c/Program Files/Python27”:$PATH)
    (здесь я снова добавил путь в пути Windows: C:\Program Files\Python27)

Папка с исходниками Deviation кладется в src (C:\MinGW\msys\1.0\home\<Имя пользователя>\src\)

* Запустите msys (у вас должен быть значок, в противном случае запустите C:\MingW\msys\1.0\msys.bat)
* cd src
* cd deviation/src

Далее по вкусу:
make TARGET=devo8 zip
make TARGET=devo6 zip
make TARGET=devo10 zip
make TARGET=devo7e zip
make TARGET=devo8 fs
make TARGET=devo10 fs
make TARGET=emu_devo8 TYPE=prd WINDOWS=1

при необходимости:
make language (перестроить/обновить файлы языков)
make clean (очистить текущую сборку)

RW9UAO

ну вот как-то не судьба. ставлю toolchain в дебиан.

собралось в винде. разобрался с путями. однако ему винавр мешал. пути такие:

export PATH=/MinGW/stm32/bin:/MinGW/Python27:/MinGW/Python27/Scripts:.:/usr/local/bin:/mingw/bin:/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:"/c/Program Files/TortoiseSVN/bin"

архив мингв взят по ссылке выше.

Smolett

Давайте спустимся с небес на землю 😃
В общем решил я не ждать от валкеры появления новых прошивок на свою DEVO 7Е, перекрестился, плюнул через левое плечо, постучал по дереву и прошил её девиацией. Так что теперь можно зачислить меня в ряды тестеров, все равно возможности отката на сток пока в ближайшее время нет, и насколько я понимаю видимо пока в России я один из первых с прошитым передатчиком.
Первое на что хочу обратить внимание - нет выбора языка в трансмиттере в принципе, соответственно папка language в файловой системе видимо пока не нужна…

Пройдусь сразу по тому что не работает:
Вибро - в меню включение есть - эффекта нет
Контраст экрана - никакого эффекта
Иконки моделей, кроме двух стоковых - корректно не отображаются, по крайней мере от DEVO 8 они не подходят. Размер нужен 52х36, а вот формат цвета я что-то так подобрать и не смог, показывает только пустой квадрат… Ну смысл в том, что иконки моделей для DEVO 7Е и 10 нужны другие.

Что перепутано или не адаптировано:
Переключатель Flight Mode - инвертирован, работает задом наперед если использовать уже готовые пресеты или модели с сайта, возникают сложности с настройкой режимов (самый простой путь - перевернуть переключатель физически, по тому, что просто инвертировать программно его не получается, физические и логические значения его могут иногда приводить к неразрешимым конфликтам 😃 )
Battery Alarm - не работает - не пищит, это раз и второе - его пороговое значение для 7Е точно не подходит - она работает от 4 батареек-аккумуляторов, для которых минимум в 5,5 вольт ну никак не годится, нужно хотя бы от 4 вольт…
Мощность передатчика в настройках явно сбита, когда я пытался летать на своей ladybird на мощности 10 мВт (из файла) - связь в двух метрах уже пропадала, поставил 100 мВт - нормально. Проверить дальность пока не могу, мне не выйти на улицу временно (сломал ногу, скоро поправлюсь, не переживайте, все самое сложное уже давно позади). Я так понимаю, что значения мощности в прошивке устанавливаются видимо в % от мощности модуля, а не в абсолютных единицах, что видимо сыграло злую шутку с семеркой и её слабеньким модулем, в общем требует проверки.

Еще мне кажется не логичным и я бы поменял местами 1 и 2 пункты в меню модели, все-таки выбор модели должен стоять раньше её настроек (миксов), хотя к организации меню есть еще мелкие претензии, но тут сложно сказать что и как удобнее, возможно что привыкнуть просто быстрее 😃
Для меня система микшеров, принятая в данной прошивке, оказалась несколько непривычной и сложной для понимания, сидел тупил долго… Но потихоньку свет в конце тоннеля загорается. Не сразу я сумел найти и изменить кривую газа в предлагаемом варианте для ladybird, я на ней привык летать с линейной кривой, чтобы сразу чувствовать просадки по питанию и не выводить раньше времени аккумы из строя. Тогда же я понял что инвертирован переключатель полетных режимов - в акро режиме букашка в положении 0, в спокойном режиме в положении 1. Тоже самое при настройке вертолета из стандартного пресета - точно такое же поведение кнопки выяснилось когда стал настраивать профиль для Walkera 4F200. Я его еще не доделал, пока не могу до конца въехать в эти миксы и путает некорректная работа IDLE. Как сделаю - выложу, но кому он подойдет с инвертированным переключателем? Будут ли это исправлять или для 7Е-10 нужно будет писать свои файлы моделей?

В общем пока все, такие вот замечания. Если что еще замечу - отпишусь. Я лишь на букашке полетал - летает отлично - тут претензий никаких. Еще много чего надо испробовать - хотя бы тот же бинд с протоклом 2601, 4F200 хоть и маленькая, но в комнате её не запустить, завтра буду пробовать биндить - донастраивать её со снятыми лопастями… ну и методом тыка въезжать в настройки миксов, там все не так вроде и сложно, логика уже начинает выстраиваться.

PS все вышесказанное опробовано на прошивке от 18 января, сейчас пытаюсь читать форум аглицкий, но мне это дается с жутким трудом, нашел тему разработчиков, там есть более свежая сборка от 22 числа, насколько я понял с пофиксенным переключателем полетных режимов (остальное, о чем идет речь в теме мне понять сложно 😉 ), этот пост уже править не буду, а завтра прошью её, может добавлю чего…

VladislavVY

Мощность лучше установить на максимум 150 мВт, тогда будет такая же мощность, как в оригинальной прошивке. Это последствие того, что в Devo 7E выходной усилитель мощности аппаратно отключен, соответственно выходная мощность в прошивке Deviation 7E будет на 20дБ (10 раз) меньше, чем показывается на экране.

Выбора языков для Devo 7E в принципе не будет, так как недостаточно места в памяти передатчика, пришлось ими пожертвовать.

С протоколом 2601 могут быть проблемы, его не удалось эмулировать полностью, в связи с аппаратными особенностями реализации в передатчиках серии 260X. Пощупай опции протокола 2601, может быть что-то подойдет.

По поводу опций файлов BMP для иконок смотри сообщение #72.

Насчет остального, пощупай свежую сборку и опиши, что обнаружишь из багов. Я могу передать эти баги на форум Deviation или непосредственно на bitbucket.org/PhracturedBlue/deviation куда лучше всего писать об обнаруженных ошибках (в разделе Issues -> Create issue).

Babay
Smolett:

Иконки моделей, кроме двух стоковых - корректно не отображаются, по крайней мере от DEVO 8 они не подходят. Размер нужен 52х36, а вот формат цвета я что-то так подобрать и не смог, показывает только пустой квадрат… Ну смысл в том, что иконки моделей для DEVO 7Е и 10 нужны другие.

Я делал иконки в Gimp под Devo10. Для версии 2.8 Гимпа, когда делаешь экспорт в .bmp, в появившемся диалоговом окне ставишь галочку “Параметры совместимости - > Не сохранять данные о цветовом пространстве” и в “Дополнительные параметры -> R5 G6 B5”

Smolett
VladislavVY:

Я могу передать эти баги на форум Deviation или непосредственно на bitbucket.org/PhracturedBlue/deviation куда лучше всего писать об обнаруженных ошибках (в разделе Issues -> Create issue).

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

Smolett

Отписываюсь по итогам дня на последней прошивке deviation 7E.

Начнем как водится с плохого:
Вибро не работает (очень хотелось бы), контраст экрана не регулируется (не больно то и нужно).
Свою Walkera 4F200 настроить удалось, но выяснился один серъезный косяк. Она использует протокол 2601, так вот, все в принципе работает, но настройки самого протокола при каждой перезагрузке передатчика сбрасываются на схему 5+1. Решение простое - или вручную зайти в менюшку протокола и включать каждый раз 6+1 (именно при такой схеме каналов она работает как надо) или просто загрузить туже самую модель. Т.е. в настройках модели протокол прописывается правильно и сохраняется, но при включении передатчика на данной модели будет опять сбрасываться на 5+1… надеюсь понятно объяснил.

Остальные косяки, которые я описал, действительно уже пофиксили. Flight mode работает теперь корректно, пороговое напряжение батареи теперь ставится от 3 вольт, но сигнализация происходит всего лишь однажды коротким писком при переходе этого порога и все, нужно делать сигнал через каждые 30 секунд имхо, а еще лучше было бы короткое вибро каждые 30 секунд. С мощностью передатчика я так понял еще работают и поправят, они знают об этом косяке, пока ставим максимум.

Иконки делать научился, спасибо за подсказки, переделал иконку для 4F200 из стандартной, будет во вложении. Файл с её настройками тоже могу скинуть, но не хочу торопиться, по большому счету там осталось только экспоненты поставить и чувствительность гироскопа проверить, ну может еще с расходами поиграться - но для этого нужно выходить в поле, может в следующие выходные у меня получится, посмотрим. По большому счету это подгонка под себя, а так профиль готов.
Поменял некоторые звуки, чтобы было более информативно, стандартные слишком скудноватые-скучноватые, но нет проблем их переделать - открываем сайт с нотами для старых мобильников и вуаля - передатчик играет музыку 😉

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

Ждем окончательного релиза для 7Е, но и на этом можно смело летать, весь день сегодня гонял по дому букашку - сбоев не было никаких.

PS вложить иконку не получается, форум пишет - некорректный тип файла 😦

PigTail
Smolett:

PS вложить иконку не получается, форум пишет - некорректный тип файла

ну заархивируйте и все вложится

Smolett

Да ну, 3 килобайтный файл архивировать, вот еще 😃 Вот - забирайте! Не зря, таки, яндекс-диск существет для таких мелочей.

VladislavVY

Отрапортовал о замеченных косяках Devo 7E на форум Deviation и Bitbucklet.

Можно поподробнее изложить о звуках и нотах для старых мобильников, для чайников. Например, для меня вся эта нотная грамота = темный лес.

Smolett
VladislavVY:

Отрапортовал о замеченных косяках Devo 7E на форум Deviation и Bitbucklet.

Отлично, спасибо!

VladislavVY:

Можно поподробнее изложить о звуках и нотах для старых мобильников, для чайников. Например, для меня вся эта нотная грамота = темный лес.

Нотная грамота там очень простая, все настройки звуков хранятся в передатчике в файле sound.ini в папке media.

Формат звуков предельно прост:
например такая строка - f2=100 где f - нота фа, цифра 2 - 2 октава, 100 длительность в микросекундах. Также после ноты можно поставить знак диеза #. Ноты обозначаются стандартными для них буквами с - До, d - Ре, e - Ми, f - Фа, g - Соль, a - Ля, b - Си.

Давайте возьмем простой пример, например начало файла содержит вот такой код:

[startup]
;volume is 0 - 100
;volume=25
;g2=500
;a2=500
;f2=500
;f1=500
;c2=500

volume=60
g2=100
e3=100
c4=100

Будет играть обычное скучное пиликанье при включении аппарата. Теперь закомментим стандартное приветствие, чтобы не потерять, и добавим 4 своих ноты:

[startup]
;volume is 0 - 100
;volume=25
;g2=500
;a2=500
;f2=500
;f1=500
;c2=500

volume=60
;g2=100
;e3=100
;c4=100
c3=200
e3=200
f3=200
g3=500

Стало повеселее, правда знакомое? 😉

Параметр volume отвечает за громкость конкретного уведомления в процентах от основной громкости.

Идем далее - стандартный таймер мне показалось малоинформативен, я его изменил на такой:

[alarm2]
volume=100
;f3=150
;d2=100
;d3=100
e2=100
d2=100
e2=100
b2=100
f#1=100
b2=100
e2=200

закомменченнные строки можно смело убрать

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

fisenko

Прошу помощи. Решил старый соосник с wk rx2401 (есть еще почти такой же приемник rx2411) зацепить, да не удалось - не могу поймать каналы руддера и газа. Все остальные верты вешал по пресетам, а как до прикладного рукоделия дошло - не могу догнать эту deviation 😃

VladislavVY

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

VladislavVY

Следующей будет прошивка для Devo 12. И видимо достаточно скоро, PB уже вплотную приблизился к возможности внедрения прошивки на Devo 12.

VladislavVY

Встроенный в исходники libopencm3 вроде подправили, у кого были проблемы со сборкой, проверяйте.

RW9UAO

там надо папку с примерами тупо грохнуть и не будет проблем при сборке =)

  BUILD   examples/stm32/f4/stm32f4-discovery/usb_cdcacm/
c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/bin/ld.exe: error: cdcacm.elf uses VFP register arguments, c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/lib/thumb/v7m\libc.a(lib_a-memcpy-stub.o) does not
c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/lib/thumb/v7m\libc.a(lib_a-memcpy-stub.o)
c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/bin/ld.exe: error: cdcacm.elf uses VFP register arguments, c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/lib/thumb/v7m\libc.a(lib_a-strlen.o) does not
c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file c:/mingw/stm32/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/lib/thumb/v7m\libc.a(lib_a-strlen.o)
collect2.exe: error: ld returned 1 exit status
make[1]: *** [cdcacm.elf] Error 1
make: *** [examples/stm32/f4/stm32f4-discovery/usb_cdcacm/] Error 2

после удаления C:\MinGW\msys\1.0\home\rw9uao\PhracturedBlue-deviation-e46cf32e4c1e\src\libopencm3\examples все прекрасно собирается. в принципе можно забить на этот мой конкретный глюк. тем более что после выпадение этой ошибки сделать make install то все уже собранные библиотеки копируются на места. и проект собирается.

VladislavVY

На самом деле в исходниках Deviation были ссылки на файлы libopencm3, которые находились в других папках встроенного libopencm3.

Например
В файле …\target\devo10\tx_voltage.c
строка 17 - #include <libopencm3/stm32/f1/scb.h>
Файла scb.h нет в …\libopencm3\include\libopencm3\stm32\f1\
Такой есть в …\libopencm3\include\libopencm3\cm3\

и так далее. Все это исправили.
bitbucket.org/…/e46cf32e4c1ef6a2209bdd4964570675

RW9UAO

как ни странно, у меня эти файлы были на нужных местах =)

VladislavVY

Первый запуск Deviation в Devo 12. Пока еще не работает аналоговый ввод и использован интерфейс от Devo 8, но в остальном уже все работает.