自作データロガー不具合対策
自作データロガーを使っていますが、これが便利だったり不便だったりと微妙なシロモノです。
ここしばらく何件か不具合が立て続けに発生していて、その対策をしました。
まあ、市販品ではあり得ない自作ならではの問題ばかりですが、こんな苦労をしながら使っていますという話です。
それ相応のものをちゃんとしたお金を払って買っていればこういう無駄(?)な時間は使わずに、その分走る方に時間を使えるですけどねぇ・・・
今回も完全に自分用備忘録的記事なので基本スルーでお願いします。
1.回転数検出ルーチン用タイマの32ビット化と点火パルス検出回路へのLPF追加
点火パルスの間隔を測定することで回転数を検出していますが、その精度を上げるためにタイマを16ビットから32ビットに変更しました。
実際はKSR用のCDIで書いたソースコードを流用しただけです。
KSRのCDIでも最初は16ビットのタイマで回転数を検出していたのですが、高回転側で精度を上げるために32ビット化しました。
V11のデータロガーに適用したのは両方のプログラムで共通化できるところは共通化をしておきたいという単純な理由です。
ところが32ビット化したらアイドリング時の回転数がえらい高く表示されるようになってしまいました。
原因は「ウオタニ+V-UP16」で発生する点火パルスの波形に含まれるノイズまで正しくカウントするようになってしまったから。
もうちょっと詳しく説明すると、PICマイコンに入力した点火パルスの周期を測ることで回転数を計算しています。
ここでいう点火パルスはプラグに流れる電流を直接使っているわけではなく、点火コイルの1次側に流れる電流をCT(カレントトランス)=コイルで検出してパルスを作っています。
PICマイコンへの入力信号をいつも使っているDSO QUADというポータブルのオシロスコープで確認すると見事にノイズが乗っています。
このオシロスコープは以前はビットマップで保存した波形をUSB経由でPCに読み込めたのですが、最近なぜがPCに接続してもオシロスコープが認識されません。
このブログで波形を乗せられないのが残念ですが、気持ちいいくらいにノイズが乗っていました。
点火パルスの検出回路にLPFを追加し、ノイズを消せていることを確認、対策としました。

ちなみにデータロガーの基板です。

B面はこんな恥ずかしい姿です。

ここからさらに今回のLPFを追加してます。
次から次にいろいろな問題の対策で部品を追加していてそろそろ限界です。
2.「ウオタニ + V-UP16」でLCDがフリーズする問題の対策
最近になってV-UP16を復活させたのですが、走行中にLCDがフリーズしてしまう現象が発生するようになってしまいました。
「ノーマルコイル+V-UP16」でも「ウオタニ単独使用」でもこんな現象は出ていなかったのですが、「ウオタニ + V-UP16」では4000rpmを超えると一発でLCDが固まります。
回転数やスロットル開度などの表示を100msec周期で更新しているのですが、この更新がされなくなります。
点火のエネルギーが強力になって、ノイズもパワーアップしたことが原因ですね。
ちなみに自作データロガーの全体の構成はこんな感じになっています。
蓋を開けた状態の本体の上にあるのがLCDですが、見てのとおり本体からコネクタで電源と信号線をつないで制御しています。

このLCDはI2C(「あいすくえあしー」とか「あいつーしー」などと呼ばれています)という通信方式で制御しているのですが、もともと線材で引っ張り回すような使い方はあまり想定されていなく、ノイズに弱い回路構成なんですよ。
という事で、コネクタをシールド線化することにしました。
こんな感じで線材をアルミホイルで巻いてGNDに落としてシールドします。

ちなみにLCDの右下にある水色の部品はコンデンサで、これもノイズ対策で追加したものです。
この辺りはLCDのメーカの説明書には当然の如く何も書かれていないので、実際に回路設計をやった経験が無いと対策は難しい気がします。

