RSS лента

{gorbln}

Радиомодем 3DRadio на модулях HM-TRP с нуля

Оценить эту запись
09.01.2014 в 17:58 (13018 Показов)
Решил состряпать запись по прошивке модулей HM-TRP для их работы в качестве радиомодемов для телеметрии.
Процесс оказался не особо интуитивно понятный, мало ли кому пригодится.

Собственно, что нужно для прошивки такого модуля в радиомодем 3DR?
1) Сам модуль
2) Программатор процессоров Silabs. Программатор для регуляторов оборотов на ардуине - подходит, но с оговорками. См. ЗЗЫ в конце записи.
3) Компьютер с LPT-портом (можно с платой расширения)
4) Windows 98 / XP / ME
Пункты 3 и 4 в данный момент перестали быть обязательными - см. ЗЗЫ в конце записи.
5) 3-вольтовый FTDI адаптер (или 5-вольтовый и стабилизатор на 3.3)

Итак. В модуле с завода залита родная HopeRF-овская прошивка. Надо её снести и записать туда загрузчик от 3DR.
Делается это при помощи программатора для процессоров Silicon Laboratories, работающего по интерфейсу C2. Родной программатор стоит порядка 30 баксов, и покупать его, чтобы прошить 2 платки - тупо. Процесс поиска альтернатив навёл на 2 разработки на ардуине (раз и два) и на 2 программатора от LPT. С ардуиновскими дело не заладилось. Наиболее похож на рабочий программатор от OlliW, который используется для программирования регуляторов оборотов, но к нему нет софта, который бы позволял залить любую прошивку в любой силабс - это дело жёстко заточено на регуляторы. Тем не менее - этот программатор правильно определил тип процессора, что говорит о его общей работоспособности. (что в общем-то и подтвердилось впоследствие - см. способ от Drinker-а)
Прошивка 3DR состоит из 2 частей - бутлоадера и собственно прошивки. С помощью С2 программатора достаточно залить только бутлоадер.
Бутлоадеры - разные для каждого из типов радиомодулей - 433, 868, 915 и 470 (?) МГц.
Я заливал бутлоадер при помощи вот такого LPT программатора:

Пользовался софтиной "Slabprog". Для того, чтобы залить бутлоадер подключаем программатор к контактам модуля, обозначенными на картинке красными точками:

Также надо подать питание 3.3 вольта на контакты, обозначенные синим (3.3в) и жёлтым(GND). Я использовал для этого 3-вольтовый FTDI адаптер.
Далее. Грузимся в Windows XP. Я использовал грузящуюся с флешки WinPE. Запускаем Slabprog. Подключаем программатор к LPT порту. Подключаем питание к радиомодулю.
В SlabProg-е можно попробовать прочитать всю память модуля - у меня выдало ошибку. Зато определился процессор (16 05). Далее жмём "Open", выбираем нужный бутлоадер, далее "ALLMEM ERASE", "ALLMEM PROGRAM", "ALLMEM VERIFY" (с небольшими промежутками). Потом жмём "DEVICE RESET" - на радиомодуле должен загореться красный светодиод. Это свидетельствует о том, что бутлоадер залит.

Дальше проще.
Отсоединяем питание, программатор, грузимся в основную рабочую систему, запускаем Mission Planner.
Радиомодуль надо подключить к FTDI адаптеру (3-вольтовому!) в соответствии с "боевой" схемой включения. А именно - по картинке выше, +3V: синяя точка, GND: жёлтая, TX (со стороны FTDI): зелёная, RX FTDI: голубая. (собственно, все контакты подписаны на обратной стороне, это я уж так, для полноты картины).
Фиолетовой точкой на картинке обозначен вывод, при замыкании которого на землю радиомодем уходит в режим бутлоадера (для обновления прошивки). Первый раз ничего замыкать не надо - модем и так находится в режиме бутлоадера.
В мишн планнере выбираем закладку "Initial setup -> 3DRadio". Проверяем, какой порт выбран сверху справа (нужен тот, к которому подключен радиомодуль). Нажимаем "Upload firmware (local)". Планнер должен найти модуль и начать вливать в него прошивку - красный светодиод на модуле будет мигать. По окончании - надо настроить модуль. Выбираем скорость 57600, жмём "load settings", настраиваем как считаем нужным - ГОТОВО!

