読者です 読者をやめる 読者になる 読者になる

レトロゲームは改造してなんぼ

レトロゲーム機をちょっと違った形で遊び倒す

FT232RLを使ってようやくAVRマイコンにデータを書き込めたお話

ATTinyなどAVRマイコンの開発をするためにライターを探していて、
当初はPICerFTを使って書き込めないかと頑張っていた。
けれど記載されている通り(と思っている)配線を組んでもどうにもデータが書き込めなかったので
別の方法を模索していたらavrdude-guiにて書き込める方法が見つかったのでメモ。

必要な物

  • FT232RL

秋月電子で購入可。組立済未組立のどちらでもOK

今回はATTiny2313

千秋ゼミにて提供されている"avrdude-GUI [YCIT Ver 1.5.0]"を使用。
ダウンロードするには掲示板へのユーザ登録が必要。

  • ブレッドボードとジャンパーワイヤー

抵抗とかトランジスタなどは必要ありません

配線

大いに参考にさせていただいたサイト
鉄道模型と電子工作~Arduino互換マイコン~

以下はFT232RLとATTiny2313の端子対応表

FT232RL ATTiny2313
VCC VCC
RI# /RESET
DSR# UCSK
DCD# MOSI
CTS# MISO
GND GND

配線後の写真(LチカするためにLEDとか抵抗とかも映り込んでます)
f:id:microkun:20160206142729j:plain:h300

実装

Atmel StudioまたはArduino IDEにてコーディング、そしてビルド
得られたhexをavrdude-gui経由で書き込む。
Atmel Studioで実装した場合、hexファイルはプロジェクトフォルダ配下に素直に出力されるが
Arduino IDEは標準ではWindowsのtempフォルダ(配下にランダムに命名されるフォルダ)に出力される。
コンパイル時のトレースログを出力させないと分かりづらい場所に出力されるので、それを避けるためには
必ずArduino IDEを終了させた状態で
C:\Users\<ユーザ名>\AppData\Local\Arduino15\preferences.txt
を開き、以下のパラメータを追記する。

build.path=(hexを出力させたいフォルダ)

あとはよしなにコーディングしてhexを書き込めばOK。
avrdude-gui自体の使い方は難しいものではないと思うので割愛します。

赤白ファミコン(後期版)をAV化改造 後編:端子回路の制作

前編記事はこちら。microkun.hatenablog.com

引き続いて、Multi-Out端子の回路を制作していく。

まずMulti-Out端子の仕様について。
ピンアサインは以下のサイトを参考にさせていただいた。
SFC MULTI_OUT
これを踏まえ、スーファミ用のコンポジット用AVケーブル(赤白黄色の端子のやつ)の
ゲーム機本体側の端子の中を見ると、上記サイトのピン番号を引用して

5:GND
6:GND
9:VIDEO
11:L_AUDIO
12:R_AUDIO

しか使われていないことがわかる(写真がなくて申し訳ないです。上手く撮影できなかった)
ファミコンステレオサウンドは対応していないのでL_AUDIOとR_AUDIOに同じ信号を与えてやればよい。
(擬似ステレオ化という改造が、他サイトで事例がたくさん存在しますが今回は対象外)
GNDはどうとでもできるので、端子の仕様としては結構シンプルなものです。

実際の回路設計については以下のサイトを参考にさせていただいた。
赤白ファミコンをこっそりとAV化する+縦縞対策
旧ファミコンAV化

回路図は上記のサイトを参照して頂いて、実際にユニバーサル基板で作るための設計図がこちら。
f:id:microkun:20151122115934p:plain
AUDIOは47μFのコンデンサを間に噛ますだけの簡単設計、
VIDEOは2SC1815トランジスタを中心に470μFのコンデンサ、100R、47Rの抵抗を使用しました。
いかんせんゲーム機内にそんなに余剰スペースがないので、できるだけ省スペースで設計したいところ。

で、出来上がったのがこんな感じ。
f:id:microkun:20151122120634j:plain:h300
実際はゲーム機内に組み込む際には画像上の余剰部分を削り落としている。

