2016年12月18日日曜日

FRDMボードのデバッガチップを復旧させた話

この記事はmbed adventカレンダー2016 18日目の記事です。

長くなったのでいきなり3行でまとめると...
・FRDM-K64Fボードのファーム飛んだ
・Keil uVision5+サポートするデバッガ(J-Link、LPC-Link2、他mbedボードのCMSIS-DAPデバッガ)で復旧できた
ARMバンザイ、mbedバンザイ

こんな人に特にオススメの記事となっています
・FRDMボードのファームふっ飛ばして積み基板にしている人
・keil uVision5からhexファイルの書き込み方について知りたい人

最近FRDM-K64Fボードを買いまして、早速Lチカ!...の前にファームのアップデートを
Windows10マシンにて試みたところ、ファームが吹っ飛びました

この件調べるまで知りませんでしたが、どうもOpenSDAブートローダーとWindows10の相性が悪いらしいです。
http://www.nxp.com/jp/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA

ページ上方の続きを表示をクリックすると...
oh...

復旧の方法については調べたところ、主に2通りの方法があるようです。
①J-LinkやULINK2等の外部デバッガよりブートローダー書き込み
  https://community.nxp.com/docs/DOC-330935
②別なFRDMボードからブートローダー書き込み
  https://mcuoneclipse.com/2016/06/26/how-to-recover-the-opensda-v2-x-bootloader/
 
J-Link EDUを買って復旧することに成功しましたが、
LPC-Link2(CMSIS-DAPファーム、もしくは他のmbedボードでSWD信号引き出せられるもの)
+Keil uVision5
+ubuntu(VirtualBox上からでもOK、もしくはwindows7、Mac、Linux等の別マシン)
からでも復旧できることが分かったのでその方法を記載しておきます。


ブートローダー復旧編


LPC-Link2とFRDMボードを接続しておきます。
電源はFRDMボードにUSBから供給するのでLPC-Link2のJP2はオープンにしておきます。

uVisionからバイナリファイル書き込み方法は以下を参照しました。
µVision4 User's Guide (Japanese): HEX ファイル
http://www.keil.com/support/man/docs/uv4jp/uv4jp_fl_hexdownload.htm

書き込みプロジェクト作成前にK20シリーズのDFPをインストールしておきます。
メイン画面のPack Installerをクリック

 画面左側のツリーよりNXP→K20 Seriesを選択、右側のKeil::Kinetis_K20_DFPのInstallをクリック

インストール完了したらPack Installerを閉じます。
Reload Packs?と問い合わせが出るのではいをクリック。
いいえをクリックしてしまったらuVision5を再起動。

Keil uVision5で書き込み用プロジェクトの作成
タイトルバー下のメニューよりProject→New uVision Project
適当なフォルダにOpeSDAFirmwareWriteなど、適当な名前でプロジェクト作成。
Select Device画面でSearch欄にMK20DX128xxx5と入力。
ツリーのMK20DX128xxx5をクリックしてOKをクリック。

コンポーネントは何も追加せずOKをクリック


OpenSDAブートローダーのダウンロード
http://www.nxp.com/jp/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA
復旧対象のボードを選択して、OpenSDA bootloaderのバイナリをダウンロード。

解凍して、プロジェクト作ったフォルダにk20dx128_bootloader_0x5000.axfをコピーします。

Options fot Targetをクリック。

 Outputタブを選択し、Name of Exe~欄にダウンロードしたOpenSDA bootloaderのバイナリ名(k20dx128_bootloader_0x5000.axf)を入力します。

DebugタブにてデバッガをCMSIS-DAP Debuggerに変更。
Settingsをクリック。

 Connectをunder Reset、ResetをHW RESETに変更

メイン画面に戻り、Downloadボタンを押せばbootloaderが書き込まれます。
正常に書き込まれればBuild Outputはスクリーンショットと同じ内容になるはずです。

SWDケーブルを外してSW1を押しながらmicroUSBケーブルを接続し、
WindowsからBOOTLOADERドライブが認識されれば正常に書き込みできています。

アプリケーション復旧編

OpenSDAアプリケーション書き込み用にWindows10ではないマシン(VirtualBox上のubuntu、別マシンのWindows7など)で以降は作業します。