Вот, такой вот "3DR radio from scratch" =)

З.Ы. Кто знает нормальный программатор С2 на ардуине - поделитесь информацией в комментах, а то этот LPTшный гемор - никакой радости не доставляет.

З.З.Ы. Кому неохота заморачиваться с LPT и WinXP - несколько "бубновый", но вполне рабочий способ прошить процессор от тов.Drinker:
Итак.
Качаем http://www.olliw.eu/uploads/ow-silpr...x-20131027.zip
Подключаем ардуинку (у меня нано) к компу, запускаем AvrBurnTool_v101 и шьём ейо. Теперь у нас есть программатор.
Далее.
Подключаем радиомодуль к земле и питалову ардуинки (у меня модуль напаян на платку со стабилизатором на 3.3в, поэтому я подал 5 вольт, голый модуль неадо подключить к 3.3в ардуинки).

Теперь.
Зырим сюда http://www.olliw.eu/uploads/owsilpro...p1-300x200.jpg
Находим на радиомодуле ряд из 4 дырок. Нижний провод с фотки подключаем ко 2-й от проца дырке, средний - к 1-й. Верхний нафиг не нужен, мы уже к земле подключили модуль.
Прим. {gorbln}: если юзаем Arduino ProMini - подключаем 1-ую от проца дырку (C2CK) к контакту D11, а вторую (C2DAT) - к контакту D12 ардуины.

Качаем хексы бутлодера и радио http://jenkins.taulabs.org:8080/job/...546e1ab095.zip - не работает, оставлено для истории
Качаем отсюда - https://drive.google.com/folderview?...UU&usp=sharing
Качаем мегадринкеропрошивальщик http://yadi.sk/d/Df6keA1GFkesi

Запускаешь дринкеропрошивальщег, выбираешь порт и скорость 38400
Внизу в строку вводишь строку rie
В ответ должно на каждую букву приити ответ ок.
Если так, то кнопкой open выбираешь хекс с бутлодером (у тебя bootloader~hm_trp~868.hex) и пошла прошивка.
После каждой строчки будет ок, кроме десятка последних. (это важно!)

Тут гимор начинаецца легкий.
Надо ЗАПОМНИТЬ какая строчка последняя с результатом ОК.
Открываем хекс на редактирование, удаляем последнюю строку (:00000001FF)
И с КОНЦА вырезаем все оставшиеся строки до последней с "ок" и вставляем их ПЕРЕД той самой строкой.

Повторяем процедуру (rie, open)
Вуаля - бутлодер прошит!

Дальше - как и описано - подключить к Mission Planner-у, прошить основную прошивку, настроить.

Обновлено 01.09.2015 в 23:37 [ARG:5 UNDEFINED]

Метки: 3dradio, hm-trp
Категории
Без категории

