ブログ/こばさんの wakwak 山歩き Twitter

2014-12-30 若松ガイガー 20141230版 リリース!

若松ガイガー 20141230版 公開

| 若松ガイガー 20141230版 公開を含むブックマーク

 本年の残り僅かになりました。

 前回2013年8月にファーム更新して以来、ずっと無更新が続いていたので、「もう終わったのかい?」って方も大勢おられたかと思います。

 2014年の日付を冠したファームをリリースしないまま2014年が終わるのも不本意なので、密かにコチョコチョ弄ってた部分をまとめて今回リリースすることに致します。


20141230版 ファームウェア一式

まっさらな mbed に導入する前提で全てのファイルを同梱していますが、旧バージョンからアップグレードされる方は geiger.bin のみの上書きで大丈夫です。


20130827版との機能比較 (20130827版の仕様はこちらを参照ください)

  • 簡易グラフ表示を2管時には上下分割で8段階グラフ表示
  • NTPによる時刻取得でリトライしていなかった元ライブラリのバグを修正
  • I2C接続の気圧センサー(LPS25H)に対応
  • I2C接続の湿度センサー(AM2321)に対応
  • I2C接続の温度センサー(ADT7410)に対応
  • I2C接続の温度センサー(STTS751)に対応

注意


 以前に本家のオリジナルファーム Ver1.0 を利用されていた方の mbed 内に GEIGER-2.bin というタイムスタンプ 2008/01/01 のファイルが出来ている場合があります。


 2012/1/7頃に実施された自動アップデートによってダウンロードされたプログラムのようですが、mbed の中に拡張子 BIN のファイルが複数あると意図せぬ誤作動が起きやすくなりますので、私のファームを導入する前に GEIGER-2.BIN は予め削除しておいて下さい。


 特にタイムスタンプが変な(新しいのに古い日付の) BIN ファイルが混じると理解困難な不可解な現象(意図したファームが動いてくれない)が起きやすくなりますので、そんなときには、全てのファーム(拡張子が BIN)を削除して再起動させ、その後に目的の BIN を1つ入れて再起動し直して下さい。


 タイムスタンプが変なファームによって mbed の内部で行われているバージョン管理が狂ってしまったとき、BINファイルがひとつもない状態にして起動させることで狂った管理テーブルがクリアされるようです。

 mbed のベースライブラリも最新版を適用してあるので、未知の不具合が改善されているかもしれません。


簡易グラフ表示を2管時には上下分割で8段階グラフ表示


 ※写真を撮って載せる予定


NTPによる時刻取得でリトライしていなかった元ライブラリのバグを修正


 ルーターの種類によってだと思いますが、普通に NTP による時刻取得ができるもの、物凄い確率で失敗するねもの、がありました。

 普段リチウム電池はセットしてあって時計は保持されているし、デフォで24時間おきに再試行されるので、実害なく放置していましたが、奮起して精査しましたところ、利用していた公開ライブラリのバグを見つけてしまい・・・


 そのバグを修正したうえで、デフォルトで3回リトライするような処理にしました。

 これにより、かなり確実に時計取得に成功するかなと思います。

 またリトライ数は env.ini 内で ntpRetry=9 みたいに指定することで変更できるようにしました。


I2C 接続の各種センサーに対応


 秋月で販売されているものを中心に、I2C 接続のセンターへの対応を増やしました。

デバイス名アドレス気圧温度湿度コメント
mpl115a20x60固定 気圧の誤差(変動)が大きい
LPS331AP0x5C、0x5D  
LPS25H0x5C、0x5D 当ファームにて新しく対応
HIH-61300x27固定  
AM23210x5C固定 当ファームにて新しく対応
ADT74100x48、0x49、0x4A、0x4B  当ファームにて新しく対応
STTS751(0)0x38、0x39、0x48、0x49  当ファームにて新しく対応
STTS751(1)0x3A、0x3B、0x4A、0x4B  当ファームにて新しく対応

http://dl.ftrans.etr.jp/?bceeaa32fd1a4abcb56b6cbb918bbbd765c0cc1c.png


 STTS751 には(0)と(1)とかあって指定できるアドレスが違うだけで中身は一緒です。

 今の秋月にあるロットは STTS751(0) のようです。


 LPS331AP と LPS25H とは、ほとんど一緒なのですが、WHO_AM_I の返事が違うということで、これまでも実質的には対応できていたにも関わらず、エラーになって使用できない状態でしたが、今回のファームから晴れて LPS25H も利用できます。

 いつの間にか秋月での LPS331AP の取り扱いも終了してるみたいだし、これから気圧も測定されたい方は LPS25H をどうぞ。


 env.ini の中で

AM2321=i2c

LPS25H=i2c;5D

STTS751=i2c;38

 みたいにして使います。(アドレス固定のものはアドレス指定なし、選択式のものはアドレス必須)


 ADT7410 はデフォルトだと 13ビット で測定値が出力されますが、ちゃんと 16ビット に変更するコマンドを投げてますので、16ビット で出力されたものを利用しています。

okuyamaokuyama 2014/12/31 16:52 お久しぶりです。最新版頂きました。アップデートありがとうございます。

で、I2Cのディスプレー に対応はどうでしょうか。
「I2C接続キャラクタLCDモジュール 16x2行 白色バックライト付」http://akizukidenshi.com/catalog/g/gP-05693/ とか 
「I2C接続小型キャラクタLCDモジュール 8x2行」http://akizukidenshi.com/catalog/g/gP-06669/ とか 
「I2C低電圧キャラクタ液晶モジュール(16x2行)[バックライト付] https://strawberry-linux.com/catalog/items?code=27021 とか、どうでしょう

いつもお願いばっかりで申し訳ありません。

こばさんこばさん 2015/01/03 14:03 あけおめことよろさんです。
I2C液晶ですか、確かに接続ピン(消費ピン)が少なくて済むので、いいっちゃいえばいいですね。

8x2だとレイアウトを大きく弄らないといけなく面倒なので、とりあえずは秋月の16x2なI2C液晶あたり触ってみようと思います。

本年も宜しくお願いいたします。

なまえokuyamaなまえokuyama 2015/01/03 23:14 あけましておめでとうございます。

早速すみません。準備を整えつつ、のんびりお待ちしていますので、ゆっくりやってください。

半田が下手なのか、扱いが悪いのか、配線がとれてしまうことがよくあったので、線が少ないほうがいいなあ〜なんて思ってたものですから。

よろしくお願いいたします。