VirtualBox上のubuntuから復旧させる場合、仮想マシンの設定より
USBデバイスフィルタを登録しておきます。
Windowsにブートローダードライブが認識されている状態でMBED CMSIS-DAPを追加します。 
この設定をした状態でubuntuを起動、再度SW1を押しながらFRDMボードのUSBを接続すれば
自動的に仮想マシンのubuntuへ接続されます。


Windows10において対策版のOpenSDAブートローダーがリリースされるまで、JLinkかP&E Microどちらかを使うことが推奨されているので今回はJLinkを使います。

https://www.segger.com/downloads/jlink
J-Link OpenSDA - Board-Specific Firmwaresより対象のボード用バイナリをダウンロードします。
今回はFRDM-K64F用のバイナリをダウンロードします。

ダウンロードしたバイナリ(02_OpenSDA_FRDM-K64F.bin)をBOOTLOADERドライブにD&D

USBケーブルを抜き、そのまま差せば...復旧しました!


LチカもOK!

で、ここまでやってようやく気づいたのですが、uVision5がサポートするデバッガなら、どれでも復旧できたんじゃね?と

SWDコネクタ出ているLPCXpresso824-MAXボードからでも...

SWD関係のピンを引き出したmbed LPC1114ボードからでも...

nucleo-F401REボード上のST-Linkからでも...

復旧できました!!
なんのためにJ-Link買ったんだろ。なんでもデバッグできるデバッガ手に入ったしいいや。



2016年12月3日土曜日

へぇボタンをmbedで改造して任意SE鳴らせるようにしてみた

この記事はmbed adventカレンダー2016 3日目の記事です。

ある時へぇボタンの声をVOICEROID結月ゆかりさんに差し替えられない?と相談されまして、
それをmbed nucleo F303K8で作りました。
鳴ってる様子はこちら


へえボタンケースを追加工してmicroSDカードとロータリーディップスイッチ、音量調整用可変抵抗を取り付けています。


 ハード














回路図
















PDF版;https://drive.google.com/file/d/0B_nriOFsja6DNlRFazhraVllaFE/view?usp=sharing