出来上がったら、本体基板のVIDEO、AUDIO、5Vと結線する。
ちなみに基板側はRFユニット近くの端子にこの情報を取り出すポイントがある。
f:id:microkun:20151122121655j:plain:h300
f:id:microkun:20151122124218j:plain

結線した状態がこんな感じ。
f:id:microkun:20151122124502j:plain:h300
できれば今回手作りしたモジュール一式をもっと本体中央に引っ込めたかった。

ここまでくれば、あとは本体に収納するだけ。
f:id:microkun:20151122124701j:plain:h300
f:id:microkun:20151122124743j:plain:h300
f:id:microkun:20151122124951j:plain:h300
f:id:microkun:20151122125017j:plain:h300

無事成功。映像も音声も表示されることが確認できました。
f:id:microkun:20151122125223j:plain

ちなみに記事には起こしていないけど、VIDEO回路を参考にさせていただいたサイトにて
縦縞除去の手法が書かれていたのであわせて実施している。
(PPUの21pinと2SA937を基板表側で空中配線で直結)
上記の写真は検証目的のものではないのでわかりづらいかもしれないけど、
以前と比べ明らかに縦縞がなくなっており、映像が綺麗。

赤白ファミコン(後期版)をAV化改造 前編:メイン基板の加工

初代赤白ファミコンをAV化(赤白黄色のコンポジット化)した際のメモを書き残します。
この改造は他のサイトでも散々事例がアップされているのですが、
うちが今回行ったのは「スーファミや64についてるMulti-Out端子をファミコンに移植」です。

f:id:microkun:20151122104044j:plain:h300
改造対象は赤白でおなじみの初代ファミコン
ただし、手前側のラベルの左端に「FF」のロゴが入ってる、いわゆる「後期型」です。

f:id:microkun:20151122104918j:plain:h300
f:id:microkun:20151122104923j:plain:h300
早速分解。画像は分解後の基板裏面と表面。
ちなみに初代ファミコン(ニューファミコンもかな?)は特殊ネジは使われてないので
普通のドライバーで簡単に開封することが出来ます。
後期型では、写真のように電源ユニットの発熱対策として大きなヒートシンクが装着されています。

f:id:microkun:20151122105949j:plain:h300
ヒートシンクは爪で引っかかってるだけで溶接はされていないので、
自分は精密マイナスドライバーを爪の隙間にねじ込んで強引に取り払いました。

f:id:microkun:20151122110000j:plain:h300
f:id:microkun:20151122110123j:plain:h300
ヒートシンク除去後の表裏。

この回路から、以下の赤く塗った部分は切り落としてもいいと素人判断。
f:id:microkun:20151122111407j:plain
電源周りは9v→5v三端子レギュレータを通すような回路を組めばいいらしいけど、
自分のスキルが不足していていじるのが怖かったため、次回改造するときのテーマとしたい。
とにかく、今回は電源周りはそのままということで。

以下が金ノコでヒートシンクごと基板を切り落としたあとの写真。
f:id:microkun:20151122111904j:plain:h300
ヒートシンク本来の目的を維持するために、できるだけ必要最小限で切り落とす。

こんな感じでMulti-Out端子を載せるイメージ。
ちなみに端子はジャンクなスーファミから抜き取った部品です。
f:id:microkun:20151122112208j:plain:h300

後編に続くmicrokun.hatenablog.com

Mintにmikutterをインストール

FirefoxTwitter見るのに限界を感じたので(PCのスペックも低いので)
Linux用のTwitterクライアントを入れようと思い検索し、mikutterを入れてみようと思った。
が、すんなり入ってくれなかったので、簡単にエビデンスを残しておく。

まずは、公式Wikiに書かれているインストール手順
apt-getでインストールと書かれているが、0.2.2という極端に低いバージョンなのでこれを拒否。
(2015/11/14時点の最新バージョンは3.2.9)
ソースからインストールすることを目指す。

が、ソースを落として展開してうんぬんというのが突然面倒くさく感じたので、
gitで開発版をダウンロードすることを思いつく。
git://toshia.dip.jp/mikutter.git
適当なところにgit cloneで落としてくる。
で、mikutter/mikutter.rbを起動しようとすると、そもそもrubyがインストールされていないことに気づいたのでインストールにとりかかる。

