すでに紹介したとおり、マルチゲージの心臓部は、ATmega128Lです。 こいつの詳細はこちらをどうぞ。 8AIてのは、クロック8MHzで、なんと工業用(動作範囲-40〜85℃!)です。 このマニュアルの196ページを見ると、シリアルプログラミングのためには、シリアルデータ入力(MOSI)、シリアルデータ出力(MISO)、シリアルクロック(SCK)、リセット(RST)の4本にアクセスする必要があります。 |
|
Christianさんからシリアルプログラミングのための接続をどこにすれば良いのか教えてもらい、こんなふうに配線を接続しました。 |
|
この他に、12VとGNDを接続しなければならないのですが、車載状態でプログラミングするつもりなので、それは省略しました。 ただし、インターフェースとグラウンドレベルを共通にするため、GNDの配線は接続しなければなりません。外に出すケーブルを電話用の4芯モジュラープラグで出そう(これなら、使わないときはメーターASSY裏のカプラのラバーブーツの中に収まります。)と考えたので、メーターから外に引き出すのはこの4本だけにしました。GNDはシャーシアースにクリップなどでつなげることにします。 |
次に、PCのシリアルポートとATmegaの信号を合わせるために、こんなアダプターを作ります。 |
部屋に転がっていた昔のパソコン関係のアダプターで、シリアル(DB9)とモジュラージャックが付いた小箱があったので、これを利用しました。 | |
中身はこんな感じで、元々のパーツを取り去って、変換回路を空中配線してあります。 ちょっと不細工ですが、4Vのツェナーダイオードが手元に無かったので、2Vのを直列にしてあります。 |
次は、ATmega用のプログラミングソフトです。
Christianさんから紹介された、PonyProgというソフトをダウンロードしてインストールしました。
さて、なにを隠そう(隠してない?)ワタシはMac使いなので、できることならマックで作業をしたいところです。Virtual PCという、マイクロソフト純正Mac上PCエミュレータとWindows 2000はインストールしてあるので、PonyProgをそこにインストールして、ごちゃごちゃとUSB-シリアル変換ケーブルのドライバもインストールしました。
接続はこんな感じになります。PonyProg〜PCエミュレータ〜Mac〜USB-シリアルアダプター〜自作変換アダプター〜マルチゲージ、です。はたして動くのか!? |
ついに断念して、ヨメさんの古いWindowsノートを引きずり出してプログラムをインストールしました。
最初から、これをやれば良いのですが、そこはそれマカーの性というか...(w
これが作業風景です。PCを立ち上げておいてアダプターをつなぎ、アース、モジュラープラグの順に接続して、バイクのメインキーを入れます。 データの読み込みボタンを押すと、今度はうまく読み込み始めました! 読み込み終えるまで何分かかかります。 なんか、レース前にインジェクションのマップかなにかを書き換えているみたいですね。 ちょとカッコエー。(^^ |
これで準備OKです。Christianさんにお願いして、最新バージョンのプログラムを送ってもらうことにしました。多機能とはいえ、組み込み用マイコン(ATmega128はロボットの制御なんかに良く使われるそうです)なので、プログラムファイルは172KBです。電子メールで簡単に送れます。
すぐにPonyProg用のマクロとプログラムファイルが送られてきました。これで、ちょいちょいっとできるかと思いきや、結構面倒くさいことがわかりました。
同時に送られてきた指令は次の4段階です:
まず、現在のパラメータを全部紙に書き写しました。
重要なのは、VCCMAINとREFERENCE VOLTAGEです。これは1台ごとに違うので、出荷時に基板上の電圧を計測して設定されています。値(V)は、「3.xx」と「2.yy」のはずで、基板の裏にxxとyyがマジック書きでメモされているそうですが、またバラして覗くのも面倒なので、間違いないように書き写します。(上の基板裏側の写真で読み取れるんですけどね。)
あと、速度計補正機能の計数などもせっかく正確に補正した値ですから書き取ります。
次に、PonyProgを使って、プログラムを書き込みました。
まずは、前回データを吸い出したのと同じ要領でアダプターを接続します。送られてきたマクロとプログラムファイルを同じホルダーに置いておき、マクロをダブルクリックするといきなり転送が始まります。
プログラムを書き込み終えるのに、ベリファイを含めて大体10分くらいかかります。書き込み中はマルチゲージの画面は真っ白になって、書き込みが正常に終了すると、数秒後に燃料警告燈のLEDが短く光るはずです。ところが、最初の書き込み終了後1分くらい待ってもLEDが光りません。おやっと思ってメインキーを入れ直すと、マルチゲージは意識不明のままです。ウィンドウズの青画面(昔のマックでいうと爆弾w)が出た状態です....(;_;)
まあ、こんなこともあるさと自分に言い聞かせて、もう一度最初からやり直したところ、今度はLEDが光りました!
この後の作業がちょっとトリッキーです。(今後、改良されるそうですが。)
まず、メインキーを一端オフにして、もう一度オンにします。その直後に、RESETボタンを素早く5回押します。(3秒以内だそうです。まるでゲーム機の隠しコマンドやな〜。^^;)RESETを押す毎にLEDが短く光るはずです。この5回で、LCDドライバーの選択モードに入ります。
その後、さらにRESETボタンを繰り返し押すと、5種類のLCDドライバー用のモードが循環的に切り替わります。その中から、表示が正常に出るものを選んで、SELECTボタンを長押しすると、設定がセーブされます。
幸い、今回はうまくいきました。
これがうまくいかないと、もう一度電源オフして、SELECTとRESETを同時に押しながら電源を入れ、即座にRESETボタン5回押しを行わなければならないそうです。めんどくさ〜。
最後に、記録してあったパラメータを一通り入力し、インストールのときにやった水温計のセンサー電圧のキャリブレーションをやりなおせば終了です。
ちょくちょくやりたい作業ではないですね....
なんとか、バージョンアップに成功し、バージョン33から41になりました。(あれ?結構数字が進んでいますね。彼も好き者やね〜。)
さっそく、違いを見てみました。
今回のバージョンアップの目玉は、指定した回転数になるとLEDを点滅させる「シフトアップインジケーター」機能です。
この設定メニューでセットした回転数以上になる(Christianさんによると、遅れは200msだそうで...)とLEDが点滅します。
こんなふうになります。
LEDがそれほど明るくないので、「おもちゃ」ですが、遊べるおもちゃが増えるのは楽しいですね〜。
画面表示を反転させる設定も加わりました。
青バックライトなら、夜はこちらのほうがきれいかもしれません。
あと、スタートアップ表示に漢字バージョンが加わりました。
かなり個人的な趣味で入れてもらいましたが、この字読めます?
「騒擾」(そうじょう)って、世の中を騒がせる悪い意味で使われる言葉ですが、Fazerってのに無理矢理意味をつけると、こんなのもありかって思ったんです。まあ、「かぶきもの」に近い意味のつもりです。
YAMAHAが元々どういうつもりでつけた名前かは知りませんが、たぶん「FZR」をもじっただけでしょうかね...
しかし、LCD画面のピクセル数的にかなりきつい字ですね〜。
漢字バージョンでのスタートアップはこんな感じです。 (左の絵をクリックするとムービーが出ます。たぶん。) |
その他、メニュー階層も、よく使うパラメータと初期設定でしか使わないパラメータに分けられて、使いやすくなりました。
画面モードのところからMOREを選んでRESETを次々と押すと、通常はこうなります。
→→→→→→→→→→→→→→→→→→
ここで、画面モード選択状態に戻ってEXITにカーソルが合っているので、もう一度RESETを押すと設定メニューから抜けます。
隠れメニューに入るには、VIEWMODEで0(本来はすべての表示画面が順送りに出るデモモードです)を選んでMOREを選択します。
→→→→→→→→→→→
ここでも、画面モード選択状態に戻ってEXITにカーソルが合っているので、もう一度RESETを押すと設定メニューから抜けます。画面モードは元々保存してあった9番に戻っています。
4番目の画面を見ると、FZS600(FZ6)にも対応したのがわかりますね。
前々からEXUPの開き具合を常時モニターしたいと思っていて電圧計を取り付けてみたことがあるのですが、デジタルの数字ではちらちらして分かりづらいのでやめてしまいました。
ATmegaのA/Dポートを一つ予備用に開けてあって、隠れメニューでモニターできるという情報を聞いたので、早速やってみました。
こんなふうに、基板の空いているところに入力抵抗(10kΩのチップ抵抗)と電圧を下げるためのトリマーを付けて、外部に線を引き出しました。 ついでに、燃料警告灯をシフトアップインジケーターに使うためにもっと明るくしたいと思っていたので、直列に付いていた800Ωのチップ抵抗を200Ωに交換しました。 |
ちょっとテストした結果、エンジンスタートでやや開き、4000rpm以降さらに開き始める様子がうまくモニターできそうです。電圧が最大どれだけ出るか分からないのでトリマーを入れたのですが、結局必要無かったようです。REFERENCE VOLTAGEが約2.5Vなので、それに収まる必要があるのですが、最大でも2.2V程度のようです。
こいつについては、何となく不審な動作(作者様曰く、パルスノイズのせい?)をするので、しばらく様子を見てみます。
LEDはかなり明るくなりました。夜はまぶしくて液晶画面が見づらいほどですが、昼間だとそれでも前を見ていると気づかない程度です。夜と昼とで明るさを変えられたらいいんですけど。
その後、10kΩのトリマーがEXUPサーボの位置決めをわずかですが妨害していることが判明しました。そこで、トリマーを取り外して代わりにローパスフィルターを入れました。写真で小太りの抵抗みたいに見えているのが100mHのインダクターです。 |
マルチゲージでEXUPサーボをしばらくモニターした結果、新発見がありました。
これがEXUPのおよその動きをまとめたものですが・・・
(1)エンジンoff | 全閉 |
(2)アイドリング〜4000rpm | 30°開 |
(3)4000rpm〜9000rpm | 30°〜100°開 |
(4)9000rpm以上 | 100°開 |
(5)エンジンアイドリングかつ車速>0 | 全閉(しばらくすると30°開) |
そうこう言っているうちに、もう新バージョンが送られてきました。(^^;
今回のバージョンアップの目玉は、0-100km/hなどを計測する「アクセラレーションモード」です。
選択した表示モードからRESETを押すと、以前は速度表示と切り替わるだけだったのですが、「選択モード」→「速度表示モード」→「アクセラレーションモード」→再び「選択モード」と循環するようになりました。 |
この画面でSTARTを押してから、ストップウォッチなどで1分を計ってSTOPを押すと校正できます。 |
ここで入力した速度になると計測が始まります。デフォルトで5km/hになっていますが、それ以下はマルチゲージで正確に測れない(0も怪しいです)からです。 |
ここで入力した速度に達すると計測を止めます。 |
なお、以前めんどくさかった液晶ドライバーソフトの選択(RESETを繰り返し5回押しするヤツ)がかなり簡単になり、フラッシュへのプログラムの書き込み終了後、自動的に5種のドライバーを切り替えて繰り返し表示するようになりました。
表示がうまく見えたところでSELECTボタンを押すだけです。
Fazerに何年か乗っている人なら知っていると思いますが、このバイクの電装系には弱点があって、ヘッドライト、ハザード、ラジエターファンなどの消費電力の大きなやつが2つ同時に動くと、メーターまわりの電圧がかなり落ちて、トリップや時計が一瞬消えてしまうことがあります。
メーターユニットで実際に確かめると、9Vくらいまで電圧が落ちるとそうなるようです。ということは、状況によってはメーターユニットに供給されている電圧は9V以下にまで落ちるということです。消費電力に比べてバッテリーが弱いのに加えて、電源の配線やシャーシアースの抵抗が大きいみたいです。
マルチゲージは内部で定電圧源を持っているので12Vラインの電圧低下には強いのですが、困ったのはEXUPサーボ信号のように外部電圧を読むときです。例えば、ヘッドライトを点灯すると、メーターユニットのグラウンドレベルが上がってしまうので、外部電圧が一定であるのにも関わらず低下したように見えるのです。マルチゲージの燃料計も、この影響で若干誤差がでるそうです。
そこで、メーター専用にグラウンドラインを増設することにしました。
元々のワイヤーハーネスに沿って配線を延ばしていきます。 |
最後は、バッテリーのマイナス端子にネジ留めしました。すでにアーシングのラインもあるのでちょっと窮屈です。 写真ではわからないと思いますが、すべてのコネクター端子について配線を圧着した上からハンダを流し込んで、抵抗を下げています。 |
結果は上々でした。
EXUPサーボの電圧表示は、ヘッドライトのオンとオフでほとんど差がなくなりました。
また、これまでは、エンジンが掛かっていてもヘッドライト(高効率タイプに替えてあります)を点けるとトリップと時計が消えていたのですが、それもほとんど起こらなくなりました。
またまたバージョンアップです。
今度の新機能は、ラップタイム計測機能です。いわゆるストップウォッチですね。
これを使うためには、スタート/ストップスイッチが必要です。スイッチは、外気温センサーと共通にしたそうです。センサーの配線をショートするか、ホット側に+12Vを入れると稼働するそうです。
どんなスイッチを使うか考えた末に、パッシングスイッチをそのまま使うことにしました。こんなふうに、メーターASSY内で配線が収まるので、スマートです。 問題は、ラップタイム計測ごとに、本当にパッシングライトを点けてしまうことですが...(^^; 図のダイオードは最初なかったのですが、気温表示にけっこう誤差が出ることがわかって追加しました。 |
こんなふうに、マルチゲージの基板で温度センサーが付いた配線の白線がないほうに47kΩの抵抗(注:その後動作を安定して行うには30kΩのほうが良いことがわかりました)をハンダ付けし、メーター基板のHI-BEAMと書かれた表示灯の上側のパターンにダイオードを介して接続します。 |
さて、ソフトウェアもアップデートします。外はあまりに寒いので、今回メーターを外しついでに室内でアップロード作業をしました。 |
ラップタイマーモードはこんな表示です。一番上の表示が0.1秒単位でカウントアップされています。パッシングボタンを押す毎にそのときの値が下にコピーされ、ここは0に戻ります。3ラップまで記憶できることになります。 このタイマーは、他の表示モードにしていてもカウントアップされ続けるので、ツーリングの区間タイムなどの長時間計測にも使えそうです。メインをオフにするとダメですが。 |
VIEWMODEを0にしてMOREを選ぶと現れる「隠れメニュー」に、こんなメニューが追加されています。デフォルトではENABLEDになっています。 |
v45では、デモのMode 0を除いて、選べる表示モードが20になりました。
Mode 1 |
Mode 2 |
Mode 3 |
Mode 4 |
Mode 4 |
Mode 6 |
Mode 7 |
Mode 8 |
Mode 9 |
Mode 10 |
Mode 11 |
Mode 12 |
Mode 13 |
Mode 14 |
Mode 15 |
Mode 16 |
Mode 17 |
Mode 18 |
Mode 19 |
Mode 20 |
はい、またお次!
v48では、さらに増えて表示モードが23になりました。はぁ〜。
もう次のバージョンアップが控えているので、何が加わったかの簡単なコメントだけにします。
[Mode 15]
Drag Modeその1です。右上にカウントダウンが表示され、0でスタートします。スタートした時のカウント時刻、バイクが動き出してから100km/h、160km/h、200km/hに達するまでのタイムが記録されるようです。公道で遊ばないようにね!
[Mode 16]
Drag Modeその2です。右上にカウントダウンが表示され、0でスタートします。スタートした時のカウント時刻、バイクが動き出してから1/8マイル、1/4マイルまでのタイムとトップスピードが記録されるようです。公道で遊ばないようにね!
[Mode 17]
Lap Time Modeです。これまでのものが改良されたようで、トリガーをかけるたびに、前回のトリガーからのタイムが下に並んで記録されてゆきます。
今のところトリガーがちょっとやっかいで、0.3秒くらい押さないと反応しません。また、2秒以内に2回トリガーがかかるとストップします。それ以上間隔を開けてトリガーがかかると、ラップタイムが記録されます。
[Mode 18]
Stop Watch Modeです。トリガーをかけるたびに、その時点でのタイムが並んで記録されます。
Lap Timeと同じで、今のところ操作に慣れが必要です。
[Mode 19]
Acceleration View Modeです。速度の微分を行い、加速あるいは減速の強さがバーグラフで表示されます。パワーチャートを表示するDyno Modeの前段階としてのテストを兼ねているようです。
[Mode 20]
もうDyno Modeが出来たか!?と思いきや、予告編みたいです。動きません。(笑)
[Mode 22]
AUX入力のバーグラフ表示モードです。「EXUPシグナルを見たいので作ってちょうだい!」とリクエストしていたもので、これで見やすくなりました。
バージョン番号がいっきに102まで飛びました。マルチゲージ内の信号や時間の処理を根本的に改良したそうです。
久々にマニュアルも整備されました。
具体的には、速度や回転数などの外部信号や内部での時間計測などの処理をすべて割り込み処理にしたそうです。残念ながらダイノモードの実装はまだのようですが、40番台で追加された機能はこれでほぼ完成形のようです。
使ってみたところ、最近加わった機能の完成度が確かに高まっています。ドラッグモードは使いやすくなったし、発進後の計測スタートの反応が良くなりました。また、ストップウォッチのボタンに対する反応もかなり改善されました。どちらも、十分実用性(?)が出たように思います。
改めて機能の概要をざっと説明します。赤字は今回変更された箇所です。
Mode 1 |
Mode 2 |
Mode 3 |
Mode 4 |
Mode 4 |
Mode 6 |
Mode 7 |
Mode 8 |
Mode 9 |
Mode 10 |
Mode 11 |
Mode 12 |
Mode 13 |
Mode 14 |
Mode 15 |
Mode 16 |
Mode 17 |
Mode 18 |
Mode 19 |
Mode 20 |
Mode 21 |
Mode 22 |
設定メニューはこうなりました。
v102->v107->v109と、着々と改良が進んでいます。
現時点での概要をざっと説明します。赤字は前回以降に変更された箇所です。
Mode 1 |
Mode 2 |
Mode 3 |
Mode 4 |
Mode 4 |
Mode 6 |
Mode 7 |
Mode 8 |
Mode 9 |
Mode 10 |
Mode 11 |
Mode 12 |
Mode 13 |
Mode 14 |
Mode 15 |
Mode 16 |
Mode 17 |
Mode 18 |
Mode 19 |
Mode 20 |
Mode 21 |
Mode 22 |
Mode 23 |
設定メニューはこうなりました。
※印が付いたものは、変更不可、あるいは開発用途でしか使わないものです。
v112になりました。
赤字は前回以降に変更された箇所です。
ベルさんのリクエストを元に、枠付きバーグラフになったものがほとんどです。
こうして空の枠があったほうが、フルスケールまでどれだけあるかが直感的につかみやすいですね。
Mode 1 |
Mode 2 |
Mode 3 |
Mode 4 |
Mode 4 |
Mode 6 |
Mode 7 |
Mode 8 |
Mode 9 |
Mode 10 |
Mode 11 |
Mode 12 |
Mode 13 |
Mode 14 |
Mode 15 |
Mode 16 |
Mode 17 |
Mode 18 |
Mode 19 |
Mode 20 |
Mode 21 |
Mode 22 |
Mode 23 |
Mode 24 |
2006/7にバージョンアップされていました。
内部的な進化は不明ですが、表示モードの15が変わったのと、25が追加されたようです。
これがモード15です。 左にフューエル、右に水温のバー表示、上に気温、下にギアポジションが表示されていて、走行中は中央に大きく速度が表示されます。 停止時には、この写真のようになり、それまでの最高速度と最高回転数が表示されます。 ライスクでコーススラロームを走っているときとかに重宝しそうですが、結構情報量多いですから常用しても良いかもしれませんね。 |
これがモード25です。 どうやら、フューエルゲージについての内部値(時間平均していないリアルタイムの燃料センサー電圧やそのリッター換算など)を表示しています。一般ユーザーには実用性ないと思いますが、Fazerのフューエルセンサーがかなり飛び飛びの値しか無いのが実感できますね。 |