最後にアルミ箔が外れたり剥がれたりしないようにテープで巻いてからチューブに通して完成です。
車体に取り付けて確認すると一発OKでした。
ちゃんと波形まで見たわけではないですが、現象から想像するとこんなものかな、と思います。
3.GPSの信号を受信しても日付が正しく取得できない問題について
2019年に入ってから日付が正しく表示されなくなってしまっていました。
僕のロガーではGPSアンテナで受信した日付、時刻の情報をPICマイコンのRTCCモジュール(時計機能です)に設定しています。
時計機能を動かすのはログファイルを保存する際のタイムスタンプに正しく現在日時を反映するためなのですが、これがおかしな表示になってしまっていました。
正確には時刻は正しいのですが、日付がおかしい。たとえば2019年の6月なのに2099年10月とかの日付で保存されています。
実際のところはログファイルのタイムスタンプの日付がおかしいだけで実害はないので、しばらく放置していたのですが、先日ようやく現象の確認をしました。
データロガーはバイクに積んで実際に使っているものと、机上デバック用にもう一組製作してあります。
まずはデバック用で確認するときちんと2019年と表示されます。
仕方がないので、バイクに積んでいる本番機を取り外して確認すると、やっぱり日付がおかしい。

確認したのは6月3日だったのですが、2099年10月18日となっています。
では本番機とデバック用では何が違うか?というとGPSアンテナが違うのです。
どちらのGPSアンテナも秋葉原の秋月電子で購入したものですが、バイクに積んでいるものは「GT-723F」という今は取り扱いが無くなっている古い部品で、デバック用のアンテナは「AE-GYSFDMAXB」という比較的新しい部品を使っています。
GPSアンテナからの出力されている日付情報をLCDの2行目に表示させるようにプログラムを変更して確認するとこんなことに↓なっていました。

,181099,がNMEAフォーマットのRMCセンテンスに含まれる日付情報でDDMMYYの書式で出力されたデータです。
つまり、西暦の下2桁が99年で10月18日となります。
結局、年の情報についてはプログラムで上2桁に20をつなげているので2099年と表示されていることが分かりました。
2018年までは正しく表示されていたのですが、19年からおかしくなっています。
これはもうGPSアンテナの中のLSIのデータ処理が2018年までしか対応していないことが原因と思われます。
実際、より新しいGPSアンテナでは問題ないので。
こうなってしまうとデータロガーのプログラム側での対策はちょっと現実的ではないので、あきらめました。
新しいGPSアンテナを使えるようにすればいいのですが、こちらはまた別の問題があって、実際に使うにはプログラムの修正が必要なのです。
まあ、実際最初に書いた通り、タイムスタンプだけなので、当面はこのままいくことにしました。
こんな感じで微妙な問題の対策にそれなりの手間と時間を費やしています。
それもこれも個人が自宅でできる範囲でやっているから。
やっぱり測定器とか簡易的なものだと限界があるし、特にバイクの場合はエンジンを掛けて確認するというのがやりにくいことが大きな障害になっていますね。
防音のエンジン室みたいな設備があれば全然違うのでしょうが、そんなものは望むべくもありません。
一方でちゃんとした製品は最初からまともに設計とか評価がされているので、ちょっとくらい条件が変わっても正しく動くわけです。
今回の例では2つ目のLCDの表示の更新が止まる問題についても仕事であればきちんと波形で確認するとか、更に厳しい条件(例えばコイルの電源を18Vに上げるとか)でも現象が発生しないか?とか色々検証したうえで対策内容を決めるのですが…
この辺りも個人製作の限界ポイントな気がします。
売り物はコストは相応ですが、使う側としては余計な手間はかからないので結果的には自作なんかよりも効率が良かったりします。
そもそもデータロガーを作ることが目的ではなく、バイクをセッティングすることが目的ですから。
やっぱりヨシムラのBAZAZZとかの方が良い気がします。
ま、できる範囲で対策はしましたという話でした。
とりあえずこんな感じということで。

にほんブログ村
こんなオシロスコープを使っています。