apt-getで落としてこようと思ったらバージョンが1.9となっており要件に満たないので
いろいろ調べて2.2.3をrbenv + ruby-buildでインストールすることに挑戦。
rbenvとruby-buildインストールの詳細は割愛してコマンドだけ以下に記載。

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ sudo ~/.rbenv/plugins/ruby-build/install.sh
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc

次にruby 2.2.3のインストールにトライ。

$ rbenv install 2.2.3
Downloading ruby-2.2.3.tar.gz...
Installing ruby-2.2.3...

BUILD FAILED (LinuxMint 17.2 using ruby-build 20151028)

Inspect or clean up the working tree at /tmp/ruby-build.20151114135523.20259
Results logged to /tmp/ruby-build.20151114135523.20259.log

Last 10 log lines:
installing capi-docs:         /home/-------/.rbenv/versions/2.2.3/share/doc/ruby
The Ruby openssl extension was not compiled.
The Ruby readline extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `apt-get install -y libssl-dev libreadline-dev` to fetch missing dependencies.

モジュールが足りないらしいので、最後に表示されていたapt-getのコマンドを実行してリトライ。
これでrubyがインストールされた。
ちなみに最後にrbenv globalも実行しておかないとダメだった。

$ rbenv global 2.2.3
$ ruby --version
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]

これでmikutter.rbを起動しようとするとまたエラー。
まだモジュールが足りないとのことで、gemを使って不足分をインストールしていく。
詳細は割愛。

$ gem install gtk2
$ rbenv exec gem install bundler --no-ri --no-rdoc
$ rbenv rehash
$ bundle install --path vendor/bundle

ここまでやって、やっと実行できるようになりました。
あとはお好みでプラグインを追加していくと良いらしい。
自分は以下のプラグインをインストール。

github.com
github.com
github.com

仮想アプライアンス版OpenVASの使い方

VirtualBoxに仮想アプライアンス版のOpenVASを導入する方法についてメモ。

VirtualBoxのコンソールを立ち上げて、ファイルメニューから「仮想アプライアンスのインポート」を選択し、
OpenVASのサイトからダウンロードしてきたOVAファイルを指定するだけで完了。
f:id:microkun:20151017113305p:plain

OpenVAS自体のアクセス方法について
仮想マシンを起動するだけでOK
ブラウザから仮想マシンIPアドレスを入力するだけでGreenboneのWebコンソールが表示される。
あとはよしなに利用してもらえればよいです。
IPアドレスはコンソールのログイン前の画面に表示されている。

ちなみに一度はコンソールにログインし、apt-get updateとapt-get upgradeは実施したほうが良さそう。
コンソールのログインID/PWはopenvas/openvas。
rootのパスワードは"root"

VirtualBox 5をインストールしてみた @ Linux Mint

とあるツールが使いたくなり、調べてみたらVirtualBoxで動く仮想アプライアンス版が提供されているということで、
ちょうど購入してる雑誌でネタになってたこともありVirtualBox 5をインストールしてみることにした。

以下手順だけ記載。

$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
$ sudo bash -c "echo 'deb http://download.virtualbox.org/virtualbox/debian trusty contrib' > /etc/apt/sources.list.d/virtualbox.list"
$ sudo apt-get update
$ sudo apt-get install dkms virtualbox-5.0
$ sudo usermod -a -G vboxusers (ユーザ名)

これでメニューに表示されるようになります。
f:id:microkun:20151015200504p:plain
f:id:microkun:20151015200534p:plain

仮想サーバ等のインストールは次の記事にて。

MintのFirefoxの検索エンジンがDuckDuckGoからGoogleになってる

MintのFirefoxを41にバージョンアップしたら、検索窓で検索した時のエンジンがDuckからGoogleに変わっていた、様な気がする。

どう頑張ってもGoogleはエンジンとして使えないと思ってたけど、Mint用のビルドする時に修正が漏れたかな?

さらっと検索した程度ではなぜこうなってしまったかの情報は得られず。

 

9/26追記

またFirefoxの更新が来てると思って更新したら、検索エンジンがDuckに戻ってた。
やっぱりバグだったんだな、と。