2010年4月24日土曜日

林檎最中を立てよう

新年および新年度あけましておめでとうございます。MTM以来なのでそろそろ化石になるかとおもったhwhack ですが春のコネタとともに復活です。

最近話題の林檎最中ことiPad にはBTのキーボードが繋がります。最近のimacについてくるキーボードがつながるので文字を打ち込む場合には便利なのですが、こういう体制の場合には画面は立ってて欲しいものです。dock兼スタンドはちょい高いのと縦置きしか想定されていません。そこで、「ティンときた」ということで転がっていたLEGOを使って台を作りました。

作り方の解説は必要ないかとおもいます。パーツは「緑のバケツ」を探ればトップの丸みのあるパーツ以外は2セットそろいます。
使ってみると非常に快適で、自宅、オフィスと2つ作ってしまいました。角があたるのを嫌ってトップには丸みのあるパーツを使いましたが、ふつうのブロックでもよいかもしれませんが、そのときは高さの調整が必要かもしれません。


気を良くしたのでついでに余っているパーツを使ってiphone用のスタンドも作ってみました。これもなかなか快適です。こちらはもうひとつ小さい板を使ったスタンドで、ipadは重心が板の上にこないので倒れてしまいます。もう一こま狭くして角度を立てるとなんとか使えますので持ち歩きにはいいかもしれません。



2009年11月23日月曜日

MTM04 珈琲あります。飲みにきてね。

みなさまご無沙汰しております。
hwhack では春に引き続き、今回もMake Tokyo Meetingに参加...の予定だったのですが、2名いる著者が両方とも出張とバッティングしたため、今回は代理の方に参加をお願いしています。

今回の出し物は都内の某研究所で毎日稼働している Twitter対応型コーヒーメーカー「青山みすず」です。このコーヒーメーカーは珈琲を沸かした量とついだ回数を計測することで、あとどれくらい珈琲が残っているかを計れるようになってます。仕掛けなどの秘密は大岡山の会場で。入れ立て珈琲大サービスでお待ちしています!

PS. 特派員からの報告によれば、MTMではTwitter対応コーヒーメーカー三つ巴の戦いが繰り広げられている模様です。

2009年7月2日木曜日

E-mobile H12HW

E-mobileの電話型端末H12HWを試す機会が会ったのでOpenBSDでのデータ通信を試してみた。H12HWは型番が示すようにHUAWEI社の製品で3.6MbpsのHSDPAに対応している。

結果を共有。

準備

以下のようにsys/dev/usb/usbdevsにProduct ID 0x1008を追加して、usbdevs.hとusbdevs_data.hを再生成しておく。
  • product HUAWEI Mobile 0x1008 HUAWEI Mobile
あとはsys/dev/usb/umsm.cのデバイス情報の構造体であるstruct umsm_type umsm_devs[]に
  • {{ USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_Mobile}, DEV_HUAWEI},
を追加してkernelをリコンパイルする。

結果

普通にumsm(4)のデバイスとして認識されて、pppdでppp接続も確立できた。

いまはopenbsdの次のリリースに向けた作業が進んでいるので、それが落ち着いた頃にopenbsdにはコミットしておく予定。


2009年6月22日月曜日

自作arduinoのための breadboard hack

lilypadのブートローダをつかえば、ブレッドボードでarduinoを組み立てるのは非常に簡単である。これをさらにonechip arduinoにしてしまうとブレッドボード上のパーツも非常に少なくなるので、小さなブレッドボード上にもかなりの回路をのせることが可能になるだろう。

しかしここで問題になるのは、ブレッドボード上においた AVRのチップのピンと、Arduinoのピンの対応がすぐにわからなくなることだ。何度もやって覚えてしまえればいいのだろうが、間違っていてはあまり意味もないことからこんなhackをやってみた。
ブレッドボードの裏にネットでみつけた ATmega と Arduinoのピン配列の対応表をそのまま貼付けておくだけである。対応図はいろんなところにあるので探してほしいが、たとえばこういうのである。

Make: blog本体ではこんなのが出ていた。この場合チップ単体で使うのならいいのだが、1chip arduinoをつくって部品をチップ上に盛ってしまった場合には下の文字が読めない。

これは undocumented 情報としてMake Tokyo Meeting 03 で初お披露目したのだが、なかなかウケたのでエントリーにもしておくことにする。



UNIX系OS用UQ wimaxドライバの作成(1)

MTM3が終わってから、今度は2週間ちょっとの出張がはいってしまってなかなかblogを書く時間をとれなかったが、いつまでも「MTM3参加中」のエントリがトップなのも寂しいので、最近のwimax関係のアップデートを書いてみる。


