2014年11月30日日曜日

ESP8266を使ってみた。

eBayで見つけたシリアル接続のWiFiモジュール、ESP8266がようやく届いたので試しに使ってみた。
なんとこのモジュール、3.7ドルという安さ。本当にこれでWiFiにつながるのかよと思って試しにポチって見てた。
これは新バージョンらしくてGPIOが3ポートとCH_PD(HIGHにするとオン)も出ている。CH_PDは実質VCCと直結でOK。

とりあえずファームウェアの確認から
ボーレートはデフォルトで9600だった。(古いやつだと違う場合も)
ATコマンドっぽい。
AT+GMRでバージョンが確認できるらしい。
しかしこのバージョン、よくわからないのでとりあえず上げてみた。

Wi07cのページのUpdatesから書き換えツールと最新ファームのv.0.9.2.2を持ってきた。
Wi07cはESP8266を搭載したモジュールの名前らしい?

GPIO0をGNDに落として起動するとファームウェアアップデートモードになるっぽい。
CH_PDはVCCに接続しておく。(というかこのモジュールをオフにしないならVCCに直結しておいてもいいのかも)
BINボタンで書き込みたいファームウェアを選択して、COMポート番号入れてDownloadを押して待つだけ。
失敗する場合はGPIO0がGNDに接続されてるか確認。ちなみにGNDに落とした状態で電源を入れないとダメみたい。

そんでもってファームウェアアップデート後にもう一回AT+GMRしてみると
こうなった。


ちなみにこのモジュール、単純にシリアルとTCPの変換モジュールとしても使えるし、ファームウェアを書き換えて単体でGPIOにセンサをつないでWeb鯖を立てたりできるみたい。
この値段にしてはやりおる…

とりあえずArduinoにつないで遊んで見てる。
Arduino Leonardo互換(Atmega32u4)だとSerial1が使えるのでSerialをデバッグ用に使用してSerial1をESP8622の通信用として使用できるので便利。

2014年11月29日土曜日

WT3020にTorを入れてanonabox化してみた。

というわけでOpenWrt化したWT3020ですが特にやることもないので
ハードウェア構成ほぼ同じだし、Torを入れれば自作anonaboxになるはず!
WT3020Hはanonaboxの半額以下で購入できるし。もちろん改造は自己責任ですが…

ということでやってみた。OpenWrt化は先日の記事が参考になるかも?
Torの設定方法はOnion Piを参考にさせてもらった。
接続方法はWANポートはネットに繋がってて、LANポートから設定画面にアクセスしてます。ちなみに先日OpenWrt化してからパスワードしか設定してない状態。

まずはTorのインストール。
System→Softwareを開いて
Update Listsボタンを押す。
そうすると下の方のAvailable packagesが更新されるのでTorを探す。
Installをクリックするとインストールされる。

Torの設定ファイルをいじらないといけないのでSSHで接続して
/etc/tor/torrcを開いて

VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.2.1
DNSPort 9053
DNSListenAddress 192.168.2.1
AvoidDiskWrites 1

この8行を追記


次にTorを使用するためのSSIDを追加。
Network→Wifiを開く。

2014年11月28日金曜日

シリコンパワーのTouch T01 8GBを買ってみた。

小さいUSBメモリが欲しかったので試しにシリコンパワーのTouch T01を買ってみた。
容量は8GBを選択。(SP008GBUF2T01V1K) 500円ちょい。
そこそこ小さい。まぁ小さい中でも低価格のやつを選択したらこれになったわけだが。
アクセスLEDは無し。
USBに刺してみるとこのぐらい出っ張る。この微妙な形状が抜き差ししやすくしてるのかもしれない。チェーンが付属してくるのでチェーンを引っ張って抜いてるけど…

一応USBメモリを買ったらCrystalDiskMarkでベンチするのが恒例になってしまっているのでやってみた。
思ってたより高速でちょっと安心。MP3をぶち込んで車で聴くような用途にも使えそうなのでもう一個ポチっておこうかな…

しっかしこの小ささで64GBまでラインナップしてるとは。

2014年11月27日木曜日

WT3020HをOpenWrt化してみた。

というわけでWT3020Hを購入した真の目的であるOpenWrtを書き込んでみた。
まぁバルク品なので保証もへったくれもないだろうし。

今回はバイナリが提供されていたのでバイナリをそのまま使わせてもらった。
WT3020シリーズはフラッシュの容量が4MBと8MBのがあるのでそれぞれあったファームウェアを使う。
WT3020Aは4MB
WT3020H,WT3020F,WT3020ADは8MBとなっている。
まぁUSBついてるかついてないかの違いかな?上海問屋のDN-11042はUSBポートがないのでWT3020Aの可能性が高そう。