ここしばらく何件か不具合が立て続けに発生していて、その対策をしました。
まあ、市販品ではあり得ない自作ならではの問題ばかりですが、こんな苦労をしながら使っていますという話です。
それ相応のものをちゃんとしたお金を払って買っていればこういう無駄(?)な時間は使わずに、その分走る方に時間を使えるですけどねぇ・・・
今回も完全に自分用備忘録的記事なので基本スルーでお願いします。
1.回転数検出ルーチン用タイマの32ビット化と点火パルス検出回路へのLPF追加
点火パルスの間隔を測定することで回転数を検出していますが、その精度を上げるためにタイマを16ビットから32ビットに変更しました。
実際はKSR用のCDIで書いたソースコードを流用しただけです。
KSRのCDIでも最初は16ビットのタイマで回転数を検出していたのですが、高回転側で精度を上げるために32ビット化しました。
V11のデータロガーに適用したのは両方のプログラムで共通化できるところは共通化をしておきたいという単純な理由です。
ところが32ビット化したらアイドリング時の回転数がえらい高く表示されるようになってしまいました。
原因は「ウオタニ+V-UP16」で発生する点火パルスの波形に含まれるノイズまで正しくカウントするようになってしまったから。
もうちょっと詳しく説明すると、PICマイコンに入力した点火パルスの周期を測ることで回転数を計算しています。
ここでいう点火パルスはプラグに流れる電流を直接使っているわけではなく、点火コイルの1次側に流れる電流をCT(カレントトランス)=コイルで検出してパルスを作っています。
PICマイコンへの入力信号をいつも使っているDSO QUADというポータブルのオシロスコープで確認すると見事にノイズが乗っています。
このオシロスコープは以前はビットマップで保存した波形をUSB経由でPCに読み込めたのですが、最近なぜがPCに接続してもオシロスコープが認識されません。
このブログで波形を乗せられないのが残念ですが、気持ちいいくらいにノイズが乗っていました。
点火パルスの検出回路にLPFを追加し、ノイズを消せていることを確認、対策としました。

ちなみにデータロガーの基板です。

B面はこんな恥ずかしい姿です。

ここからさらに今回のLPFを追加してます。
次から次にいろいろな問題の対策で部品を追加していてそろそろ限界です。
2.「ウオタニ + V-UP16」でLCDがフリーズする問題の対策
最近になってV-UP16を復活させたのですが、走行中にLCDがフリーズしてしまう現象が発生するようになってしまいました。
「ノーマルコイル+V-UP16」でも「ウオタニ単独使用」でもこんな現象は出ていなかったのですが、「ウオタニ + V-UP16」では4000rpmを超えると一発でLCDが固まります。
回転数やスロットル開度などの表示を100msec周期で更新しているのですが、この更新がされなくなります。
点火のエネルギーが強力になって、ノイズもパワーアップしたことが原因ですね。
ちなみに自作データロガーの全体の構成はこんな感じになっています。
蓋を開けた状態の本体の上にあるのがLCDですが、見てのとおり本体からコネクタで電源と信号線をつないで制御しています。

このLCDはI2C(「あいすくえあしー」とか「あいつーしー」などと呼ばれています)という通信方式で制御しているのですが、もともと線材で引っ張り回すような使い方はあまり想定されていなく、ノイズに弱い回路構成なんですよ。
という事で、コネクタをシールド線化することにしました。
こんな感じで線材をアルミホイルで巻いてGNDに落としてシールドします。

ちなみにLCDの右下にある水色の部品はコンデンサで、これもノイズ対策で追加したものです。
この辺りはLCDのメーカの説明書には当然の如く何も書かれていないので、実際に回路設計をやった経験が無いと対策は難しい気がします。