Комментарии

  1. Аватар для Lazy
    Купил готовые модемы и есть мне щастие...
  2. Аватар для {gorbln}
    Ну.. Это неспортивно! А как же зуд в руках и желание съэкономить полцены? =D
  3. Аватар для Lazy
    Сэкономить 40 баксов и потратить полдня? Как то у меня калькулятор не стыкуется.
  4. Аватар для SergDoc
    думаю на семёрке тоже покатит, только драйвер прямого доступа к портам нарыть?
  5. Аватар для {gorbln}
    ну, драйвер, да. А ещё - исходники программатора. короче задача нетривиальная.
  6. Аватар для {gorbln}
    Добавил способ прошивки для людей, обделённых LPT-ой =)
    Спасибо тов. Drinker-у за это дело!
  7. Аватар для Prsh
    Черт, подумал я, зачем ж я купил Toolstick!..но дочитал до слов "кроме десятка последних" и решил - а и ладно, пусть будет.. А если серьезно, то большое спасибо за информацию.
  8. Аватар для {gorbln}
    На здоровие! Способ с ардуиной, конечно, не айс - но он работает (сам проверял) - и работает под вин7 и на компе без лпт, что актуально для ноутов. Я два дня протрахался с установкой WindowsPE на флешку, поэтому способ с ардуиной не так уж и плох. =)
  9. Аватар для karavaev
    Готовый модем на 433Мгц
    С самого начала эксплуатации постоянно рвалось соединение, оказались укомплектован антеннами не на ту частоту.
    Купил новые антенны, вроде дома работал хорошо, поехал летать и соединение с модулем не установилось.
    Теперь постоянно горит зеленый светодиод и моргает красный с периодом 1 сек. Такие симптомы были и раньше, но как то он оживал и работал кое как.

    процессор (16 04)
    Залил бутлоадер, затем "ALLMEM PROGRAM", выполнить операцию "ALLMEM VERIFY" не получилось. Сразу загорелся красный светодиод.

    Заливка прошивки около 2 минут заполнялась зеленая полоска и моргает красный светодиод, сообщение успех, но к модему подключиться так и не получается.
    Горит постоянно зеленый и моргает красный с периодом в 1 сек

    Как можно его реанимировать?
    Обновлено 02.04.2014 в 23:43 [ARG:5 UNDEFINED]
  10. Аватар для {gorbln}
    Net ID, частота и прочие нужные параметры правильно установлены?
  11. Аватар для karavaev
    Я не могу подключиться к модулю через FTDI
    Хотя прошивка заливается когда он находиться в состоянии бутлоадера
  12. Аватар для 5yoda5
    Здравствуйте, у меня другая проблема.
    Модули друг друга видят - в МП отражается как параметры/номер прошивки наземного модуля, так и "удаленного". Но через модуль - не коннектится "no heartbeat received". Такое ощущение, что сам контроллер не видит модуль.
  13. Аватар для {gorbln}
    А со скоростью-то точно всё нормально?
  14. Аватар для ST33
    Здравствуйте, Егор! Спасибо огромное за подробную инструкцию! У меня как раз было два HM-TRP и необходимость в модемах 3DRadio .
    Прошивал через Ардуину. Получилось довольно быстро и просто.
    Теперь вопросы: не получается скачать по этой ссылке "Качаем хексы бутлодера и радио http://jenkins.taulabs.org:8080/job/...546e1ab095.zip"
    Скачал бутлодер на 433 из первой части статьи (где про LPT). "Upload firmware (local)", "load settings" "Save settings" проходят успешно.
    Связь с Mission Planner получается установить 1 раз на 30 попыток (примерно ). С Droid planner (на Galaxy S2 и S3) вообще не коннектится. Светодиоды на модулях работают так: зеленый горит постоянно (иногда гаснет), красный мигает.
    Модули рабочие - на заводской прошивке более 600 м уверенной передачи данных GPS.
  15. Аватар для {gorbln}
    Поправил заметку - бутлоадеры теперь можно скачать с моего гуглодиска.

    Странное поведение светодиодов. Такого быть не должно, попробуйте перепрошить всё заново.
  16. Аватар для ST33
    Спасибо за оперативный ответ! Вечером попробуйю перепрошить.
  17. Аватар для ST33
    Прошил новые бутлоадеры - связь с ПК установилась без проблем! С Андроидом (Droid planner) все равно не работает . Поиск ответа в сети показал, что проблема может быть с версией прошивки Андроида. Буду копать дальше.
  18. Аватар для {gorbln}
    Связь с андроидом не зависит от прошивки радиомодулей =)
    Она зависит от того, видит ли андроид FTDI адаптер, встроенный в наземный модуль (в случае модулей 3DR - в случае самодельных - непонятно к чему подключать UART в андроиде)
  19. Аватар для ST33
    FTDI адаптер не видит (у меня на PL2303 с ebay). Перерыл весь инет, в т.ч. и соответствующие топики на местном форуме: устанавливал USB host controller и кучу других приложений - толку нет. Приложение USB Contlor Panel видит адаптер и даже что-то принимает с модуля (ну и передает соответственно, видно по миганию светодиода). Однако Droid Planner так ничего и не видит Тем не менее, на ПК в Mission Planner все работает! Большое спасибо!!!
  20. Аватар для {gorbln}
    Дык ёлки... PL2303 - это вообще, просто люто НЕ FTDI. Это пролифик, и дрова в планшете должны быть для пролифика. И далеко не факт, что они вообще в природе существуют. Попробуйте с FTDI адаптером, всё-таки, который FTDI =)))
  21. Аватар для ST33
    Ясно, буду копать дальше Заодно закажу себе на ebay микросхему FT232RL FTDI SSOP-28.
  22. Аватар для ST33
    Пришла FT232RL c ebay (за 2,35$). Запаял схему - с Galaxy SIII работает (иногда не с первого раза, возможно переходник глючит). Пока в "реальном бою" не проверял, но в домашних условиях с APM 2 все четко работает.
  23. Аватар для {gorbln}
    К слову про пролифик.
    Оказалось, что дрова на него для андроида очень даже существуют. И даже есть фирменная тестировочная утилитка. Но у меня на Prestigio Multipad - приёма не было. Передача идёт (ну, по крайней мере, светодиод на модуле мигает), а вот приёма при замыкании TX-RX не происходит. Планнер не проверял - руки не дошли.
    FTDI так не проверял, но Droid Planner с ним работает отлично.
  24. Аватар для Добрый Ээх
    А есть вариант прикрутить к ардупилоту что-то более мощное, например RFM12BP или видел на ебее вообще одноваттные?
  25. Аватар для {gorbln}
    См. предыдущую запись. Там я как раз описываю самодельный модем отдельно на радиомодуле и процессоре. Скажу сразу - модем 3DR уделывает мою поделку как лежачую. Причём дело не в мощности - она одинаковая. В 3DR-овском модеме много софтовых улучшений сделано.
    Есть мысль сделать самодельный модем с возможностью подключения любого радиомодуля но нужен программист. Денег платить я возможности не имею, сам программист никакой.
  26. Аватар для Добрый Ээх
    А, спасиб читал, но поделка имеет такую же мощность что и 3ДР, а если использовать трансивер в 5-10 раз мощнее смысл будет?
  27. Аватар для Fumo
  28. Аватар для cheguev
    Здравствуйте!
    имею клон 3dr на силабовской схеме, земля на юсб, хочу из земли переделать разьем как на воздухе. Почитал на других источниках - вроде можно напрямую подключать, но и должны быть фильтры и преобразователь... У вас картинки не отражаются больше. Не могли бы помочь?
  29. Аватар для {gorbln}
    Картинки сдохли, к сожалению, вместе с хостингом. Но там ничего для вас полезного не было.
    Сделать из наземного модема воздушный - можно. Вопрос только - зачем? И что значит "напрямую подключать"? Напрямую куда?
  30. Аватар для cheguev
    Спасибо! Уже нашел картинки. http://api.ning.com/files/lfASdeYLW4...n0480016AM.png


    http://api.ning.com/files/lfASdeYLW4...n0423938PM.jpg


    Напрямую это значит без стабилизатора и фильтров. Прочитал, что лучше с ними - т.е. фактически делать копию платы 3dr на которой сидит модуль hm trp, чтобы избежать шумов и выхода из строя.
    Вот и интересно было что брать дополнительно нужно.

    Нужно было сделать соединение 2 navi ctrl mikrokopter для реализации follow me.
  31. Аватар для slon197
    Здравствуйте, Егор. Можно поподробнее с места про гимор.
    Как я понял после прошивки в HEX редакторе мы в бутлоадере удаляем :00000001FF, далее (вместо :00000001FF) вписываем те строки, которые в прошивальщике имеют окончание er, причем которая была последней вписывается первой.
  32. Аватар для {gorbln}
    Приветствую!
    Всё, как написано - смотрим в терминале, какая последняя строчка с "ОК", запоминаем. Допустим, это восьмая строчка с конца. Теперь удаляем последнюю, вырезаем оставшиеся шесть, и вставляем перед той, которая последняя с ОК (которая была восьмой с конца). Всё. Если вдруг ситуация повторяется (опять на какой-то строчке - не ок) - повторяем действия в том же порядке.
  33. Аватар для Карабас
    Привет. Спасибо за инструкцию.
    А есть способ вернуть родную магазинную прошивку?
    Обновлено 27.03.2017 в 20:37 [ARG:5 UNDEFINED]
  34. Аватар для Карабас
    Еще одна мелочь не упомянута. Модемы - 3 вольтовые, а APM - 5 вольтовый. Нужно ставить хотя бы резисторы в линии rx tx, иначе со временем сгорит. На заводских модулях, если судить по картинке - стоят, но не знаю какие. Мне было бы тоже интересно. Наверное 100-300 Ом достаточно