KeyASICベースのWiFi SDカードについて

KeyASIC社の開発キットをベースに商品化されたWiFi SDカードも、各社からいくつか製品化されてきたので、整理してみる。

以下に掲載する製品群は、Firmwareアップデータの構成および内容がほぼ同一であることから、KeyASIC社開発キットベースであろうと推測されるものです。
あくまで「推測」で、メーカ公式見解ではありません。

また、各製品とも、WiFi接続用のアプリに互換性はありません。
各アプリとも、WiFi SDカード上で動作しているWebサーバにアクセスして、写真を取り出す構造になっていますが、API/CGIに互換性がないため、全然動きません。
(逆に言うと、Webサーバに細工をすると、他社アプリが動く)

・KeyASIC WiFi SD Card Reference Platform
KeyASIC社の開発キット。
これをベースに各社がバリエーションを作っていると想定される。

・Trek2000 Flucard Pro
製品
 4GB Flucard Pro GEN2, Flucard Pro GEN3
 8GB Flucard, Flucard Pro GEN2, Flucard Pro GEN3
 16GB Flucard Pro GEN3
firmware version: v3.70_100R (2012/12/13)

Trek2000 Internatinal社が、一番最初にKeyASIC製品を一般向けに販売しはじめたところ。
現状は3世代目の製品が販売されているが、2世代目と3世代目は製品名で区別されていないので注意。
互換性や書き込み速度の改善を図るため3世代目(GEN3)がリリースされたとのこと。
つまりは2世代目は、動かない環境が多め、とのこと。
動かない場合はメーカサポートに問い合わせると、ある程度は対応してくれるらしい。

管理画面を表示するWebサーバは、busybox内に埋め込んでしまっている・・・・・・・・権利的にどうなん?という点が散見されたりもする


・東芝 Flash Air
製品
 SD-WB008G(初代,Flash Air Class6, 8GB)
 SD-WC016G(2代目,Flash Air W-02 Class10, 16GB)

初代firmware version: v1.00.04 / F24A6W3AW1.00.04 (2013/07/04)
2代目firmware version: 更新は未リリース

Flash Airについては、Key ASICベースなのかははっきりしない点がある。
ただ、おそらくはかなり近いと予想される動作が見受けられる。
2代目になってようやくやる気が出てきたのか、「開発者向け情報サイト」を作ったり、Developer向けイベント開催とかしている模様。


・PQI Air Card
firmware version: v1.47 (2013/02/04)

microSDHCカードスロットがついており、そこにカードを入れることで、SDカードとして使うことができるようになる、というもの。
Trek2000 Flucard Proをベースに作成されたようで、Firmware内のファイルにTREKをうかがわせる残骸が残っている。
その割には、Web CGI/APIに互換性がないので、アプリ流用はできない。


・Transend Wi-Fi SDカード
製品
 TS32GWSDHC10(Class10, 32GB)
 TS16GWSDHC10(Class10, 16GB)
firmware version: v1.7 (2013/05/15)

結構後発組。
海外でもそれなりに発売されているようで、改造例がいくつか見られる。

Hax it! Random hacks「Hacking Transcend WiFi SD Cards」
fernjager $cat /dev/urandom「Modifying Transcend WiFi SD Card Firmware」

WebサーバはBoaを使用。


・幻のTrek2000版 Flash Air Pro
firmware version: v1.15 (2013/04/16)

一時期Flash Air Proという製品ページが出来ていた。
現在でも、Flash Air Pro用アプリページというのが存在している。
Flucard Proとも、東芝版Flash Airともアプリ互換性がないようなのが謎。

Firmware探索をすると、基本的にはFlucard Proベースで構築されているが、/etc/init.d/rcS内に「get_toshiba -p “APPMODE”」という記述が追加されていたりするのだが、前述の通り、アプリが別になっていて、非常に謎。
(参考:Flash Air ProがFlucard ProのTREK2000から発売?)

WiFi経由で照明やコンセントをコントロールするBelkin WeMoシリーズ

Belkin WeMo Light Switchというスマホから電源をコントロールする機器があるらしい。
そして、それは$49.99と安いらしい、ということで調査してみた。

「メーカ公式ページ」
WeMoシリーズとして用意されている製品は4種類
しかし、「WeMo Baby」は、周囲の状況を音で聞くことができるだけのデバイスであり、電源コントロールには使えないようだ。

このため、今回の用途としてはWeMo Light Switch、WiMo Switch、WiMo Motionの3種類が有効であるようだ。

・照明スイッチを取り替えて使う「WeMo Light Switch」
372
372 (3)

・コンセントの上に重ねて使う「WeMo Switch」
372 (1)
372 (2)

・WeMo Switch/Light Switchと組み合わせて使う人感センサーユニット「WeMo Motion」
372 (4)

その他に、WeMo MotionとWeMo Switchをセットにした「WeMo Switch + Motion」
372 (5)

