CC3D Mini OP OSD(minimOSD)でコールサイン表示させるためにやったこと

Hobby



以前の記事で、minimOSDでコールサインだけ表示させiOSD miniでコールサインを
重ねて表示させる方法でDJIのNAZA M V2でコールサイン表示してFPV飛行できるように
やったことがある。

今は、飛行制限地域の関係で機体重量200g未満のクワッドコプターの調整をしていて
CC3D Revolution miniを載せてCC3D Mini OP OSDを使いテレメトリー情報と
コールサインを表示させている。

ioPLAZA【マウスタブレットPC】

っで、今回一番困ったことは
ファームウェアにコールサイン表示機能を追加すると容量が大きくなりCC3D Mini OP OSD
またはminimOSDにコンパイルしたファームウェアが書き込めなくなる事。

普通にArducamOSDのファームウェアを使えれば容量に余裕があるんだけどLibrePilot用に
ソースを書き換えてある最新のCC3D用OSDファームウェアは機体との通信形式が異なる事が
原因なのか容量が大きいんだよね。

たぶん、まだまだOpenPilotのファームウェアでCC3Dを動かしている人が多いと思うので
僕みたいにOSDのファームウェアの容量で苦しんでいる人は少ないと思う。

でも、OpenPilotって開発が止まっているようでLibrePilotはドンドン開発が進んでいる。
なので僕はLibrePilotのファームウェアを使っている。

さぁ!!ここからソースコードをダウンロードしよう!!
また、ハード的な接続方法もLibrePilotのマニュアルサイトにあるのでここを参照!!

最新バージョンのLibrePilotのファームウェア対応

LibrePilotは日々開発が進んでおり機能が追加され使いやすくなっている。
でも、なぜかOSDファームウェアでテレメトリー情報を指示するIDがバージョンがあがる
ごとに変更される。

なので、開発中の最新版を使うとOSDのファームウェアもいじらないと正常にGPS衛星の
補足数やワーニング表示が表示されない。

開発中の最新版を使ってなければ下記IDの数値修正は必要ない。

まず、修正するのがUAVTALK.hのソース。
この中の「// different ID for VERSION_RELEASE_LP15_09」ってコメントされている
行が最新版で変更が必要なソース。

ArduinoScreenSnapz001

このスクリーンショット内でも3カ所ほど存在する。(この画像は修正後の画像)
その行の0xで始まる16進数の部分を書き換える必要がある。

書き換える数値はLibrePilotのパッケージをmakeするとできる
Build/uavobject-synthetics/matlabにあるAuthorsModel.qml OPLogConvert.m
記載してある。
ただ、このファイル名もバージョンごとに変化している。

例えば、上のスクリーンショットの黄色マーカー部のFLIGHTSTATUS_OBJID_007は

CotEditorScreenSnapz002

10進数の2248486116なのでこれを16進数に変換して書き換えている。

って感じで、まずは正常なテレメトリー情報が表示されるようにソース修正をする。

コールサイン表示するための容量確保

コールサインを表示させるソースコードを追加すると容量オーバーで
CC3D Mini OP OSDまたはminimOSDにファームウェアを書き込めないので事前に
自分で使わない機能をコメントアウトしてコンパイルしないようにしておく。

基本、CC3D Mini OP OSDまたはminimOSDでバッテリー電圧やRSSI情報を処理すると
ファームウェア容量が大きくなるので必要ないのであればコメントアウトする。
またはフライトコントローラ側で処理する。

OSD_Config.hのソースで僕はバッテリー電圧はCC3D Mini OP OSDで処理してRSSIは
CC3D Revolution miniで処理するようにコメントアウトしている。

ArduinoScreenSnapz002

あとはOPLINKなども使っていないのでコメントアウトしてしまっている。

コールサイン表示のためのソース追加

これは、ムッチャ簡単。
そもそもCC3D用OSDファームウェアにはコールサイン表示のためのソースコードが
一部残っているが重要な部分は消えている。

なので・・・コピーしてくる。
ArducamOSDのソースコードからCallsignで検索して必要なソースコードをコピーして
貼り付ければ完了。

 

 

コメント

タイトルとURLをコピーしました