というわけでファームウェアはこちらからダウンロードしてきた。
factory.binとsysupgrade.binがあるけど、公式ファームウェアのWeb設定画面から書き換える場合はfactory.binの方を使用する。OpenWrtのバージョンをアップデートするときはsysupgrade.binを使用するらしい。

今回はWT3020Hで公式ファームウェアからOpenWrtにするので
openwrt-ramips-mt7620n-wt3020-squashfs-8M-factory.bin
を使用した。
手順はとっても簡単。
純正ファームウェアの設定画面 http://192.168.8.1 を開いてファームウェアアップデートのページを開く。
先ほどダウンロードしたbinファイルを選択する。
Upgradeボタンを押す。
しばらくするとこんな画面がでるので待つ。
放置していたらこのページは表示できません。って出て、WiFiの電波も出なくなっていたけど、このファームウェアはデフォルトでWiFiがオフになっているみたいだ。

というわけでLANポートに接続しておく。正常にOpenWRTが入るとDHCPで自動でIPが割り振られる。
IPが割り振られたら http://192.168.1.1 に接続する。rootでパスワードなしでログオンで来た。
とりあえずパスワードを設定してSave&Apply
WiFiを使いたい場合はEnableにする必要がある。

あとはtorいれてanonabox化するなり、VPNルータにするなり、NASにするなり自由だ!

さて何しようかな…

ちなみに8MB FLASHだと4.36MBほど空きがあるようです。
4MB版だと色々やるにはちょっと厳しいかな…

16MB化もしてみたいなぁ
まぁ8MB版はUSBメモリという手もあるけど。

2014年11月26日水曜日

WT3020にtelnetでアクセスしてみた。

というわけでWT3020にtelnetでアクセスすることもができた。
ユーザー名:nexxadmin
Password:y1n2inc.com0755
でログオンできる。どうやらWT1520(DN-84749)と同じみたい。

とりあえずUSBメモリも使えるのでtelnetで接続して内蔵SPI FLASHのバックアップでもしてみようかと。

まずはSPI FLASHの振り分けも見ることができた。

# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00030000 00010000 "Bootloader"
mtd1: 00010000 00010000 "Config"
mtd2: 00010000 00010000 "Factory"
mtd3: 007b0000 00010000 "Kernel"

というわけでmtd0〜mtd3をUSBメモリにでもバックアップしてみる。

フォーマットしてあるUSBメモリを接続すると自動でマウントされる。

cd /media/sda/sda1
でとりあえずUSBメモリのルートに移動

cat /dev/mtd0 > mtd0.img
cat /dev/mtd1 > mtd1.img
cat /dev/mtd2 > mtd2.img
cat /dev/mtd3 > mtd3.img

これでUSBメモリにバックアップすることができた。

一つのファイルでまるごとバックアップしたい場合は

cat /dev/mtd0 /dev/mtd1 /dev/mtd2 /dev/mtd3 > wt3020h_original_firmware.bin

とかにしてみた。
一応容量確認してみてもピッタリ8MB分だったのでこれで行けそう?
書き戻してみるまでこれでいいのかわからないけどとりあえず…

そういやweb設定画面はWAN側からアクセス出来ないんだけど、telnetとFTPはWAN側からアクセスできるんだけど…

なんにせよこれでOpenWRTに書き換える準備は整ったな。

2014年11月25日火曜日

WT3020Hを分解してみた。

軽く動作確認をして問題なかったのでとりあえずバラしてみた。
WT3020にはネジがなく、ただはまってるだけなんだけどこれが硬い…
MediaTekのMT7620Nが乗ってます。SPI FLASHはOpenWRTのWikiだとWinboundのW25Q64BVってなっていたけどこれにはEONのEN25Q64が乗ってました。
8MB(64Mbit)ですねぇ
SPI FLASHの刻印読めなかったのでシリアルコンソールつないでbootlog見ました…

裏面はDRAM64MBが乗ってます。

そこそこのスペックですなぁ。

ちなみにシリアルコンソールは一番上の写真で言うとCPUの右上にあるパッドで、右側がTX、左側がRX。
baudrateは57600らしい。

とりあえずOpenWRT化する前にどうにかSPI FLASHをバックアップしておきたいなぁ


2014年11月24日月曜日

NEXX WT3020H届いた!

というわけでAliexpressで注文していたWT3020Hが届きました。
ビニール袋に入った本体とUSBケーブルがバブルパックに入ってるだけというシンプルさ。
上海問屋のDN-11042とは違って上部にNEXXのロゴが入っています。
フロントの電源ランプは青色LEDっぽい。アクセスLEDも兼ねてる。

リアはWANとLANポートと電源用のマイクロUSB端子。

このモデルはWT3020シリーズの中でもNAS機能が付いているモデル。
なので横にはUSBメモリやHDDのためのUSB端子がついてます。
ちなみにWT3020Fだと3Gモデムもつながるらしい。