・microSD
・スピーカー駆動用アンプ
・SE選択用ロータリーディップスイッチ
・へぇボタンについていたプッシュスイッチ信号横取り
・へぇボタン電源の単3電池4本
以上をmbed nucleoF303K8に接続して作り上げました。
改造というより中身ほぼ総取り替えですね(;´Д`)


初めてnucleoF303K8を使いましたが、、、注意して使わなければならないことにいくつかブチ当たりました。いずれもnucleoボードの回路図を注意して見ないとわからないことばかりでした。

まとめたツイート
https://twitter.com/i/moments/edit/804529900371591168

そのほかにも...
・電源をVINからではなく、+5Vから供給した場合、ST-Linkに電源供給されないためかResetがLに落ちっぱな状態になり動作しない
→ST-Linkからのリセット線の0Ωジャンパ外して引き出し、外部スイッチで接続・切り離しできるようにした
・ST-LinlとA7(PA2)はUART_TX、A0(PA0)はMCOとして接続されており、空きポートだと思って使うとトラブルの元になる→A0はSB17をカットして対応、A7は元々空きだったので痛い目見ず済んだ。
を作りました。

ソフト

https://developer.mbed.org/users/nameless129/code/F303_WAVPlayer/

実機のへぇボタン同様SEを連打して鳴らせたかったのとwavファイルの勉強兼ねて再生用ライブラリを作りました。
なるべく環境に依存する部分を組み込まないように作ったので他のPSoCやAVR等で使えるとはずですが、まだライブラリを独立させて試していないのでそれはまた近いうちに公開予定です。

2016年9月10日土曜日

I2SオーディオI/F WM8731をraspberry piで鳴らす

MFTで買ったDm9RecordsのI2SオーディオI/F基板PIAiFを鳴らしました。
http://www.dm9records.com/index.php/release/sound/piaif/

参考:
https://github.com/raspberrypi/linux/issues/1302
https://github.com/raspberrypi/linux/issues/1420

1. /boot/config.txtを編集
編集箇所は以下4つ
#を消してI2CとI2Cを有効に
dtparam=i2c_arm=on
dtparam=i2s=on

raspberry pi オンボードのオーディオを無効に
(有効でも可。その場合再生する際にデバイス指定する必要がある)
# dtparam=audio=on
openGLドライバを無効に
I2Cドライバと同時に使えないらしいです。
# dtoverlay=vc4-kms-v3d
以下を追記
#dm9 PIAiF enable
dtoverlay=rpi-proto


2.raspberry pi再起動

3.DACが認識されているか確認
pi@raspi3:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpiproto [snd_rpi_proto], device 0: WM8731 HiFi wm8731-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0


4.Output Mixer HiFi Playback SwitchのIDを確認
pi@raspi3:~ $ amixer controls
numid=2,iface=MIXER,name='Master Playback ZC Switch'
numid=1,iface=MIXER,name='Master Playback Volume'
numid=4,iface=MIXER,name='Line Capture Switch'
numid=5,iface=MIXER,name='Mic Boost Volume'
numid=6,iface=MIXER,name='Mic Capture Switch'
numid=8,iface=MIXER,name='ADC High Pass Filter Switch'
numid=3,iface=MIXER,name='Capture Volume'
numid=10,iface=MIXER,name='Playback Deemphasis Switch'
numid=14,iface=MIXER,name='Input Mux'
numid=13,iface=MIXER,name='Output Mixer HiFi Playback Switch'
numid=11,iface=MIXER,name='Output Mixer Line Bypass Switch'
numid=12,iface=MIXER,name='Output Mixer Mic Sidetone Switch'
numid=7,iface=MIXER,name='Sidetone Playback Volume'
numid=9,iface=MIXER,name='Store DC Offset Switch'


5.Output Mixer HiFi Playback SwitchをONに。
これがOFFのままだとdmesgでI2S SYNC errorが出ます。
amixer cset numid=13 on

6.再生してみる。
mplayer hoge.wav

7.楽しい!! ✌(‘ω’✌ )三✌(‘ω’)✌三( ✌’ω’)✌

オンボード出力が有効の場合、カードIDを調べて
pi@raspi3:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sndrpiproto [snd_rpi_proto], device 0: WM8731 HiFi wm8731-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0


ここではcard 1が外付けDACに該当するので
mplayer -ao alsa:device=hw=1,0 hoge.wav


2016年8月22日月曜日

UPnPで謎のポート(UDP49579)が開いてた件。犯人はIPv6

au光に更新してからVPNを動かすため調べていたらHGWのUPnPリストに開けた覚えのないポートが3つ・・・。背筋がざわつく。
リソースマネージャのリッスンポートからTCPとUDPで20479が開いているのはskypeと判明。
残る1つのポート49579(UDP)はsvchost.exe(netvcs)・・・。ううむ(;´д`)
検索かけるとこんな記事が。
UDP UPnP Ports Opening from SVCHOST.EXE NETSVCS (range 50k - 60k)

 Process Hackerで同様に調べるとiphlpsvcで同じ現象なのを発見。IPv6有効にしてたらポート開くのか。。。

 以下を管理者権限のコマンドプロンプトで実行。IPv6一時アドレスとIPv6トンネルインターフェースを無効に。
netsh interface ipv6 set privacy state=disable
netsh interface ipv6 6to4 set state state=disabled
netsh interface ipv6 isatap set state state=disabled
netsh interface ipv6 set teredo disabled

実行後Process Hackerから49579をリッスンしてるsvchost.exeは消え、ルータのUPnPリストからも消えました。

