Jumper T16やJP4IN1の周波数調整値をファームウェアに書き込もう。



マルチプロトコル送信器の周波数調整値をファームウェアに書き込もう

先日の記事のようにJumper T16Pro V2へFrsky Taranis X-lite Proに搭載したJUMPER JP4IN1から
バインド情報を複製した際に周波数バラツキの影響でバインドが不安定だった。
周波数調整で改善できるんだけど設定ページに調整値が表示されていると何となく気分が良くない。
それと、受信器ごとに調整をいないといけない気分になるのでモデルが増える。

CloneTX機能でFrsky Taranis X-lite ProからJumper T16Pro V2にバインド情報を複製しよう。

2020.06.27

なので、僕は周波数調整値を手持ちの受信器すべてに対応出来るいい感じの値にしている。
そして周波数調整値はファームウェアに書き込んでいるので周波数調整値の表示はゼロのままにしている。

この方法は好みの問題なのでお薦めするわけではないけど
自分自身の手順メモとして記録しておこうと思い今回記事っぽく書くことにした。
ってことで以降は手順を書こう。

Arduinoのダウンロードしてインストール

Arduino.ccから最新版のArduino IDEをダウンロードする。そして、インストール。

うちはMacとWindows両方で使っているけど
USBシリアルドライバーはフライトコントローラ接続で既にインストールしている。
なので、ドライバーインストールは追加では行っていない。
もし、未インストールならインストールが必要。

マルチプロトコル送信器専用の通信設定をする。

Arduino IDEを起動してPrefernceを開く。
追加のボードマネージャーのURL欄に
https://raw.githubusercontent.com/pascallanger/DIY-Multiprotocol-TX-Module-Boards/master/package_multi_4in1_board_index.json
って書き込む。

そして、ツール→ボード→ボードマネージャでマルチプロトコル送信器を選択する。

これで、直接JUMPER JP4IN1にファームウェアを書き込む事も出来る。

コンパイルしたファームウェアの保存場所を指定する。

OSや環境によってコンパイルしたファームウェアの保存場所がイマイチ不明確状態。
なので、自分が保存したいディレクトリーを指定しよう。

さきほど開いたPreferenceの中に設定ファイルの場所が明記されている。
OSによって異なる。(この記事ではMacOS)

Arduino IDEを一旦終了しpreferences.txtをエディターで開く。(テキストエディターならなんでもOK)
build.path=保存したいディレクトリーを指定。
WindowsだとC¥ユーザー¥heecheee¥デスクトップ¥tempなど
MacOSだとVolumes/Machintosh_HD/heecheee/Documents/Arduino/tempなどですね。

これでコンパイルしたファームウェアのバイナリが希望のディレクトリーに保存される。

マルチプロトコル送信器のファームウェアのソースファイルをダウンロード

マルチプロトコル送信器のファームウェアのソースファイルをここからダウンロードする。
下の方にスクロールするとSource Code(ZIP)があるのでダウンロードして解凍。

僕は、Arduinoインストール時に自動で作られるドキュメントフォルダー内のArduinoに解凍している。

周波数調整値をファームウェアに書き込んでコンパイル。

周波数調整値の指定

Arduino IDEを起動する。
そして先ほどダウンロードしたマルチプロトコル送信器用ファームウェアのソースファイル
DIY-Multiprotocol-TX-Module-1.3.1.9/Multiprotocol/Multiprotocol.inoを開く。

そして、Arduino IDEの右上の▼をクリックしてソースファイル一覧のプルダウンから
_Config.hを選択する。

周波数調整値を書き込む。
僕の場合はFrskyのDシリーズを使用しているのでこんな感じ。
先頭の//を消すとコメントアウトからコンパイル対象になる。
そして初期値ゼロを自分の周波数調整値に書き換えて保存する。

//#define FORCE_FRSKYD_TUNING 0

#define FORCE_FRSKYD_TUNING -29
に書き換えた。

これで、周波数設定値の指定は完了。

内蔵モジュールか外付けモジュールかで変更が必要な事

それと重要な事。
ここの部分が内蔵モジュールかJUMPER JP4IN1のような外付けモジュールかで変更が必要。

デフォルトでは
#define INVERT_TELEMETRY_TX
となっている。

内蔵モジュールではテレメトリー信号をインバートしないので
//#define INVERT_TELEMETRY_TX
に書き換える。

外付けモジュールではテレメトリー信号をインバートするので
#define INVERT_TELEMETRY_TX
のままとする。

そして保存する。

マルチプロトコル受信器にファームウェアを書き込もう。

修正したソースファイルをコンパイルしてマルチプロトコル送信器に書き込む。

外付けモジュールのマルチプロトコル送信器

JUMPER JP4IN1のようなマルチプロトコル送信器はSDカード経由でもUSB接続でも書き込める。
ここでは、いちいちSDカードにファームウェアをコピーせずUSB接続で書き込む。

まず、マルチプロトコル送信器とパソコンをUSBケーブルで接続する。
今時珍しいミニUSBコネクタ。

そして、Arduino IDEで接続先を指示確認。

マイコンボードに書き込むをクリックしコンパイルと書込が終わるのを待つ。

これで完了。

内蔵タイプのマルチプロトコル送信器の場合

内蔵タイプのマルチプロトコル送信器、つまりJumper T16Pro V2などですね。
この場合は素直にコンパイルしたファームウェアをSDカードにコピーしてOpenTXの機能で書き換える。
もちろん、外付けモジュールタイプのマルチプロトコル送信器でも同じ方法書き込めます。

検証をクリックするとコンパイルされファームウェアのバイナリが保存される。

っで、最初に設定したコンパイルしたファイルを保存するディレクトリーに移動すると
Multi-sim-1.3.1.9.binってファイルができている。
(末尾の数字はバージョンなのでダウンロードしたソースファイルのバージョンで変化する。)

文字数制限があるみたいなので
8文字以下(拡張子を除く)ぐらいのファイル名にした方がよいかもしれないけど
Jumper T16Pro V2ではこのままのファイル名で問題無かった。

っで、先ほどのファイルを送信器のSDカードのFirmwareディレクトリーにコピー。
そして内蔵タイプのマルチプロトコル送信器に書き込みます。

システムメニューからSDカードを選択し

ファームウエアを選択。

内蔵モジュールの場合はinternal Multiを選択しファームウェアを更新する。
外付けモジュールタイプの場合はExternal Multiを選択する。

って感じで完了。