2014年12月2日火曜日

mbed AutoTransferバージョンアップしました

mbed Advent Calendar 2014の2日目の記事を書かせて頂きます。

以前作成した「mbed AutoTransfer」のバージョンアップを行いました。
(mbedを使った何かもって書いてたけど間に合いませんでした>< ごめんなさい!)

そもそもこれはなんぞや?

 mbed オンラインIDEからダウンロードしたバイナリファイルを自動で、指定したリムーバブルドライブ(=mbed)に転送するためのソフトです。

いちいち落としたバイナリをD&Dで移動させるにしてもちょっとめんどい。
かといってブラウザのダウンロード先をmbedに変更したら戻すのが手間。
たまに移動したつもりがコピーになってて、hogehoge(1).binになっちゃうのにイラッ。
等など、 ちょっとした手間を省くために作ったソフトです。

今回のバージョンアップについて

今回は上記のように、ただ指定したドライブにバイナリをコピーするだけでしたが、新たにISPモードと自動リセットを追加しました。

ISPモードは、このソフトだけでシリアル経由のバイナリ書き込みができる!・・・というわけではなく、クマさん達が作られた「イカ醤油ぽっぽ焼き(以下ISP)」用のモードです。
ISPする際にはオンラインIDEからダウンロードしたバイナリファイル名を「bin」に変えた上でmbedのストレージにコピーするわけですが、ISPモードを有効にしていれば、コピーする際に「bin」へのリネームもやってくれます。

自動リセットは、バイナリファイルを転送し終わったあとにmbedのリセットボタンを押さないといけないわけですが、それをシリアル通信経由でやっちゃう機能です。
自動リセットが有効の場合、バイナリファイルのコピーが完了すると、指定したCOMポートに対してブレーク信号を送出します。mbedはブレーク信号によりリセットがかかるので、これによりコピー完了と同時に新しいソフトで動き出す、というわけです。

 というわけで以上2点の機能追加をしたmbed AutoTransferはこちらよりどうぞ。
http://developer.mbed.org/users/nameless129/notebook/mbed-autotransfer-tool/

以下のボードで動作確認を行いました。
mbed LPC1768
mbed LPC1114FN28
ST Nucleo F401RE
FRDM-KL46Z
LPCXpresso824-MAX
他のmbedだと動かないボードあるかも。。。
 
また今回のバージョンからGitHubにてソースを公開しました。readmeとかまだ間に合ってないですが。。。(うんコードでごめんなさい。。。)
https://github.com/en129/mbedAutoTransfer

明日は@nameless911です。

あ、カレンダーまだ枠空いてるので、ぜひぜひ
http://www.adventar.org/calendars/523

2014年11月25日火曜日

Intel Edisonのスタートアップ

参考
IntelEdisonStartWindows – スイッチサイエンス
http://trac.switch-science.com/wiki/IntelEdisonStartWindows

Edisonを開封してからnode.jsでIOポート制御するまで - Qiita
http://qiita.com/k_kinukawa/items/f46b0f6e0da6072e0a12

Intel® Edison Breakout Board Hardware Guide
http://intel.ly/1E4xAWP

基板は「インテル Edison Breakout ボードキット」を使っています。
ファームのアップデートから。