UQ Wimax解析の状況

GCT720X系のチップセットを使っているインターフェイス(UD01SSとかUD01OK)の解析はほぼ完了した。要素としては大きく分けると、
  • データ通信系(Ethernetフレームを交換する部分)
  • 認証系(EAPパケットを処理して通信に必要な鍵を生成する部分)
  • ネットワークエントリ系(認証系に加えてwimaxネットワークに参加する部分)
  • データストア系(加入者識別子、パスワード、デバイスのX509証明書の処理)
  • 管理系(通信状態把握、パラメータ設定)
くらいに分類される。通信に必要なのは最初のデータ通信系の機能だけだが、そこに至るために残りの部分を攻略しなければならかった。「データストア系」はネットワークに接続するために必須の部分であるのに関わらずまったく仕様が公開されていないため、比較的時間を費やしてしまった。

動作検証コード

解析結果はすべてOpenBSD上で検証コードを作成して、実際の動作を確認した。
未知のデバイスのドライバをカーネルドライバとしていきなり実装するのは開発効率が悪すぎる。今回は、ずいぶん前に「ugenでラピッドプロトタイピング(*BSDでUSB)」で書いたようにugen(4)を利用してユーザーランドで実装してみた。さらに、ethernetインターフェイスへのアクセスにもtuntap仮想インターフェイス(tun(4))を用いてユーザランドドライバとして実現した。
ugen(4)を用いてUSBバスをユーザランドドライバに見せたうえで、データフレームをtun(4)でカーネルに挿入するアプリケーションをかけば、実質上ユーザーランドだけでデバイスドライバを書くことができる。
この「ユーザランド」ドライバの構造(概略)を右図に示す。簡略化のために一個のプロセスで全部入りでつくったが、検証用には十分だろう。
機能としては、Wimaxのネットワークをスキャンして、UQ Wimax決めうちで接続処理を行う。デバイスから必要な情報を引きずり出して、認証機構がEAP-TTLS/MSCHAPv2でWimax-PKMv2を処理してログイン&鍵対の生成を行っている。
うまくつながれば、あとはugen(4)とtun(4)をブリッジしてEthernetインターフェイスとして動いてくれる。普通にDHCPでアドレスをもらって通信できるところまでは動作確認済みだ。
あ、あと、Ethernetブリッジしているのにtapじゃないのは、OpenBSDではtapがtun(4)に統合されているから。tunをLayer2モードで駆動している。

ユーザランドドライバの副次的な効果として「移植性の高さ」がある。たぶん、ほとんど変更しなくてもbsd系のOSでは動くだろうし、ugen(4)をlibusbかなにかに置き換えればOSXやlinuxでも動いちゃうんじゃないかなと予想している。だれかやってみないかな。
ソースは公開する予定だけど、作業の優先順位は要望によって変わります。

今後の予定

ちょっと落ち着いてきたので、解析結果のまとめをつらつらとblogに書きながら、(途中になっている)kernelドライバの作成をやってみようとおもっている。
変なNDAに縛られちゃう前に、知っていることは公知にしておくといいよね?

2009年5月23日土曜日

Make Tokyo Meeting 03 参加中


表題のとおり 今日からはじまったMake Tokyo Meeting 03 に本blogはhwhack.blogspot.com というまんまの名前で参加しています。本日も多数の訪問者ありがとうございました。

blogでは語れないあんなことやこんなこと、中の人の素顔、途中経過がわからなくなったプロジェクトの進捗など知りたいことがあればぜひおこし下さい。
One Chip Arduinoや USB BlinkM などわかりやすい展示品も取り揃えてあります。

体育館はいってすぐ、blog同様のとってもカオスなブースでお待ちしています。

2009年5月14日木曜日

UQ Wi-Fi Gatewayのバッテリ駆動


(念のために書いておきますが本記述は無保証です。バッテリ系はいろいろと危険があるのでよい子・良い大人の方々はまねをしないでくださいね)

UQ WimaxのWi-FI GatewayのWifiアクセスポイント側(UG01OK)のバッテリを入れる場所を眺めていたら、手元にあったクティオのバッテリがぴったりはいるような気がしてきたので試しにいれてみた。なんかぴったりはいります。ふたも閉まります。ふむ。

おそるおそる電源をいれてみると、うごくっぽい。
電源LEDもつきます。ACアダプタをつなげると「battery」LEDも点灯。充電もしてくれるっぽい。

すぐに切ったのでどのくらい使えるかは調べていませんが、3.7V 1900mAHしかないのであんまり持たないと思います。