日本でも取り扱ってるところあるかな?と見てみたのですが、配線工事が必要になるWeMo Light Switchはないですが、WeMo SwitchとWeMo Motionは発見。

日本でも公式に販売してくれないですかねぇ・・・・

注意:中国販売バージョンはコンセント形状が違うので注意のこと
WeMo-Switch-intelligent-remote-power-switch-control-network-auto-timed-smartphones

単独でカセットテープからmp3にコンバートしてくれるAUTCT2BKを買った

Just MyShopを見ていたら「サンコーMP3に変換してmicroSDに記録する蔵」なんてのを見つけた。
photo_package

以前、TAPE To Digital Converterという同種の製品を買ってカセットテープのコンバートをやってみたのだが、いかんせん、パソコンで録音処理をする都合上、いろいろ微妙な点があった。

その点、この製品は単独で動作する、ということなので、面白そうと感じ発注してみた。

販売場所はいろいろありますが、JUST MYSHOPの会員価格が送料込みで5,798円だったので、JUST MYSHOPで購入しました。
発注から2日で到着。

IMG_0393

中身はこんな感じです。
IMG_0394

まず、残念な点。
IMG_0395
電源がminiUSBとかではなく、丸形。

なお、説明書には「パソコンからUSB経由で電源とるとノイズ入ることがあります」という注意書きがあったりします。

そんなわけで、手元にあった単3電池を使って録音開始。

「Play」ボタンでカセットテープの再生を開始したあと、
側面の小さなボタン群から「録音開始」ボタンを押して、録音を開始し、テープが止まったあと、側面の「録音停止」ボタンを押して停止します。

側面ボタンがちょっとわかりにくいのですが
IMG_0398s
赤枠の部分が左から「録音開始、一時停止、録音停止・・・・」となっています。
緑枠は曲区切りの無音時間設定で左から「1秒、2秒・・・・」となっています。
オートリバース機能はついており、無限リバースもできます。

とりあえず54分のテープの取り込みを書けて、テープが止まったところで、microSDを取り出しパソコンへ・・・

「\RECORD\LINE_LN」というフォルダの中に「FILE_001.mp3」「FILE_002.mp3」という名前でファイルができていました。
ファイル作成日付はすべて「2009/01/01 9:00」。
ビットレートは192kbpsでした。

で・・・・腹が立つことに、動作がうまくいっておらず6分弱しか撮られていませんでした。
なぜに???

そんなわけで、しばらく使ってみての問題点

・問題点その1
録音関連ボタンと、カセットの動作ボタンは連動していません。
このため、カセットが止まったからといっても録音は継続されています。

・問題点その2
動作状況がはっきり分からない。
「録音ボタンの下にあるランプが点滅していれば録音中」ってことだったのですが、実際には6分しか録音できていませんでした。
これはいったい、どういうことなのか・・・

・問題点その3
液晶表示とかはないので、microSDにあとどれくらい録音できるのかを知る手段がありません。
時々、パソコンに取り出して確認する必要があるので注意が必要です。

また、バッテリーの残量表示的なものもないので、乾電池駆動の際、あとどれくらい使えるのかは、そこそこばくちな感じです。

・問題点その4
作りが悪い
側面ボタンを何度おしても、なかなか反応しないことがあります。
製品仕様なのか、個体差なのか・・・

とりあえず、もう何本かコンバートしてみたら、記事を更新するかも・・・

いまさらNanonoteについてと、ついでにGCW-ZERO、あとKDEタブレット

・Slaanesh Dev
DOSBoxというMS-DOSのソフトウェアを動かすためのソフトをBen Nanonoteに移植
DOSBox 0.74 v2.0 A320 Open Dingux and Ben Nanonote OpenWRT
まぁ、ここでいうMS-DOSのソフトとは、ゲームのことです。
「A320」というのは、「Dingoo A320」というLinuxのゲーム機です。
ハードウェア的にはかなり似てる点があります。

自動生成型ダンジョンの元祖Rogue(ローグ)と、その発展系Nethackの移植版
Nethack 3.4.3 and Rogue for Ben Nanonote
Nethackをさらに進化させてったものが、風来のシレンとかポケモンダンジョンになります。

・Jirka’s notesの「カテゴリー Nanonote」
いまでも使ってるようで、いろいろ日記的なものを書いていますね。

・GCW-ZERO
Jz4770搭載のLinux系ゲーム機。
Dingoo A320の後継機みたいなもの。
最初はほそぼそとやっていて、2012年10月頃に初期出荷をしたあと、「kickstarterで募集」したら大規模になっちゃっていろいろ大変だったみたいです。
今月になってようやくkickstarter分の発送が終わったようですね。
GCW-ZERO firmwareアップデートを見ると、firmwareの更新も順調そうですね。

・KDE Tablet 「Flying Squirrel」製造計画(英語)
Nanonoteとは関係ないけど、メーリングリストを見ていたら出てきたので紹介。

