При подключении CC3D по USB, он создает в системе 2 устройства - виртуальный COM порт и HID-устройство. Оба порта могут использоватся для канала телеметрии по которому собственно и идет обмен данными OpenPilot с CC3D. HID-устройство может использоватся как джойстик, значения осей которого будут напрямую считыватся с каналов Throttle/Pith/Yaw/Roll полетного контроллера.
Для настройки полетного контроллера как джойстика, нам понадобится такой минимальный набор: аппа/приемник, полетный контроллер CC3D и аккумулятор 1S (либо шнурок чтобы взять 5В из полетного контроллера).

Подключение приемника зависит от его типа и здесь подробно не рассматривается. В моем случае это приемник FlySky FR-S6B с PWM выходом, подключенный на Receiver Port. Если взять рабочий коптер, то эти параметры уже правильно настроены. Собственно для активации джойстика нужно изменить 2 параметра, перевести телеметрию на USB COM порт, а HID порт задействовать как RCTransmitter. Если все это проделывается на коптере, то для безопасности необходимо отключить арминг, чтобы во время полета в симуляторе случайно не заармить настроящий коптер

Все, теперь достаточно перезагрузить контроллер, запустить симулятор и пользоватся аппой как джойстиком

А теперь бонус... По невыясненной причине, после настройки джойстика, OpenPilot перестал подключатся к контроллеру. Попытки принудительно выбрать правильный COM порт ничего не дали, как далее стало понятно OpenPilot, у меня, работает только через HID порт

Но эта проблема легко решается:
1) отключить CC3D от USB
2) выбрать режим Rescue в OpenPilot
3) подключить CC3D к USB в течении 20 сек
4) после того как OpenPilot распознает плату, нужно воспользоватся SafeBoot для загрузки контроллера с параметрами по умолчанию, при этом OpenPilot без проблем подключается к контроллеру
5) далее нужно вернуть канал телеметрии на HID-порт, а UsbCom задействовать для любой другой функции
6) Сохранить настройки портов и перезагрузить контроллер