最後にアルミ箔が外れたり剥がれたりしないようにテープで巻いてからチューブに通して完成です。
車体に取り付けて確認すると一発OKでした。
ちゃんと波形まで見たわけではないですが、現象から想像するとこんなものかな、と思います。
3.GPSの信号を受信しても日付が正しく取得できない問題について
2019年に入ってから日付が正しく表示されなくなってしまっていました。
僕のロガーではGPSアンテナで受信した日付、時刻の情報をPICマイコンのRTCCモジュール(時計機能です)に設定しています。
時計機能を動かすのはログファイルを保存する際のタイムスタンプに正しく現在日時を反映するためなのですが、これがおかしな表示になってしまっていました。
正確には時刻は正しいのですが、日付がおかしい。たとえば2019年の6月なのに2099年10月とかの日付で保存されています。
実際のところはログファイルのタイムスタンプの日付がおかしいだけで実害はないので、しばらく放置していたのですが、先日ようやく現象の確認をしました。
データロガーはバイクに積んで実際に使っているものと、机上デバック用にもう一組製作してあります。
まずはデバック用で確認するときちんと2019年と表示されます。
仕方がないので、バイクに積んでいる本番機を取り外して確認すると、やっぱり日付がおかしい。

確認したのは6月3日だったのですが、2099年10月18日となっています。
では本番機とデバック用では何が違うか?というとGPSアンテナが違うのです。
どちらのGPSアンテナも秋葉原の秋月電子で購入したものですが、バイクに積んでいるものは「GT-723F」という今は取り扱いが無くなっている古い部品で、デバック用のアンテナは「AE-GYSFDMAXB」という比較的新しい部品を使っています。
GPSアンテナからの出力されている日付情報をLCDの2行目に表示させるようにプログラムを変更して確認するとこんなことに↓なっていました。

,181099,がNMEAフォーマットのRMCセンテンスに含まれる日付情報でDDMMYYの書式で出力されたデータです。
つまり、西暦の下2桁が99年で10月18日となります。
結局、年の情報についてはプログラムで上2桁に20をつなげているので2099年と表示されていることが分かりました。
2018年までは正しく表示されていたのですが、19年からおかしくなっています。
これはもうGPSアンテナの中のLSIのデータ処理が2018年までしか対応していないことが原因と思われます。
実際、より新しいGPSアンテナでは問題ないので。
こうなってしまうとデータロガーのプログラム側での対策はちょっと現実的ではないので、あきらめました。
新しいGPSアンテナを使えるようにすればいいのですが、こちらはまた別の問題があって、実際に使うにはプログラムの修正が必要なのです。
まあ、実際最初に書いた通り、タイムスタンプだけなので、当面はこのままいくことにしました。
こんな感じで微妙な問題の対策にそれなりの手間と時間を費やしています。
それもこれも個人が自宅でできる範囲でやっているから。
やっぱり測定器とか簡易的なものだと限界があるし、特にバイクの場合はエンジンを掛けて確認するというのがやりにくいことが大きな障害になっていますね。
防音のエンジン室みたいな設備があれば全然違うのでしょうが、そんなものは望むべくもありません。
一方でちゃんとした製品は最初からまともに設計とか評価がされているので、ちょっとくらい条件が変わっても正しく動くわけです。
今回の例では2つ目のLCDの表示の更新が止まる問題についても仕事であればきちんと波形で確認するとか、更に厳しい条件(例えばコイルの電源を18Vに上げるとか)でも現象が発生しないか?とか色々検証したうえで対策内容を決めるのですが…
この辺りも個人製作の限界ポイントな気がします。
売り物はコストは相応ですが、使う側としては余計な手間はかからないので結果的には自作なんかよりも効率が良かったりします。
そもそもデータロガーを作ることが目的ではなく、バイクをセッティングすることが目的ですから。
やっぱりヨシムラのBAZAZZとかの方が良い気がします。
ま、できる範囲で対策はしましたという話でした。
とりあえずこんな感じということで。

にほんブログ村
こんなオシロスコープを使っています。
![]() |

- 関連記事
-
-
V11 パワーチェックで過去最高を更新!
-
V11 サブコンの設定を見直した件
-
自作データロガー不具合対策
-
V11 TPS調整の実験の続き
-
V11 TPS調整の実験
-
コメント