2016年6月24日金曜日

Arduinoを使ってfusebitをリセットしてみた

ちょっと前にAttiny2313のfuse bitリーダ&リセッタを作ってみたけど一部のマイコンでリセットできない物があったので他のリセッタも試してみた。

Arduino AVR HVSPってやつなんだけど、こいつはArduinoからAttiny85などのHVSP対応マイコンをリセットできるっぽい。

早速ブレッドボードで回路を組んで試してみた。ちなみにトランジスタは今回も2SC1815を使用した。
スケッチはhv_serial_prog.pdeを使用させてもらった。
回路が同じで数種類のスケッチが出回ってるみたいで、製品としてボードになってる奴もあるっぽい。
シリアルモニタから適当な文字を送信すると読み込んでリセットしてくれるはず。

しかしヒューズビットは読み込まれるんだけどリセットされない…

よーくコメントを読んでみると"ロックビットがかかってる奴はチップイレースしないとリセットできないのでチップイレースできるようにスケッチを追記するといいよ"的なことが書いてあった。
ロックビットを設定したつもりはなかったんだけどとりあえずやってみることに…

先ほどのスケッチの70行目辺りに(readFuses();の前)

//Chip erase
if ((inByte == 'e') || (inByte == 'E')) {
  Serial.println("Erasing all memories…");
shiftOut2(DATAOUT, INSTOUT, CLKOUT, MSBFIRST, 0x80, 0x4C);
shiftOut2(DATAOUT, INSTOUT, CLKOUT, MSBFIRST, 0x00, 0x64);
shiftOut2(DATAOUT, INSTOUT, CLKOUT, MSBFIRST, 0x00, 0x6C);
delay(100);
shiftOut2(DATAOUT, INSTOUT, CLKOUT, MSBFIRST, 0x00, 0x4C);
}

を追記するだけ。

そして今度はシリアルモニタからeを送信するとチップイレースしてくれる用になるはず。
なんとこれでヒューズビットをリセットすることができた…
この前のfuseリセッタもソースコード公開されてるしチップイレース対応できるかなぁ

2016年6月11日土曜日

Attiny85用のヒューズリセッタを作ってみた

使えなくなったAttiny85が5個ぐらい余っていたので、復活させてみようかということでヒューズリセッタを作ってみた。

Attiny85をリセットピンまで使ったり、ヒューズビットの設定をミスってしまったりしたら、HVSPライタを使わないといけないんだけどもHIDaspxに比べると結構高級。
ヒューズリセッタは結構いろんな方がプログラムを公開してくれているので、Arduinoを使ったものや、安値なAttiny2313を使ったものが存在してる模様。

今回はsimpleavrさんのHVSP Fuse Resetterを作ってみた。
ブレッドボード上で作れるし、7セグ付きっぽい。

今回はブレッドボードに空きがなかったので、ユニバーサル基板で作成した。
このサイトに載ってる回路図はトランジスタのエミッタとコレクタが逆になってるので注意。
あとattiny2313のPin4は7セグのPin2でOKの模様。
(ブレッドボードだと重ねてあるしね…)
今回はトランジスタを2SC1815に変更してみた。

Attiny85を付けて12Vをつなぐとt85の文字が。
ちゃんと認識してる模様。
ボタンを押すとlfuseとhfuseに切り替わる。
最後にefuseがみれる。
そしてボタンを長押しするとデフォルトのヒューズビットに戻してくれる。

これで手軽にリセットピンが使えるようになったな。

2016年5月29日日曜日

DMM mobile SIMのパッケージ版を買ってみた。

結構前に修理したiPad mini retina用にDMM mobileのデータ専用SIMを契約してみた。
あんまり外で使っていなかったので、使うときにSo-netのプリペイドを買っていたんだけど最近頻度が増えたのでこっちのほうが安いんじゃないかと…
DMM mobileのパッケージ版SIMカードはAmazonのみの取り扱いのようで、このパッケージでは初期手数料の通常3,240円がかからない代わりにパッケージ代540円+送料なのでパッケージ版のほうがお得っぽい。
今回はAmazonで2000円以上まとめて買い物したので送料無料だった。

