ブログ/こばさんの wakwak 山歩き

2017-07-16 QC2.0 モバイルバッテリーで 9/12V 生成し、デジカメ・DMC-G7 に給電

Quick Charge 2.0 モバイルバッテリーで 9/12V 生成し、デジカメ・DMC-G7 に給電

| Quick Charge 2.0 モバイルバッテリーで 9/12V 生成し、デジカメ・DMC-G7 に給電を含むブックマーク

 記事にはしていませんが、実は春に近所のキタムラで DMC-G7 + 14-140mm + 単50mm がポッキリ7万円で投げ売りされていたので直ちに確保しておりました。

 後に 12-60mm も追加購入する羽目に陥り、すっかりマイクロフォーサーズ沼に漬かり始めてしまい・・・


 DMC-G7(というかバッテリーに DMW-BLC12 を使う全てのパナソニックデジカメ)は DMW-DCC8 という DCカプラーを使うことで外部から電源供給を受けて使えるようになります。

 よって、長時間の動画撮影では普通の 5V モバイルバッテリーに XL6009を使った昇圧モジュール を繋いで 5V→8.4V して使っておりました。

 実際には 8.4V ではカメラ側で低電圧警告が出てしまい、9V まで上げないといけなかった。


http://dl.ftrans.etr.jp/?b71d6c4c53fc44bfac01ecd6659797dd49972200.jpg http://dl.ftrans.etr.jp/?d261a8bf27f94064a4eeea6954bbe8eb2ce882bd.jpg


 これはこれで全く問題なく利用できてしましたが、最近になって Quick Charge 3.0 対応モバイルバッテリー を購入しまして、Quick Charge だったら 9V/12V の出力ができるはずで、いったん 5V を介するのは無駄だろ?ということに気が付いてしまいました。


 ぐぐってみると先人さんが既に QC2.0 から 9V を取り出しておられます。

Quick Charge 2.0 から 9V/12V を出力させるデバイス (ATTiny13A) | tech - 氾濫原

https://lowreal.net/2015/12/24/1

 ATTiny13A を使って D+/D- を制御しておられるものですが、私の部品箱には ATTiny13A がありません。

 公式の仕様書と合わせてソースを読み解くと、D+/D- ともに 0.6V(0.325〜2V)を1.25秒維持し、直後に D- を 1ms だけ 0V に落とすだけで電圧可変モードに突入し、D+ と D- に印可した電圧で出力電圧が定まるという・・

1250ms(1000〜1500ms)1ms以上電圧可変モードに突入12V9V
D+0.6V0.6V0.6V3.3V
D-0.6V0V0.6V0.6V

※ 0.6V:0.325〜2V、3.3V:2V〜


 2ピンあれば出来るんじゃない?と、部品箱にあった米粒AVR ATTiny10 にて試してみたら、ものの見事に成功してしまったので回路図とソースをお披露目することに致します。


http://dl.ftrans.etr.jp/?445343c20bd146129245c7eeedaeb4b4cbe2e58f.png


 リセットを潰さない前提の ATTiny10 では3ピン使えるのですが、2ピンで事が足り1ピン余ってしまったので、せっかくなので電圧の指定を外部から行えるようにしました。

 PB3 はデフォルトではリセットピンとなっており、Fuse でリセット無効化(RSTDISBL)すれば GPIO として使えるようになりますが、書き込みに 12V が必要になるなど少々面倒になります。


/*
 * USB-QC.cpp
 * Author : wakwak_koba
 */ 
#define F_CPU 1000000UL

#include <avr/io.h>
#include <util/delay.h>

/*
	QuickChargeに対して出力電圧を指定する。
	
	PB0:D+
	PB2:D-
	PB1:SW HIGH:9V、LOW:12V
*/

int main(void)
{
	DDRB	|= 0b00000001;		// PB0:出力(LOW)
	_delay_ms(1250);		// 1.25秒(1.0〜1.5s)

	DDRB	|= 0b00000100;		// PB2:出力(LOW)
	_delay_ms(2);			// 2ms(1ms〜)
	DDRB	&= 0b11111011;		// PB2:入力(OPEN)

	while(1)
	{
		if(PINB & 0b00000010)		// 9V
			PORTB |= 0b00000001;	// PB0:HIGH(D+:3.3V)
		else				// 12V
			PORTB &= 0b11111110;	// PB0:LOW(D+:0.6V)

		_delay_ms(100);			// 0.1秒
	}
}

 いちお動作中にも切り替えできるようにしましたが、100ms おきにチェックするアバウト処理にてチャタリングは無視です。