しかし検索でさくっと出なかった故にウィルス疑惑で冷や汗かきまくりでした・・・。
いやーよかったよかった( ´∀`)

2016年5月27日金曜日

【mbed】NUCLEO-F303K8でRTCを使う

NUCLEO-F303K8でSDカード扱おうとしたら”RTC error: LSE clock initialization failed.”とシリアルに表示された。
RTCの初期化に失敗したらしい。

調べてみると、mbedライブラリのデフォルトではLSEクロックを使用する。
(device.hの#define DEVICE_RTC_LSIが0)
NUCLEOボードのジャンパは購入時の状態ではX1が接続されていない。
上記回路図画像はSTM32 Nucleo-32 Schematics packの回路図(MB1180.pdf)より

RTCを使うための方法は2通り
①標準のmbedライブラリからmbed-devライブラリに変更して、mbed-dev\targets\hal\TARGET_STM\TARGET_STM32F3\TARGET_NUCLEO_F303K8\device.h
の #define DEVICE_RTC_LSIを1に書き換えて使う。
精度は落ちるがGPIO減らないしソルダジャンパしなくてもいいのでお手軽。

②ボードのSB5、SB7をソルダジャンパしてX1を接続。(動作確認していません)
その場合ピンPF0、PF1が使用できなくなるが精度は良いはず。

今回はSDカードの読み出しをやりたいため、ソフトで対応しました。

2016年5月17日火曜日

目覚まし時計をLEDシーリングライト連動にしてみた

赤外線リモコンでコントロールできるLEDシーリングライトをウチには取り付けています。それを目覚ましのブザーと連動させれば快適に起きられそうじゃん?と
なぜこの発想に至ったのかはお察し下さい・・・

まずは目覚まし時計のブザー信号の仕様確認から。
 (写真はすでに引き出し用の線をハンダ付けしています。撮るの忘れてた

 

恐らく圧電ブザー、片側の端子をGNDかVDDにつないで動作させてるだろうと予測。電池のマイナス端子でGNDを取り、オシロのプローブ当てると・・・

 

GNDとICの出力ピンにつながっているようです。逆起電圧出てるのでダイオードで制限して使うことにします。

 続いてLEDシーリングライトのリモコン信号解析
以前会社の寮でON・OFFタイマがついていないエアコンのコントロールをmbedでやっていたことがあるので、同じライブラリで信号を読み取ることに。
実用ライブラリシリーズ:赤外線送受信ライブラリ

さくっとブレボに受信用ICやら赤外線LEDを組んで試してみて・・・あれ?
アイリスオーヤマのリモコンですが、SONYフォーマットで、どのボタン押しても同じコードが表示される・・・。まさか・・・!ロジアナで確認してみると・・・

_人人人人人人人人_
> 独自フォーマット <
 ̄Y^Y^Y^Y^Y^Y^Y^YY ̄
ロジアナでパルス幅取るのもいいけど、ここはmbedで楽することに。パルス幅の時間を取得するプログラムが公開されていました。これなら独自フォーマットでも対応できますね。
リモコンの信号の取得
こちらのサイトをソースを少し改変。1sec経過で新規信号扱い(ターミナルで改行するだけ)、1フレーム目の時間が最後に受信したパルス~新規で受信したパルス間の時間になっているのを修正しました。
IRreceiver_PulseWidth

取得したパルス時間を送信用プログラムにコピペ。
取得したリモコン信号の送信 

IR_LED_Send

動作テスト

使ってみて数日ですが、ブザーで起きたのち眩しいので2度寝する気がなくなり、いい感じです。
朝弱い方はぜひお試し下さい

 回路図はこちら
マイコン基板にみんなのラボのLPC812 300mil board使いました。
なぜそれをって?積んでたからデスヨ





2016年2月20日土曜日

WLI-UC-GNM2でmonitor modeを使う(Debian Jessie版)

以前WLI-UC-GNM2でmonitor modeが使えるようになるまで
を投稿しましたが、Debian Jessieでは若干手順の修正が必要だったため再度投稿して忘備録にしておきます。 
かなり抜けている内容でしたしね。。。

使用しているチップセットのおさらいから。
https://wikidevi.com/wiki/Buffalo_WLI-UC-GNM2
使用しているチップセットはRT8070のようです。

RalinkはMediaTekに買収されたので、MediaTekのサイトよりドライバをダウンロード
http://www.mediatek.com/jp/downloads1/downloads/
 RT8070/ RT3070/ RT3370/ RT3572/ RT5370/ RT5372/ RT5572 USB USB    2012/10/22     v2.6.1.3 Linux
のリンクより名前とメールアドレスを入力してダウンロード。

参考元
Elecom WDC-433SU2Mで802.11acな通信を実現したかった

ダウンロードしたドライバファイルDPO_RT5572_LinuxSTA_2.6.1.3_20121022.tar.bz2を展開
(2016/2/19時点です。LinuxSAT以降のバージョンや日付は今後変更される可能性があります)

下準備

以降の作業はrootユーザーで行います
gcc、make、カーネルヘッダファイル、wireless-tools(iwconfigを使うため) tcpdumpのインストール
# apt-get install -y gcc make linux-headers-$(uname -r) wireless-tools tcpdump

VID PIDの確認
WLI-UC-GNM2を接続して
# lsusb
うちの環境だとこんな感じ。
Bus 002 Device 002: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 0411:01ee BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]
Bus 001 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 004: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 001 Device 002: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

ソースの修正

以下の通り。

DPO_RT5572_LinuxSTA_2.6.1.3_20121022/RT2870STA.dat
オリジナル 修正版
1#The word of "Default" must not be removed 1#The word of "Default" must not be removed
2Default 2Default
.3CountryRegion=5  3CountryRegion=1 
4CountryRegionABand=7 4CountryRegionABand=7
.5CountryCode=  5CountryCode=JP 
6ChannelGeography=1 6ChannelGeography=1
.7SSID=11n-AP  7SSID= 
8NetworkType=Infra 8NetworkType=Infra
.21AuthMode=OPEN  21AuthMode=WPA2PSK 
22EncrypType=NONE  22EncrypType=AES 

DPO_RT5572_LinuxSTA_2.6.1.3_20121022/common/rtusb_dev_id.c
lsusbで取得したVID、PIDを追記
オリジナル 修正版
105#endif /* RT2870*/  105#endif /* RT2870*/ 
106#ifdef RT3070 106#ifdef RT3070
. 107    {USB_DEVICE(0x0411,0x01ee)}, /* WLI-UC-GNM2 */ 
107    {USB_DEVICE(0x148F,0x3070)}, /* Ralink 3070 */  108    {USB_DEVICE(0x148F,0x3070)}, /* Ralink 3070 */ 

DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/config.mk

オリジナル
修正版
24# Support Wpa_Supplicant 24# Support Wpa_Supplicant
25# i.e. wpa_supplicant -Dralink 25# i.e. wpa_supplicant -Dralink
.26HAS_WPA_SUPPLICANT=n  26HAS_WPA_SUPPLICANT=y 
27 27
.35HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n  35HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y 
36 36
952    # Linux 2.6 952    # Linux 2.6
.953    EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include  953    EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include -Wno-date-time 
954    endif 954    endif

DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/rt_linux.c
使用するカーネルバージョンによっては逆に修正したらダメかも。
Debian Jessieでは必要だがwheezyでは不要。

オリジナル
修正版
1136#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) 1136#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
1137        pOSFSInfo->fsuid = current->fsuid; 1137        pOSFSInfo->fsuid = current->fsuid;
1138        pOSFSInfo->fsgid = current->fsgid; 1138        pOSFSInfo->fsgid = current->fsgid;
1139        current->fsuid = current->fsgid = 0; 1139        current->fsuid = current->fsgid = 0;
1140#else 1140#else
.1141        pOSFSInfo->fsuid = current_fsuid(); 1141        pOSFSInfo->fsuid = current_fsuid().val;
1142        pOSFSInfo->fsgid = current_fsgid(); 1142        pOSFSInfo->fsgid = current_fsgid().val;
1143#endif 1143#endif

コンパイル

# cd DPO_RT5572_LinuxSTA_2.6.1.3_20121022
# make

カーネルモジュールと設定ファイルの導入

# cp os/linux/rt5572sta.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/
# mkdir -p /etc/Wireless/RT2870STA
# cp RT2870STA.dat /etc/Wireless/RT2870STA/

ブラックリスト追加

# gedit /etc/modprobe.d/blacklist.conf
以下を追加、もしくは新規で保存。その後再起動
blacklist rt2800usb


モジュールロードの確認

# lsmod | grep rt5572sta
下記のようにロードされていればOK
rt5572sta             784165  1
usbcore               195427  6 uhci_hcd,ehci_hcd,ehci_pci,usbhid,rt5572sta,xhci_hcd

動作確認

# ifconfig
一覧にra0があればOK
# iwlist ra0 scan
周囲のSSIDが表示されていればOK。たまにスキャンできない場合があるので
その時は抜き差しすると治ったり・・・。

monitor modeへの変更

# iwconfig ra0
ra0       Ralink STA  ESSID:""  Nickname:"RT3070STA"
          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated  
          Bit Rate:1 Mb/s  
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality=10/100  Signal level:0 dBm  Noise level:0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

デフォルトではAutoになっている。
monitor modeへ変更する。
# iwconfig ra0 mode monitor
# iwconfig ra0
ra0       Ralink STA  ESSID:""  Nickname:"RT3070STA"
          Mode:Monitor  Frequency=2.412 GHz  Access Point: Not-Associated  
          Bit Rate:1 Mb/s  
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality=10/100  Signal level:0 dBm  Noise level:0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

モニタモードへ変更できた。チャンネルを変更する。
# iwconfig ra0 channel 13
# iwconfig ra0
ra0       Ralink STA  ESSID:""  Nickname:"RT3070STA"
          Mode:Monitor  Frequency=2.472 GHz  Access Point: Not-Associated  
          Bit Rate:1 Mb/s  
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality=10/100  Signal level:0 dBm  Noise level:0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

パケットをダンプしてみる

# tcpdump -i ra0 -e
-eオプションでヘッダの情報も見れるようになります。
例としてこちらの画像はスマホのWifi Analyzerを動かしている時のパケットをキャプチャしたもの。
SA:b0~から始まるのは動かしているスマホのMACアドレスです。



















2016年1月30日土曜日

中華製キャプチャBOX【ezcap280】分解&電源調査

中華製のPCレスでHDMI・コンポーネント信号をキャプチャできる「ezcap280」を入手したので
・中身を分解
・使用電流を調査
・最低動作電圧を調査
してみました。

尚、この記事の内容を元に改造・分解などによる故障、損害など一切の責任を負いませんので
参考にする場合は自己責任で、どうぞ。

外観 表面
 

外観 裏面


内部 筐体裏面


内部 筐体表面















構成パーツ

 基板はどうやら表面実装部品はリフロー、スルーホール、コネクタなどは手ハンダの様子で、
手ハンダを行ったと思われるオーディオジャック周辺はフラックスクリーナーで清掃しました。
はんだボールも出てきましたからね(;´∀`)
 また表面も手ハンダによるリワーク痕が2ヶ所見受けられました。
 ちなみに基板表の左側、JTAGとシルクがありますが、ロジアナに繋いでも