さらに5月末まで開通するとDMMポイントで540ポイントがもらえるらしいので実質初回手数料無料というわけ。ポイントの使い道があればなんだけど…(艦これにでも課金するか

開通期限は販売期限から1ヶ月後らしいので来年の1月までに開通すればOKなパッケージだった。

nano SIMなのでいざとなったら変換して他のデバイスにも使える。

データSIMの開通にはパッケージとクレジットカードがあれば即日開通するみたい。
通話SIMは後日発送されるらしい。

今回はデータ用SIMなので早速開通してみた。
ちなみに開通月は日割りらしいので月末でも安心!
DMM mobileの公式サイトからパッケージ購入済みの方から進める。

SIMカードの台座の後ろに書いてある電話番号とシリアル番号を入力してプランを選択してクレジットカードを登録するだけ。

プランはとりあえずiPadなので1GBにしてみた。

そして今月も今日含め3日しかないけど日割りでこんな感じ。

あとはiPadにSIMを差し込んで

APNのプロファイルをDMMからダウンロードすれば繋がる。
プロファイルでAPNを設定するとテザリングも使える。

料金が日割りなのでもちろんデータ容量も日割りで、1GBプランなので90MBしかなかった。


スピードテストしてみたけど、この時間だとなかなか速いぞ…
スピードテストで50MB使ってしまったよ…

PhotoVision TV 202HWをSIM無しで使う

友人宅に遊びに行ったら202HWがあってフルセグ見ても全画面で表示されないと…

前にこの機種が安値で大放出されていた時になんか改造法があった気がしたので借りて来た。
3G対応でワンセグ、フルセグが見れるフォトフレーム?
このサイズのテレビは作業用に便利かも。

電源を入れてみると3Gにつながらないというエラーがずっと左側に出てテレビの画面が小さいよ…
確かにこれだと使いにくいなぁ

本体のバージョンはα24.1なので改造対策版の模様。
このバージョン以降だとシリアルコンソールからの改造になるっぽい。

とりあえず分解
後ろのカバーは下の方に溝があるのでそこにギターのピックとかを突っ込んで全体的に爪を外していくと外れる。
その次に大量のネジが出てくる…(防水だからかな?
ネジを外したら液晶側が取れてくるのでケーブルを外して分離する。
こんなところにUSB端子が隠れてるようなんだけどこのバージョンだと封じられてるのよね
とりあえずスピーカーの線をハンダゴテで外して、基板のネジを全部緩めて基盤を外す。
裏側にシリアルコンソールの場所があるので細いケーブルをはんだづけした。
グレーがTXで緑がRXだった気がする…

ハンダ付けが終わったら今度はapkの準備。
photovision_tv_function_unlocker.apkをGithubからダウンロードしてくる。
そして適当なSDカードの直下に入れて202HWに挿しておく。

このまま起動してみたけどシリアルコンソールを見てるとバッテリエラーでなかなか立ち上がらなかったので、基板をケースに戻してバッテリを繋いで起動してみた。
とりあえずUSBシリアル変換モジュールでボーレートを115200にして待機しながら起動。正常に繋がってればなにか表示されるはず。

起動したら
シリアルコンソールから
pm install /mnt/sdcard2/photovision_tv_function_unlocker.apk
とコマンドを送る。
これで先ほどSDカードに保存したapkファイルがインストールされるはず。
successと出れば完了。
本体のメニューを開いてずっと下の方にスクロールしていくと次の画面に行くので
このメニューを選択してOKを押すとテレビのフルスクリーンを有効にするか無効にするか選択できる。
これでフルスクリーンでテレビが見れるようになった!

2016年5月21日土曜日

Arduino IDEで直接ESP-WROOM-02を使ってみた。

久しぶりにESP8266をいじってみた。

今回は秋月でESP-WROOM-02を買ってきてもらったのでこいつをArduino IDEで直接扱ってみようかなと。
前はArduinoに繋いでATコマンドでESP8266を扱ってきたけど、Arduino IDEで直接扱えるようになっていたようなので。

ESP-WROOM-02は金属シールドの中にESP8266とFlashを内蔵していてIOピンも出てる。技適もとってるし。これで550円。
電子工作に使える技適対応なWi-Fiモジュールの中では破格だよなぁ。

ピッチが狭いのでピッチ変換基板とかあるといいんだけど、秋月のやつはブレッドボードで使うこと前提みたいな形状だったので今回はスズメッキ線とユニバーサル基板で頑張ることに。

とりあえずテスト用にRESETピンとIO0とIO2のピンを10kΩでプルアップして、IO15をプルダウンしてる。
リセットスイッチはRSTをGND、書き込みボタンはIO0をGNDに落とすように取り付けた。

ESP8266は3.3V駆動なので、USBシリアルモジュールから直接取れるように3.3Vレギュレータも搭載してみた。
ちょうど手元にAMS1117が有ったので裏面に面実装。セラコンも抵抗も面実装。
シリアルポートもレベル変換するべきなんだろうけど端折った…


次はArduino IDEの設定。
今回はArduino 1.6.8を使用した。
スイッチサイエンスの
ESP-WROOM-02開発ボードをArduino IDEで開発する方法
を参考にして、Arduino IDEにボードを追加してみたんだけど、なんか設定項目が違うようなのでこんな感じで設定してみた。

USBシリアル変換にはCP2102を使用した。
書き込むときは書き込みボタンを押したままリセットボタンを押して、最後に書き込みボタンを離す。
そしてArduino IDEの書込みボタンを押す。
そうすると書き込めるはず。

RAMもROMもArduinoからATコマンドで操作するよりふんだんに利用できる!
ただし、IOが少ないのと、ADCコンバータはVREFが1V固定なのでちょっと使いにくいかなぁ


2016年5月16日月曜日

REVIVE USBを自作してみた。その2

前回はREVIVE USB自作の基板の方を作成したけど、今回はREVIVE USBとして動かすためにブートローダの書込みとファームウェアの書込みをやってみる。

まずはブートローダの書き込み。PIC18F14K50にプログラムを書き込むのにはPickit等のPICライタが必要なんだけど、ブートローダを書き込んでおけば、Pickit無しでもUSB経由でファームウェアを更新できるようになる。
でも結局はブートローダ書き込むのに1回はPICライタが必要なんだけども…
というわけで今回はPickit3を借りて書き込んできた。
書き込むブートローダは"Microchip Libraries for Applications"に含まれてる
"USB Device - HID - HID Bootloader - C18 - PIC18F4550.hex"
を書き込んでみた。

書込みが終わったらBootボタン(本家ではジャンパだけど)を押しながらUSBに接続するとUSB HID Bootloaderとして認識されるはず。
ブートローダしか入ってない状態でボタンを押さずにUSBに挿してもファームウェアが入ってないので何も起こらない。


お次はファームウェアの書き込み。
うまくBootloaderが書き込めたらお次はREVIVE USBのファームウェアを書き込む。
ファームウェアの書き込みにはAssembly DeskのREVIVE USBのところで公開されている"ファームウェア書き込みソフト"を使用する。

REVIVE USBを接続しない状態でHIDBootLoader.exeを起動する。
この状態でBootボタンを押しながらREVIVE USBを差し込むとデバイスが認識される。
この状態になったらファームウェアを書き込むだけ。
REVIVE USBのファームウェアは何種類か有るみたいだけど、今回は標準のファームウェアを書き込んでみた。
Assembly DeskからファームウェアのHEXファイルをダウンロード。
書き込みソフトのOpen Hex Fileを押してダウンロードしたファイルを読み込む。
Program/Verifyボタンを押すと書き込み&チェックをしてくれる。

あとはReset Deviseを押すか、デバイスをさしなおす(Bootボタンは押さずに)とREVIVE USBとして認識されるようになってるはず。

これで自作のREVIVE USBクローン完成!

あとは設定ツールから設定して普通にREVIVE USBとして使える。

友達に上げた本家REVIVE USBと交換してこようかな…

REVIVE USBはDIPサイズなのでゲームパッドとかだと組み込み場所に困るけど、SSOP20とかSOP20サイズのマイコンを使って自作すればかなり小さくできるかもしれない。
Arduino LeonardoとかDigisparkでもREVIVE USBみたいに使えるけど、やはりポーリングレート1000Hzはすごいかも。

2016年5月14日土曜日

REVIVE USBを自作してみた。その1

REVIVE USBっていうのは自作のUSB入力デバイスを作れちゃうUSBマイコン基板で、電子工作キットと組立済み基板として売ってる。
たしか4、5年前ぐらいに購入した記憶があるんだけど、ジャンクな格ゲーアケコンに組み込んだまま友人にあげてしまったような…

こいつがあれば低遅延のゲームコントローラが作れるので、格ゲーコンとかを自作してる人もいるみたい。ポーリングレートが1000Hzのゲームコントローラってなかなか無いかも?
基本的には12キーなんだけど、マトリクス配線用のファームウェアにすると36キーまでいけるので、FPS用にカスタマイズ可能な左手用キーボードとかも作れそう。

なんとこのREVIVE USB、Assembly Deskで回路やプログラムが公開されてる!

久しぶりに使いたくなってしまったのでREVIVE USBを自作してみることに。
部品リストはAssembly Deskに有る「キット作成方法・使用方法」の10ページ目に載ってる模様。
マイコンはUSB対応のPIC18F14K50を使用しているっぽい。
セラロックは手持ちがなかったのでクリスタル発振子を使ってみた。

ポリスイッチは一応USBポート保護のために入れておくことに。
0.17Aがなかったので0.2Aで代用。
PIC18F14K50は秋月で買ってきてもらったー

回路図が公開されていたので回路図通りに組み立て。
クロック発振子付けて、各ピンをプルアップしてるような簡単な回路。
VUSB端子には内蔵レギュレータ用のコンデンサ、あとはパスコンぐらいかな?

各ピンの1kのプルアップ抵抗と0.1uFのコンデンサ2つをチップ部品にしたことにより結構小さくなった。(一枚目の写真のディスクリートなコンデンサは結局チップ部品に置き割ってしまったというわけ。)
クロック発振子のコンデンサもICソケット内に入れることによって小型化…
マイクロUSBの基板のせいで長くなってしまったなぁ

REVIVE USBはMicrochipのUSB HIDブートローダを使っているみたいなので書換え用のジャンパが必要なんだけど、USBに指すときにだけ導通すればいいのでタクトスイッチにして裏面に付けてみた。
この位置だとスイッチを押しながらUSBケーブル差し込むの楽かなーと。
最初は一枚目に写ってるスライドスイッチにしようかと思っていたんだけど、小型化のためタクトスイッチにしてしまった。

IOのピンは12本+GNDで良さそうだったんだけど、一応5Vもだしてみた。
GND1本じゃ足りなかったかなぁ…

とりあえずハードウェアは完成したので次回はブートローダの書き込みとファームウェアの書込み

ちなみに一枚目の画像から使用した部品(SMD部品使ってるので1枚目の画像から少し変わってる。)
・PIC18F14K50 220円@秋月
・ポリスイッチ0.2A 48円@梅澤無線
・ICソケット 20Pin 30円@梅澤無線
・12Mhz&0.22pFコンデンサ eBayでたくさん買ったので今回使った分で20円ぐらい
・0608 0.1uF×2
・2012 1kΩ×12
・マイクロUSBブレークアウト基板
0.1uFと1kΩとマイクロUSBブレークアウト基板に関してもeBayでそこそこ購入してるので今回使った分で50円もしないかも。
ユニバーサル基板とかbootボタンは不要になった基板をバラして使った…