まず電源を入れてNexxから始まるSSIDに接続すると設定するように促される。
とりあえずボタンを押すと設定画面に飛ばされる。
説明書がなくてデフォルトパスワードがわからなかったので上海問屋のページを参考にした。
ユーザー名もパスワードもadminらしい。(あとから気がついたけど裏面にも書いてあった)
ちなみに設定前はワイヤレスネットワークにセキュリティーがかかってないので電源を入れたらさっさと設定したほうが良さそう。
ウイザード形式でインターネットの接続方法を選んだら次のページでWiFiのセキュリティーが設定できる。
デフォルトではオフになってるので、"WPA-PSK/WPA2-PSK"を選択してオンにしておくといいかも。Applyを押すと設定が保存されて再起動する。
USBポートにUSBメモリを刺してhttp://192.168.8.1にアクセスして、HDDタブから中身を覗くことができた。iPhoneからもアクセスして動画を再生したりできたので持ち歩き用の無線LANルーターとしてはなかなか便利かもしれない。
300Mbps対応だしね。

ファームウェアバージョンはNexx 3020H V2.43 (Apr. 30, 2014 19:23:19)
中継器としても使えそうな感じ。

まぁもともとOpenWrtに書き換えるのが目的だったんだけど、純正でもなかなか便利そうだ。OpenWrtを入れてanonabox化しても面白そう。
ちなみに純正ファームの設定画面は英語と中国語しか対応してないみたい。

2014年11月22日土曜日

MicroWiiの3.3Vレギュレータを載せ替えてみた

最近特に何もいじらずに安定して飛んでいたMultiWiiのクアッドコプターだけど、やはり高度維持とかGPSホールドが微妙なので高度センサどうにかしないと。
ということで3.3Vのレギュレータを交換してみた。

電解コンデンサをつけることで様子を見ていたが多少は良くなっていたけどもどうも安定しない時がある…
たまに電圧測ると3.6Vの時とかあるし。

表面実装タイプの3.3Vは秋月で入手可能
取り付けるより剥がすほうが大変!今回はNJM2866F33に交換です。
ローノイズらしい。

ちなみに3.3VはMicroWiiではU5。そこそこ広いけど周辺の部品に注意。
剥がしてからも一応テスターを当ててピン配置互換かどうかチェック。
コントロール端子もちゃんと互換性あるようなのでそのまま張り替えて問題なさそう。

換装後。多少大きいかな?そして表面がマットな感じ。
一応電解コンデンサもつけておいた。

さーてこれでGPSフライトが安定するといいが

2014年11月1日土曜日

シェルスクリプトでFlickrに写真をアップロードしてみる

Raspberry Piで自動で写真をとってFlickrにアップロードし続けてみたいなー
ということでとりあえずFlickrに写真をアップロードするところからやってみた。

まぁこういったシェルスクリプトは誰かが作ってるだろうと探してみた。

Githubにflickr-shell-uploaderというのがあったので試しに使ってみた。

wget -O flickr-shell-uploader.sh https://raw.githubusercontent.com/stengland/flickr-shell-uploader/master/flickr-shell-uploader

でダウンロードして(長いけど1行)

chmod a+x flickr-shell-uploader.sh

で実行可能権限を与えて

./flickr-shell-uploader.sh -i test.jpg

でtest.jpgのアップロードを試みた。
しかし
"The Flickr API returned an error while retrieving the frob. Please try again."
というエラーが出てOAuthまで進まない…

このスクリプトの更新日時みると4年前だしAPIの仕様かわったのかな?
何か仕様変更ないかなーと探してみると今年の6月27日からAPIがSSL通信しか受け付けなくなったらしい。

たしかにスクリプトを覗いてみるとAPIにはhttpでアクセスしてるじゃん!
というわけで修正した

119行目
FROBINFO=$(curl -s -F method=flickr.auth.getFrob -F api_key=${APIKEY} -F api_sig=${SIG} "https://flickr.com/services/rest")
147行目
TOKENINFO=$(curl -s -F method=flickr.auth.getToken -F api_key=${APIKEY} -F frob=${FROB} -F api_sig=${SIG} "https://flickr.com/services/rest")
164行目
TOKENINFO=$(curl -s -F method=flickr.auth.checkToken -F api_key=${APIKEY} -F auth_token=${TOKEN} -F api_sig=${SIG} "https://flickr.com/services/rest")
201行目
printf %b " -F api_sig=${SIG} -F photo=@\"${FILE}\" https://api.flickr.com/services/upload/)" >> $TMPFILE

この4行を上の用に書き換えてもう一度写真をアップロードしてみた。
すると初回アップロード時はTOKENを取得するためのURLが表示されるのでそのURLをコピーしてブラウザで開いてFlickrでログオンする。
そしてこのアプリを承認し、シェルスクリプトに戻ってエンターを押す

すると画像がアップロードされてるはず!
とりあえずこれでシェルスクリプトから画像をアップロードできるようになった。