1.Windows Driver setup 1.0.0をインストール
2.USBシリアル(J3)とUSBクライアント(J16)の両方をPCに接続
3.EdisonのストレージをFAT32にフォーマット。Intelより「Edison Yocto complete image」をダウンロードして中身を全部Edisonのストレージへコピー。
4.TeraTermにてシリアルコンソールに接続(Intel Edison Virtual Com Portはシリアルコンソールではない)
 $ rm -rf /var/log/journal/* を実行
 理由はEdisonのrootディレクトリがログで満杯になるとか。なんじゃそら('A`;
  恐らくファームのアップデートの際に書き込めなくなる可能性があるから、それの回避ということでしょうか。
5.$ reboot ota を実行。ファームのアップデートが始まる。
6.アップデートが終わったらログイン。
$ cat /etc/version でバージョンが確認できる。
7.$ configure_edison --setup で初期設定。

WiFiの設定が完了するとこんな感じでWebからステータス画面が覗ける。
http;//[ホスト名].localでつながる。
僕の場合は、ホスト名はen129sEdisonに設定したので、アドレスはhttp://en129sEdison.localになります。

ちなみに上記のアドレスはSSHでも使えます。IPアドレス何だったっけ?って忘れやすい僕には嬉しいw

Twitterにて「ディスクの容量が減っていく問題」というのを見たので、ついでに対策も行っておく。
IntelEdisonJournalDiskUsage – スイッチサイエンス
http://trac.switch-science.com/wiki/IntelEdisonJournalDiskUsage

2014年11月16日日曜日

Emerge+さんのLabToolエンクロージャーが届きますた

ざます先輩(@At_Zamasu_Zansu)考案、製作Emerge+さんのLabToolエンクロージャーを先行して頂きました。組み立ての様子と共に紹介します。

袋を開けるとパーツはこんな感じ。

 保護シールを水に浸けて剥がして、まずは基板のスタンド(透明のアクリルパーツ4つ)をボトムスタンドにセット

フロントパネルを差し込んで

LabTool基板をセット

側面のパネルとバックパネルを差し込んで

 冷却用のファンを天板にセット

蓋をしてプラネジで四隅を固定して完成!

うえから。リセットボタンが押せるよう穴があります。

裏にはemerge+の文字が彫り込まれています。

USBコネクタを挿してみたところ。手持ちのmini-Bケーブルでピッタリでした。

プローブとロジアナ用ケーブルを挿してみた図
プローブはLabToolに付属しないので、秋月の100MHzプローブ付けてます

組み立ては簡単で、ガッチリした作りになっているので、これなら安心してLabToolを使うことができそうです。
天板のネジは手で回せるタイプのプラネジのため、工具いらずで内部にアクセスできます。
また冷却ファンが搭載されているので、発熱に対しての心配もありません。

このエンクロージャーはMFTに出展されるEmerge+さんのブースにてデビューするとのことです

LabToolの使用感についてはまた今度紹介しようと思います。

2014年11月12日水曜日

ubuntu14.04でchromiumのビルド

いろいろ試行錯誤で間違ったところがあるかもですが、とりあえずメモ。

http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up

http://www.chromium.org/developers/how-tos/get-the-code

・depot toolの取得&toolへパスを通す
$ mkdir chromium
$ cd chromium
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
$ export PATH=`pwd`/depot_tools:"$PATH"
・ソースの取得
$ fetch chromium
 
.ビルド 
$ cd src
$ ninja -C out/Debug chrome

・ビルドしたchromiumを実行
& ./out/Debug/chrome --no-sandbox

2014年10月16日木曜日

10/23追記:LPC824MAXを購入&Lチカしてみた!

LPCXpressoLPC824-MAXを購入してみました。
\デェェェェェェェェン/
 早速USBを接続するとデモとしてRGB-LEDが青と緑で交互に点滅しますが・・・眩しいくらいです(;´∀`)

PCに接続されると、最初からmbedデバイスとして認識されます。

基板を見てみて、気になった点をいくつか。

①TP1のGNDピン

テスタなどのGND取りに便利そうです。


 ②JP1・2、P1・P2




     JP1はmbedチップにあたるLPC11U35のリセット用っぽいです。

   JP2は・・・なんだろ?LPC824だけの電源ON/OFFするため用かなあ
  P1は電流測定用?R17の両端電圧から測定できますね。
  P2は外部からの電源供給とADCのVREF入力用かなあ。


 ③WAKEスイッチとISPスイッチ

WAKEスイッチはLCP824のスリープモードから復帰させるためのスイッチですかね。
 ISPスイッチは押しながら電源投入すればLPC824をISPモードで起動させるためのもののようです。
 どちらのスイッチも汎用スイッチとしても使えるでしょう。

④基板端のPMODとAR1


 PMODは SPIとI2C、UARTなど通信系が集まったピンのようです。
 ちょい足しでSDカードとかモジュールを乗っけるのも簡単かも?
AR1は基板端に3.3VとGNDが供給されている、フリーのエリアですね。

 ⑤基板裏の未実装P6


   mbedチップLPC11U35用のSWDデバッグコネクタ用です。
  普通の使い方では触ることはなさそう。

回路図はこちらから閲覧できます。
http://www.embeddedartists.com/sites/default/files/docs/schematics/LPC824_Xpresso_v2_schematic_Rev_B.pdf


最後にLチカをしてみました。RGB-LEDなのに赤が点灯しないのも気になりますしね。
LPCXpressoにてソース作成、CMSIS-DAPでの書き込み、mbed式のbinファイルD&DどちらでもOKでした。



なぜ赤は暗いんだ(;´Д`)

10/23追記:
GCC_ARMのポーティングやっているうちに2点気づいたので追記しておきます。

⑥LED123とArduinoポートがかぶってる

一見IOポートが多いように見えるので、かぶってるとは思いませんでしたが・・・。
  P0_12(RED)とD3、P0_16(GREEN)とD6、P0_27(BLUE)とD9がかぶっています。
  SWの入力には使わないほうが良いと思います。

⑦PC→LPC824へのUART入力が初期状態ではできない

SJ9によってmbedチップのTXがLPC824につながってない状態になってます。


  これのおかげでLPC824→PCの出力はできるのに、入力はなんでできないんだろう・・・?orzと
悩まされました。。。


  

2014年10月15日水曜日

眠れる夜も安心?ターミナルを監視して止まっていると警告させる方法

X11のビルドに挑戦していますが・・・
長い!!しかも途中でモジュール不足だので止まる!
寝ている間に進めとこ~と思っても起きたら止まってたなんてことが。

そんなわけでターミナルの動きが止まる≒ビルドが止まってから一定時間経過するとスピーカーから警告音を鳴らすようにしてみました。
環境はWindowsですのであしからず。
(X入れてない仮想debianマシンだとコピペ使えないのでシリアルコンソール経由で使ってます)

使用するソフトは「PCの見張り番」 です。

監視対象を画像変化、無変化監視で30分、かつ継続監視にチェックを入れます。
実行するコマンドは警告音を鳴らすソフトと警告音のパスを入れたbatファイルです。
(普段USBヘッドセットを使っているので、スピーカーから鳴らすためには、再生デバイスをスピーカーに設定した再生ソフトを使う必要があるため)

こんな感じで設定して開始をポチッ。無変化監視は適当に変えてください。
今回はIntelGalileoのコンソールを監視してるため30分にしてます。
(警告音はガンダムUCサントラよりバンシィのテーマ。あれ寝てる時にかかると飛び起きますヨ)

これで夜も安心して寝れますね!!
早速設定した状態でしばらくすると・・・鳴りましたorz

2014年10月13日月曜日

WLI-UC-GNM2でmonitor modeが使えるようになるまで

2016/2/20追記:Debian jessieに対応した詳細な記事を書きました。
WLI-UC-GNM2でmonitor modeを使う(Debian Jessie版)


debianから配布されている「firmware-ralink」パッケージだと普通の使い方はできますが、monitor modeは使えないようです。
(一応、monitor modeに切り替えられますが、モニタしている周波数が表示できない上、パケットを取得できません)

チップ自体はmonitor modeに対応しているので、なら公式ドライバ入れてみましょうと。

参考
①http://dogwood.skr.jp/blog/2013/06/46/
②http://plaza.rakuten.co.jp/popopo3000/diary/20120624/

2014/10/13の時点でダウンロードするファイルはDPO_RT5572_LinuxSTA_2.6.1.3_20121022.tar.bz2になってました。

上記の参考サイトと違う点は、できたモジュールはrt5572sta.koくらいですかね。

元々当てられてたドライバをblacklistに突っ込んで、
modprobe rt5572sta
sudo ifconfig ra0 up
で動きました―

いじょ、忘備録ですた。

10/15追記:
Windowsならソフト入れるだけで同等のことができるらしい
【レビュー】指定したチャンネルにある無線LANデバイスをモニタリングできる「WifiChannelMonitor」 - 窓の杜
軽く使ってみましたが、確かにMACアドレス確認できました
 
Linuxでもmonitor modeにしなくてもよかったかも?
TuxMobil: Wireless LAN Sniffer Applications and Scanners for Linux

VMware PlayerのゲストOSでUSB3.0が使えるようになった件

VMware PlayerにDebianをインストールしてたんですが、仮想マシンの設定でUSB3.0を有効にしているにもかかわらず、どういう訳かUSB3.0が使えていませんでした。
解決方法が判明したのでメモ

参考情報:VMware KB: Workstation 9 におけるホスト OS とゲスト OS の USB 3.0 および仮想 xHCI のサポート

・Windows 物理マシン上で USB 3.0 ポートに接続された USB 3.0 デバイスが動作している場合、そのデバイスは VMware 仮想 xHCI コントローラをサポートしているゲスト OS でも動作しますか?
 Microsoft 汎用 xHCI ドライバがインストールされている Windows 8 以降のホスト OS:
 Windows 8 ホストに接続された USB 3.0 デバイスの機能はすべて、ゲスト OS でもサポートされます。

ん、汎用ドライバじゃないとダメ?
確かルネサス純正のドライバ入れてたよねーと、純正デバイスドライバを削除して再起動。
VMのUSB設定が3.0になっていることを確認して仮想マシンdebian起動→USB3.0デバイス認識しますたワーイヽ(゚∀゚)ノ

いじょ。

2014年9月30日火曜日

ノートPCにグラボを増設してみた

ebayでminiPCI-E→miniPCI-Ex1に変換する基板を購入
http://www.ebay.com/itm/281397090582?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

amazonでPCI-Ex1→PCI-Ex16に変換するケーブルも購入
http://www.amazon.co.jp/gp/product/B00H4FKQOY/ref=oh_details_o06_s00_i00?ie=UTF8&psc=1

2つ組み合わせて・・・こうじゃ!(使用グラボは9600GT)

くれいじー・・・

先に補助電源を投入するとGPUのファンフル回転
PCの電源ONすると・・・( ^ω^)おっ

Windowsに認識されると消費電流が0.9A→2.4Aに増加。
最大定格の90Wまでは食わないんすね。x1接続だからかな?
 

ちゃんと認識されてます

しかし3DMARKのベンチ回してみると、スコアは散々たるもので。。。
x1接続だから性能に期待しちゃダメですね。

別マシンで9600GTをx16で接続していたので比較になりませんが、グラボとしての性能はやっぱり。。。


2014年9月19日金曜日

debian wheezyにnvidiaドライバ導入

750Tiに換装後、debian起動しようとしたら起動しなくなっちゃったのでドライバ入れますた。

http://askubuntu.com/questions/425140/unable-toboot-with-nvidia-gtx-750-ti-even-with-latest-beta-drivers
上記のサイトを参考に現時点で最新のドライバ(NVIDIA-Linux-x86_64-340.32)を入れてます。
ただ、いくつか困った点があったのでそれをメモしておきます。

①ドライバのコンパイルにgcc4.6を使用
http://d.hatena.ne.jp/NU_Pan/20140509/1399643154
上記のサイトを参考に4.6を導入&切り替え。ドライバの導入終わったら4.7に戻すのを忘れなく。

sudo update-grubしたら再起動
じゃないとインストーラから怒られます。

②インストーラからXサーバーが止まってねぇぞオラァ!って怒られた
>3.sudo gdm service stop or sudo service lightdm stop
これだけじゃXserver止まらなかったので、
#sudo /etc/init.d/gdm3 stop
で止められました。

③インストール完了後にGRUB設定を戻す

これで750Tiでも動いてくれるようになりました。わーい 

2014年9月18日木曜日

グラボ換装しますた

今まで使ってた9600GTのDVI1系統がお亡くなり(アナログは生きてたけど)になったのでGTX750Tiを買っちゃいました。
\デェェェェェェェェン/

いいっすねえ大型ファン(なお2スロ目はただの通気孔)
補助電源コネクタはありません。

換装してみましたが、このマザボPCI-E1.1だったのね。。。マザボも変えたい

CrystalMark 2004R3で新旧比較ベンチしてみましたが、なんだこれ。。。
なんで古いやつに負けてる項目あるん。。。


3DMarkではちゃんとベンチできてるようです。CLOUD GATEでは2倍のスコア差。
これで9600GTのTDPは96Wに対してGTX750Tiは60Wと、技術の進歩ってすごいなぁ。

2014年9月14日日曜日

超!お手軽FMラジオIC EM803

aitendoの安くて外付け部品が少ないFMラジオIC 「EM803」を試してみました。

買ったのはこちら
 超シンプルラジオ(FM) [EN803]
1コ90円。ICのピッチは1.0mmです。(1.0mmをSSOPと言うのは個人的に違和感ですが、1.27mm以下は)

間違ってもEN803と書いてある、使えそうな変換基板買ってはいけません。それEN803M(0.5mmピッチ版)用の変換基板なので。。。

データシートはこれっぽい?というのも見つからず、互換品(らしい)のBK1079のデータシートなら
発見しました。中の参考回路図がaitendoで掲載されてるのとほぼ同じなので、参考にはなるかと思います。

参考回路図はICのページにありますが、L1の100nHってなんやねんとか、FB1のフェライトビーズいらなくね?とかいろいろアレンジして更にお手軽にしたのがこちら↓

 ブレッドボードに組むとこんな感じです。
SWはジャンパワイヤで、アンテナもジャンパワイヤで代用w

使ってみた感じですが、放送局を1発で当てられずノイズが流れることがありますが、何回か押せばドンピシャで合せてくれます。ノイズが乗らず、音質はクリアです。