http://dl.ftrans.etr.jp/?b165fb513c42402396a2ada1e371548ae16c088d.jpg http://dl.ftrans.etr.jp/?73b4c038f7724cf484931b0a8788acc2ad0e56f8.jpg


 ブレッドボードで成功したので 秋月ペッドボトル基板 に実装します。


http://dl.ftrans.etr.jp/?82a94b4ba3a44a53b1a0ea79e93752685faa1ab7.jpg http://dl.ftrans.etr.jp/?dae2eab41f8445be922e624cd525023486c6fd1f.jpg


 電圧切替えはジャンパーピンにて実現。

 デジカメ繋ぐ前に最終確認


http://dl.ftrans.etr.jp/?1b56f8059ae1462da0823e2af678376671a3479b.jpg


 よし、大丈夫ぽいですね、では本番。


http://dl.ftrans.etr.jp/?424cb960b6d7481bb8e5a81617340107139aabda.jpg


 大成功♪

 ただ、これはモバイルバッテリーの仕様なので仕方ないのですが、電気の消費が少ないと5秒ほどで自動的に切れてしまいます。

 いったん切れると手動でONにしないといけませんが、起動直後の1.25秒間だけは 5V が出てしまいます。

 電圧が低いので実害はないですが、9V が出始めるまで少し時間がかかるので、そこだけ注意ですね。


(次回の予告)

 DMC-G7 はこれで大丈夫ですが、私の手持ちデジカメ C8080 は公称 6.5V、P7800 は 4.2V で、Quick Charge 2.0 の規格では直接給電させることができません。

 幸いにも 買ったモバイルバッテリー は Quick Charge 3.0 対応なので、3.0 から備わった Continuous Mode を活用して、9V でも 12V でもない半端な電圧を生成してみることにします。

 乞うご期待〜♪

2017-06-30 Windows Server 2016 クライアント化(WiFi・Flash・Bluetoothも)

Windows Server 2016 クライアント化(WiFi・Flash・Bluetoothも)

| Windows Server 2016 クライアント化(WiFi・Flash・Bluetoothも)を含むブックマーク

 工作机に常置してる LIVA X2(4GB/120GB) を Windows10 化するかどうか迷っていたのですが、せっかく省電力を生かして 24時間つけっぱなしにしてることもあり、ゆくゆくは自宅サーバー化する前提で、Windows10 と同じカーネルの Windows Server 2016 を購入&インストールしてみました。

 とはいえ普段はクライアントとしても使いたいので「Windows Server 2016 クライアント化」久しぶりに大奮起♪


 WiFi はデフォルトでサポートしているので問題なく、また Adobe Flash をインストールする方法は アメリカ人が紹介していた ので、これもすんなり行ったのですが、最後の砦たる Bluetooth を有効にする方法が世界中どこにもなく、みんな「サーバー版では Bluetooth はサポートされてないから諦めろ」ばかり。


 カーネル一緒なんだから、そんなはずない!と独力で頑張って、無事に Windows Server 2016 で Bluetooth まで有効化 できました。

 ほぼ完全に日常使用に耐えるクライアント化に成功したと思うので、備忘を兼ねて記録に残します。




  • 無線LAN・Adobe Flashを有効化
  • さらに Server OS では不可とされている Bluetooth を有効化

を行い、Windows10 Enterprise LTSB版 相当のクライアントにするものとする。

(ストアアプリには非対応、やる方法があるかもしれないが「ストア」に興味ないので・・・)


 証拠のスクリーンショット(Bluetooth 有効化したうえで 201HW をペアリングさせてみた)

http://dl.ftrans.etr.jp/?526c27f3c33b45d789afea64b215093022807d02.png

※右下タスクバーの通知領域に Bluetooth アイコンも出現中


 無線LAN は Server でもサポートされているため、「サーバーの役割と機能の追加」から WLANサービス を追加し無線LANのドライバーをインストールし再起動、という通常の手順


 引き続き Adobe Flash のインストール。

 基本的に アメリカ人の手順 どおり。

 コマンドプロンプト(管理者)より

dism /online /add-package /packagepath:"C:\Windows\servicing\Packages\Adobe-Flash-For-Windows-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"

 最後に Bluetooth。

 Flash のときと同じく dism で機能をインストールする。

