OrangeRX DSM и CPPM. Дружим с Pixfalcon.
Начал я тут возиться с мозгами Pixfalcon (китайская миниатюрная копия Pixhawk).
В силу своей миниатюризации, он позволяет подключить приёмник по одному из трёх интерфейсов:
- CPPM
- S.BUS
- DSM сателлит напрямую
Не всё так гладко, как хотелось бы. Пришлось достать осциллограф.
Из оранжевой продукции у меня было:
- ORX R820X CPPM (8 канальный)
- ORX R920X V2 CPPM (9 канальный)
- сателлит R110XL (с двумя длинными усами)
- оригинальный короткоусый сателлит от Horizon Hobby
Использовать один единственный сателлит, подключенный напрямую к единственному DSM порту мозга не хотелось, маловато будет одного сателлита. Вот было бы два, другой разговор.
Собрал значит я всё в кучу, подключил к мозгам приёмник R820X с сателлитом к соответствующему порту, включаю, и… Не работает. Счастью моему не было предела.
Решил подключить сателлит R110XL напрямую к DSM порту мога. На первый взгляд работает, но через секунд 15 пропадает синхронизация: в Mission Planner некоторые каналы начинают прыгать с минимума на максимум. А ещё через пару минут мозги начинаю очень подозрительно пикать, описания этим пикам я не нашёл. Пробовал биндить как DSM2, DSMX, DSM8. Без результата. В состояние ARM мозг входить отказывался. Покурив мануалы Ardupilot (думал проблема в мозгах), ни к чему не пришёл.
Следующим моим шагом было подключение оригинального сателлита. И о чудо, всё заработало как часы! Но оригинальный сателлит - это не вариант для меня, слишком короткие усы. Но стало понятно, что дело скорее в оранжевой продукции, чем с мозгами.
Начал шерстить тему про CPPM. На одном форуме вычитал, что китайцы иногда путают и под видом CPPM присылают версию S.BUS. Ну, думаю, чем чёрт не шутит, вдруг 9-и канальный с S.BUS и всё заработает?
Подключил R920X. Работает! Мистика и злой промысел… Но как выяснилось потом, он тоже CPPM.
Начитавшись про CPPM (тут), взял в руки осциллограф.
У R820X
- количество каналов 9
- ширина паузы между каналами 138 мкс.
- ширина паузы между пакетами 7 мс.
У R920X V2
- количество каналов 9
- ширина паузы между каналами ровно 300 мкс. Видимо спецом подгоняли во второй версии.
- ширина паузы между пакетами 12 мс.
И тут мы понимаем, что это за “стандарт” CPPM.
Почему мозг не подружился с r820x? Может из-за слишкмо короткой паузы между каналами. А может не смог отличить один пакет от другого. C R920X V2 он дружит. Но кто знает, не упадёт ли синхронизация при определённом положении ручек… По хорошему пауза между пакетами (синхроимпульс) должна быть больше длинны пакета, что в случае 9 каналов должно быть больше (2мс + 0.3мс) * 9 = 20.7мс. То есть хорошая пауза для синхронизации должна быть порядка 24 мс для 9-и канального приёмника, чтобы уж наверняка.
Попробую купить Orange с S.BUS. Там вроде как хотя бы частоты и структура данных описана и зафиксирована ребятами из FUTABA.
Мораль басни
Не рассчитывайте на CPPM. Вероятность его работы с вашим оборудованием 50/50.
Сателлиты Orange тоже не “точная” копия оригинала как показала практика.