特に信号見れませんでした。残念。どこかプルダウンしないといけないのかな?


 ACアダプタの定格が5V2A。プラグは外形5.5mm、内径2.1mm、センタープラスの
標準的なDCプラグです。
 コンセントプラグ自体は中国のプラグなので変換コネクタを噛ませてます


・キャプチャ中の消費電流測定

キャプチャ前 0.48A程度 0.5A未満


コンポーネント1080i信号キャプチャ中 0.65~0.67A程度 0.7A未満


コンポーネント1080i信号キャプチャ前(HDMI出力をモニタへ接続) 0.51A前後












コンポーネント1080i信号キャプチャ中(HDMI出力をモニタへ接続) 0.65~0.67A程度 0.7A未満


電流測定キャプチャ前_HDMI信号1920x1080_60P入力 0.47A前後 0.5A未満















電流測定キャプチャ中_HDMI信号1920x1080_60P入力 0.58~0.62A程度 0.7A未満















 ・キャプチャ中の最低動作電圧調査

電圧4.1V_動作OK

HDMI1080P信号をキャプチャさせたが問題なく記録できていた。

電圧4.0V_動作NG

 電源投入直後、筐体前面左側USBメモリのオレンジのランプの点滅が止まらなかったため、
電圧不足によりUSBメモリが正常に動作しなかったため動作できなかったと思われる。

 最低動作電圧4.1V、動作中の電流0.7A未満であるという以上の結果を踏まえて、
現在ACアダプタで動作させているが、2A出力のUSBモバイルバッテリを用いれば
安定してコンセントレスのポータブルキャプチャ環境を用意できると考える。
・・・というかそのつもりで入手したんですがね(゚∀゚)
目論見通りですw