dism /online /add-package /packagepath:"C:\Windows\servicing\packages\Microsoft-OneCore-Connectivity-Bluetooth-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"
dism /online /add-package /packagepath:"C:\Windows\servicing\packages\Microsoft-OneCore-Connectivity-Bluetooth-onecore-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"
dism /online /add-package /packagepath:"C:\Windows\servicing\packages\Microsoft-OneCore-Connectivity-Bluetooth-drivers-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"

dism /online /add-package /packagepath:"C:\Windows\servicing\packages\Microsoft-OneCore-Connectivity-Bluetooth-WOW64-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"
dism /online /add-package /packagepath:"C:\Windows\servicing\packages\Microsoft-OneCore-Connectivity-Bluetooth-WOW64-onecore-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"
dism /online /add-package /packagepath:"C:\Windows\servicing\packages\Microsoft-OneCore-Connectivity-Bluetooth-WOW64-drivers-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"

dism /online /add-package /packagepath:"C:\Windows\servicing\packages\Microsoft-OneCore-Connectivity-Bluetooth-onecoreuap-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"
dism /online /add-package /packagepath:"C:\Windows\servicing\packages\Microsoft-OneCore-SystemSettings-Bluetooth-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"

 この中で不要なものもあるかもしれませんが、切り分け面倒なので、らしいもの全部ぶっこみ。

 30分くらいかかるやつもあるので気長に待つこと。


 引き続きマシンに搭載されている Bluetooth チップに見合ったドライバ(Win10x64版)をインストールして再起動したらオシマイ。


 ちなみに LIVA X2 では

ハードウェアIDデバイス名
VID_8087&PID_0A2Aインテル® Wireless Bluetooth® ソフトウェア

 自動で入らなかったら手動で。

 派生として以下、自動で入らなかったら手動で

BTH\MS_BTHBRBMicrosoft Bluetooth Enumerator
BTH\MS_BTHLEMicrosoft Bluetooth LE Enumerator
BTH\MS_BTHPANパーソナル エリア ネットワーク サービス
BTH\MS_RFCOMMBluetooth Device (RFCOMM Protocol TDI)

 ペアリングの方法など、すべて Windows10 と同じ



(追記) Bluetoothキーボードなど Bluetooth HID Device のインストール


 上記にて Bluetooth が有効になりますが、いざ Bluetooth キーボードを繋ごうとするとペアリングには成功するもドライバが見つからず、「不明なデバイス」に Bluetooth Keyboard が残ってしまい結果として使えません。

 これまた相当に手こずりましたが

  • hidbth.sys が存在しない
  • hidbth.inf は存在するが、 Server 除外のシグネチャーが記述されている

ということが原因のようです。

 その他の Bluetooth 関係ライブラリは概ね入っているので、ほとんど嫌がらせのような仕打ちです。


 ランセンス的なところは置いといて、とりあえず hidbth.sys は Windows10 x64(試供版でも可だが、リビジョンは揃えること) の C:\Windows\System32\Drivers から採取して同じ場所に放り込んでおけばいいんですが、問題が INF ファイルのほう。

 C:\Windows\Inf\hidbth.inf は直接いじれないので、別のフォルダへコピーして編集します。

 中で、input.inf を include してるぽいので、念のため C:\Windows\INF の中から探し出して同じ場所にコピーしておきます。


変更前変更後
http://dl.ftrans.etr.jp/?e0db5e4a9fc649539764087f27b3fd2db7bbe131.pnghttp://dl.ftrans.etr.jp/?7b292907e5ae40ec871b9383995843e6a9c34f9b.png

 この INF をドライバとして Bluetooth Keyboard に当てるのですが、残念ながら改変した INF に対応する証明書ファイル(cat)を用意できないため、デフォルトのままだと未署名ドライバとして弾かれてしまいます。

 未署名ドライバを強制インストールする手順はネットに出てるので、それ見て強制的に入れてやってください。


 ドライバのインストールが終わったら

bcdedit /set TESTSIGNING OFF

で通常モードに戻しますが、先ほどテストモードにて強制インストールしたドライバは生きてるようで、ちゃんと Bluetooth キーボードが使えます。


http://dl.ftrans.etr.jp/?d3a445bc390f447f8b9016ae79dc37403868bd45.png http://dl.ftrans.etr.jp/?933ee36b72c04d0ba0556dd6699d15d187e238e8.png


 成功すると思わなかったため作業途中のスクリーンショットがあまりありません。

 もし気が向いたらクリアインストールして最初から手順を残すかもしれませんが、Windows Server 2016 をクライアント化しようとしてる方だったら、この程度の文章量でも理解していただけるかと思われ。。