EOMA-68というフォームファクターのCPUカードを使用したKDE搭載のタブレットを製造しようとしている。
「進捗状況」を見ると、試作基板はできており、5月には第2次試作基板製造に向けた調整を行っていたようだ。
overlay

なお、EOMA-68は、物理形状はPCMCIAカードを流用している。

USB電力計 サンワサプライ TAP-TST10をLinuxで使ってみた

サンワサプライから発売された「ワットモニターUSB TAP-TST10」というUSB接続タイプの電力計をLinuxで使ってみた。

埜中公博さんの「SANWA SUPPLY TAP-TST10 control tool」を使ってデータ取得しました。
githubにある「taptst10ctl.py」をCentOS6で動作させてみました。
(2013/11/19: 公開場所が変わりました「https://github.com/nonakap/taptst10ctl」。USBのデバイスへのアクセス手法の違いで「taptst10ctl.py」と「taptst10ctl0.py」があります)

# python taptst10ctl.py
Traceback (most recent call last):
  File "taptst10ctl.py", line 42, in <module>
    import usb.core
ImportError: No module named usb.core
#

あー・・・pyusbが入ってないからか・・・
pyusb-1.0.0a2.zipをダウンロードしてきて「python setup.py install」

# python taptst10ctl.py
Traceback (most recent call last):
  File "taptst10ctl.py", line 60, in <module>
    dev.set_configuration()
  File "/usr/lib/python2.6/site-packages/usb/core.py", line 547, in set_configuration
    self._ctx.managed_set_configuration(self, configuration)
  File "/usr/lib/python2.6/site-packages/usb/core.py", line 92, in managed_set_configuration
    self.backend.set_configuration(self.handle, cfg.bConfigurationValue)
  File "/usr/lib/python2.6/site-packages/usb/backend/libusb10.py", line 503, in set_configuration
    _check(_lib.libusb_set_configuration(dev_handle, config_value))
  File "/usr/lib/python2.6/site-packages/usb/backend/libusb10.py", line 403, in _check
    raise USBError(_str_error[ret], ret, _libusb_errno[ret])
usb.core.USBError: [Errno 16] Resource busy
#

「Resource busy」と何か別のプログラムが使っているらしい。

「USBRH driver for Linux を CentOS 5 で使う」で紹介されている手法、手動でusbhidの認識を解除してみる方法を行ってみた。

# cd /sys/bus/usb/drivers/usbhid
#  ls -l
lrwxrwxrwx 1 root root    0  7月 17 09:38 2013 4-2:1.0 -> ../../../../devices/pci0000:00/0000:00:12.1/usb4/4-2/4-2:1.0
--w------- 1 root root 4096  7月 17 09:25 2013 bind
lrwxrwxrwx 1 root root    0  7月 17 09:25 2013 module -> ../../../../module/usbhid
--w------- 1 root root 4096  7月 17 09:25 2013 new_id
--w------- 1 root root 4096  7月 17 09:25 2013 remove_id
--w------- 1 root root 4096  7月 17 09:25 2013 uevent
--w------- 1 root root 4096  7月 17 09:25 2013 unbind
# echo "4-2:1.0" > unbind
# ls
bind  module  new_id  remove_id  uevent  unbind
#

これでusbhidを解除できたので、改めて実行。

# .taptst10ctl.py
No.,DateTime,Watt,kWh
1,2013/07/13 07:50,0.0,0.00
2,2013/07/13 08:00,47.0,0.00
3,2013/07/13 08:10,44.8,0.01
4,2013/07/13 08:20,18.5,0.01
5,2013/07/13 08:30,18.5,0.01
6,2013/07/13 08:40,18.1,0.02
<略>
637,2013/07/17 18:00,87.4,2.76
638,2013/07/17 18:10,83.8,2.78
639,2013/07/17 18:20,83.3,2.79
640,2013/07/17 18:30,82.8,2.80
641,2013/07/17 18:40,80.9,2.82
#

ちなみに、時々、以下のような感じで実行に失敗します。
その場合は、再実行すれば、だいたい大丈夫です。

# ./taptst10ctl.py
Traceback (most recent call last):
  File "./taptst10ctl.py", line 92, in <module>
    data = dev.read(ENDPOINT, 17, intf, 1000)
  File "/usr/lib/python2.6/site-packages/usb/core.py", line 654, in read
    self.__get_timeout(timeout)
  File "/usr/lib/python2.6/site-packages/usb/backend/libusb10.py", line 559, in intr_read
    timeout)
  File "/usr/lib/python2.6/site-packages/usb/backend/libusb10.py", line 641, in __read
    timeout))
  File "/usr/lib/python2.6/site-packages/usb/backend/libusb10.py", line 403, in _check
    raise USBError(_str_error[ret], ret, _libusb_errno[ret])
usb.core.USBError: [Errno 110] Operation timed out
#