CHDKと呼ばれるCanonデジカメ改造ファームを入れて、IXYでインターバル撮影を開放するまでの手順をまとめました。
キャンプで使っていたタイムラプス撮影用(というかインターバル撮影専用)のPowerShotS100が壊れました。レンズエラーでレンズが戻らなくなりました。実家に転がっていたIXY 920ISという昔のコンデジを借りてきて、こいつに同じ役割をお願いしたいと思います。
こいつのいいところは、S100とバッテリーが同じ。ってだけ。サードパーティー製も含めて4つもバッテリー持ってるので、この線で攻めます。
CHDKとは
CHDKとはキヤノン製のカメラのための改造ファームです。IXY程度のコンデジでは封じられているRAW記録や、高速シャッター、スクリプトを呼ぶことでインターバル撮影、HDR等の機能が使えるようになります。自作スクリプトも作れます。最後に省エネ版、改造インターバル撮影スクリプトも置いておきます。
個人的には雑にインターバル撮影がしたいだけなのですが、色々できちゃいます。RAW現像も面白そうなので、これもそのうち遊びたいと思います。
手順
本体型番を調べる
まず型番を調べます。って本体に書いてあるじゃん。と思うかもしれませんが、海外モデルの名前でファームが置いてあるので、海外モデルの型番を調べる必要があります。丁寧にメーカーに対応表があるので、そこで調べます。
今回のモデルは、IXY DIGITAL 920 ISなので、DIGITAL IXUS 870 ISという名前になります。ブランド名も違えば、数字も違う。ルールは不明です。
5000円程度で買えてしまうようです…。なんとも。
SDカード用意
SDカードの準備です。ここによると、どうも2011年を境にファームが起動できるSDカードのフォーマットが違うようです。
FAT32パーティションが使えるかどうかの違いが出ます。このデジカメ2009年製なので、4G以下のSDカードを用意する必要がありそうです。これをカメラで物理フォーマットをかけるか、パソコン上で、FATでフォーマットするかして用意しておきます。この機種の場合、FAT32でフォーマットしてしまうと、うまく起動しませんので注意。
とはいえ、後述のブータブルになるか否かだけの問題のようなので、FAT32の16GのSDカードでも、多少手間は増えるものの使えました。容量的に4Gは心配なので、多少起動に手間がかかってもこっちの方がいい場合もありそうです。
本体ファームのバージョン確認
正式に入っている本体ファームのバージョンを確認します。SDカードのルート直下(SDカードのドライブの一番上)に、ver.reqという名前でなんでもいいのでファイルをおいておき、そのSDカードを入れてカメラを立ち上げます。その後、FUNCSET+DISPを同時押しすると、ソフトのバージョンが表示されます。こんな感じ。
CHDKファームダウンロード
前記の本体ファームのバージョンに応じて
にある、Stable(安定版)かUnstable New Development(最新版)のどちらか好きな方を落としてきます。今回はixus870_sd880-101a-1.4.1-5280-full.zipを使うことにします。
他のカメラもそうですが、ぶっちゃけ本体ファームのバージョン間違えても「起動しないだけ」なので、バージョン確認なしで山勘で選んでもいいかと思います。
インストール
といってもダウンロードしたファイルを解凍して、SDカードにコピーするだけです。
CHDK起動
このままだと、SDカードがカメラブータブル(起動可能)な状態になっていません。このSDカードをカメラブータブルにする方法は複数あるようですが、
にある Method 2 – Using CHDK itself to make the SD card bootable.で行きます。つまりカメラ単独でブータブル状態にします。英語が読めればこの通りやってもらえればいいのですが、必要箇所を要約します。SDカードをunlock状態(普通の状態)にしたうえで、カメラに装着。その後、カメラを「再生ボタン」で起動させます。この再生ボタン起動というのが、Canonのカメラのファームアップのためのおまじないのようで、このようにして起動させると、MENUの一番左のタブの再生タブの一番下に「Firm Update」ってメニューが出てきます。
その後これをぽちっと押すと、アップデートするかい?って聞いてくるので、OKを押すとCHDKが起動します。
その後CHDKのロゴが表示され、あたかも普通に起動したかのような状態になります。そこでALTキーを押します。このALTキーと呼ばれるキーですが、機種によって違うようですが、PRINT-SHORTCUT or PLAYがほとんどのようです。この子は背面の一番上にあるPRINT-SHORCUTキーがそれでした。
その後CHDK menuから、Miscellaneous stuff -‘> SD Card’ -> Make Card Bootableの順でメニューを進んで、ブータブル化が完了です。
このブータブル化をしなくてもCHDKの機能自体は使えてしまうので、毎回ここで書いた再生ボタン起動させて、ファームアップデートのメニューからCHDKを呼べば、FAT32のSDカードを使っても写真の記録はできるようです。試してませんが、4Gを超える領域にも写真記録できるのではないかと予想しています。
にも詳細記載があります。
その後電源落として、SDカードをlock状態(爪を下げた書き込みロック状態)にしてあげて、そのSDカードを使ってカメラを起動させるとオートでCHDKが起動します。このロック状態で写真が記録されたり、削除できたりするのがとても気持ち悪いですが、そういう仕様のようです。
このオートでCHDKが起動することをブータブルと呼ぶようですね。
このCreate card with two partitionsメニューででかいSDカードでもブータブルにできるのかな?と思いましたが、どうも4Gパーティションを複数作るだけのようです。
CHDK cannot self-boot from SDHC flash cards (without formatting them FIRST to Fat16). Any SDHC card greater than 4gb should be partitioned. One solution is to split a 8GB SDHC card into two 4GB partitions. This option will create two 4GB partitions on the SDHC card and allow two installations of CHDK which can self boot.
とのこと。どうやらダメですね。おとなしく4Gのものを使うか、ブータブルはあきらめて都度再生ボタンでのカメラ起動から、ファームアップの画面でのCHDK起動しかなさそうです。ちなみに自分はこのファームアップからの起動を使っています。
インターバル撮影
これはスクリプト(Script)という機能を使います。カメラの一連の動作が記述されたテキストで、自分で好きなように動作を記述することができます。デフォルトでも多くのスクリプトが用意されています。
インターバル撮影スクリプト
その中で今回はINTERVAL.LUAというファイルをチョイスします。インターバルの単位は秒。1を設定したところでそこまで高速にインターバルは刻めませんでしたが、いったん最速の1を設定しました。
その後backでメニューを抜ければ準備は完了。あとは構図を決めてシャッターを切るとカシャカシャ撮り続けてくれます。撮影モードや画質の設定は、カメラの正規のメニューから設定したそれが反映されます。オートで撮れば暗いところで勝手にフラッシュもたかれます。JPEGのサイズ、画質設定も反映されます。
スクリプトの改造
ただこのスクリプト、毎回オートフォーカスは動くし、ディスプレイはつきっぱなし。これを止めてあげることで、省エネを図ります。
まず、通常のカメラの設定(MENUボタン)から、「撮影の確認」をOFFにしておきましょう。あと「シャッター音」もOFFがいいでしょう。そのうえで以下のように改造したスクリプトを、/CHDK/SCRIPTSの下においてあげます。オリジナルのスクリプトに、ほんのちょっと書き足しただけです。全文コピーして適当なファイル名.luaとして保存すればOKです。
--[[
@title Intervalometer 2
@chdk_version 1.3
@param a = interval (sec)
@default a 15
@range a 1 3600
--]]
press("shoot_half")
set_aflock(1)
release("shoot_half")
set_exit_key("no_key")
set_lcd_display(0)
repeat
start = get_tick_count()
shoot()
sleep(a*1000 - (get_tick_count() - start) - 100)
wait_click(100)
until not(is_key("no_key"))
set_lcd_display(1)
set_aflock(0)
まず、シャッター速度マイナスが選べたのでそれを@rangeで1秒からに是正しました。
次にAFをロックしました。まず半押し状態からフォーカスを決めて、そこでロックさせています。たぶんうまく行っていると思います。
その後ディスプレイを消しています。そのうえでループの停止条件を付けました。サンプルは無限ループで、停止後の後処理が書けなかったので。
ループの中でボタン待ちをしていて、ボタンが押されたらループを抜けています。その後ディスプレイをつけて、AFのロックを解除しています。
これで、AFが動かず、ディスプレイも消えた状態が作れました。バッテリー寿命が延びると思いたいです。AEもロックできそうですが、夕暮れのキャンプ場とかそんなのが被写体なので、ここではロックさせません。
ここに凝ったスクリプトがたくさんあります。ココの Time Lapse Script One これを参考にしました。このスクリプトの機能限定版みたいな感じ。
まとめ
約10年前のコンデジをインターバル撮影専用機として復活させました。キャンプ場で雑に扱っても心苦しくないです。以前記事にしたように、キャンプ場でタイムラプス動画を取るのが好きなので、それ専用機として再度活躍してもらうことにします。
コメント