Infrared-WiFi-HTTP bidirectional proxy device
Eagle C++ C Other Perl Makefile Other
Clone or download

README.md

IRKit Device

IRKit device and IRKit SDK lets you control your home electronics from your iOS and Android devices. IRKit device has a Infrared LED and receiver, and a WiFi module inside. Internet connected devices can make IRKit send IR signals for you.

Get IRKit Device

In Japan: amazon.co.jp
World wide shipping available: switch-science

Schematics

Basically, it's a Arduino Leonardo fork with following modifications:

  • added a WiFi module ( GainSpan 's WiFi module ).
  • added Infrared Receiver, Infrared LED and some LEDs.

Firmware

It's basically a normal Arduino sketch.

See IRKit.ino

Board

Top

Bottom

Case

See Case

Extend it!

Following Arduino pins are pulled out for you.

  • D2,D3,D4,D5,D12,TXLED
  • A0,A1,A2,A3

See IRKit.sch, eagle schematic file 's CN2

How to update firmware

You can use Arduino IDE to write IRKit's firmware.
Follow this procedure (for MacOS).

  1. Download, install and run Arduino IDE

  2. Connect IRKit using USB Micro-B cable to Mac.

  3. Navigate to Arduino IDE Menu and select Tools -> Board -> "Arduino Leonardo".

  4. Navigate to Arduino IDE Menu and select Tools -> Serial Port -> "/dev/tty.usbmodemXXXX".

    XXXX part should differ on your environment.

  5. Download latest zip file from IRKit device tags.

  6. Unzip it and open firmware/src/IRKit/ directory.

  7. Rename version.template to version.c .

    FYI. Product version is embedded here in official builds.

  8. Double click IRKit.ino in the same directory.

  9. Navigate to Arduino IDE Menu and click File -> Upload, to write into IRKit.

  10. All Done!

Example fork of IRKit firmware

@acourreges created a branch settings-led-cloud that enables you to configure:

  • Status LED behaviour (you might want to turn the LED off when the device is idle?)
  • Enable/Disable cloud control (you might want IRKit not to connect to Internet?)

See config.h for details.

How to get logs

IRKit logs what it's doing to USB serial, and you can use Arduino IDE to see it.
Follow this procedure (for MacOS).

  1. Download, install and run Arduino IDE

  2. Connect IRKit using USB Micro-B cable to Mac.

  3. Navigate to Arduino IDE Menu and select Tools -> Serial Port -> "/dev/tty.usbmodemXXXX".

    XXXX part should differ on your environment.

  4. Navigate to Arduino IDE Menu and select Tools -> Serial Monitor.

  5. Change new window's right-bottom settings to "No line ending" and "115200 baud", and close the window.

  6. Reconnect IRKit and immediately start Serial Monitor again.

    This is to collect logs as soon as IRKit startups.

  7. Copy and send logs to IRKit developer, thanks!

ファームウェアアップデート方法

IRKitのファームウェアは、 Arduino IDE を使って書き込むことができます。

出荷時のファームウェアバージョンによって、どのファームウェアバージョンまでアップデートできるかが変わります。
以下の手順で現在のバージョンを確認し、対応するバージョンを使用してください。

現在のバージョン 対応する最新のバージョン
1.3.3以下 1.3.3
1.3.4以上 最新

IRKitシンプルリモコン を起動し、左上のボタンから設定画面を開くと、以下の画像の赤の四角のようにファームウェアバージョンを表示します。

IRKit-firmware-version

以下がファームウェアのアップデート方法です(MacOS編)。

  1. Arduino IDE をダウンロードしてインストール後、起動します。

  2. IRKitをUSB Micro-Bケーブルを使ってMacに接続します。

  3. Arduino IDEのメニューから ツール -> マイコンボード -> "Arduino Leonardo" を選びます。

  4. Arduino IDEのメニューから ツール -> シリアルポート -> "/dev/tty.usbmodemXXXX" を選びます。

    環境によってXXXXの部分やその前後が異なる場合があります。

  5. ファームウェアをダウンロードし、zipファイルを解凍します。

  6. 解凍したディレクトリ内にある firmware/src/IRKit/ ディレクトリを開きます。

  7. 同ディレクトリ内の version.templateversion.c にリネームします。

    参考) 製品版ではIRKitのバージョン情報をここに埋め込んでいます。

  8. 同ディレクトリ内の GSwifi.cpp 内に埋め込んであるWi-Fiアクセスポイントのパスワードを書き換えます。

    https://github.com/irkit/device/blob/master/firmware/src/IRKit/GSwifi.cpp#L1096
    XXXXXXXXXX を任意の文字列に書き換えてください。
    参考) IRKitの出荷前に書き換えてから出荷しています。

  9. 同ディレクトリ内の IRKit.ino をダブルクリックして Arduino IDE で開きます。

  10. Arduino IDEのメニューから ファイル -> マイコンボードに書き込む を押してIRKitに書き込みます。

  11. 完了!

プログラムメモリについて

IRKitのマイコン ATmega32U4 はプログラムメモリを 32kB 積んでいますが、
IRKitのファームウェアでそのほぼ全てを使用しています。

ファームウェアに改造を行い、機能追加する場合には、
不必要な機能のログ出力や機能自体を削ってください。

log.hの22-26行目 辺りをコメントアウトすることで、ログ出力を止めることができます。

IRKitファームウェアのFork例

@acourregessettings-led-cloudでは、以下を変更可能にしています。

  • ステータスLEDの動作 (赤外線を送受信していない時にはLEDを消灯しておきたい??)
  • クラウドとの接続を有効/無効 (IRKitをインターネットに接続せずに使いたい??)

詳しくは config.h を見てください。

@shokaitempe_sensorブランチ、sensors_jsonブランチでは、
温度センサからの入力、アナログピンの値を読み、IRKit内蔵のWebサーバからHTTP GETで取得できるようにしています。

詳しくは IRKitのファームウェアを改造して温度センサーを追加した をご覧ください。

ログ取得方法

IRKitは、USB Micro-Bを使いパソコンまたはMacに接続すると、動作ログを取得することができます。
以下の手順でログを取得します(MacOS編)。

  1. Arduino IDE をダウンロードしてインストール後、起動します。

  2. IRKitをUSB Micro-Bケーブルを使ってMacに接続します。

  3. Arduino IDEのメニューから ツール -> シリアルポート -> "/dev/tty.usbmodemXXXX" を選びます。

    環境によってXXXXの部分やその前後が異なる場合があります。

  4. Arduino IDEのメニューから ツール -> シリアルモニタ を選びます。

  5. 新しく開いたウィンドウの右下の設定を "改行なし" "115200baud" に変更し、一度ウィンドウを閉じます。

  6. IRKitのUSB Micro-Bケーブルを外し、再度接続した直後に、上記同様に シリアルモニタ を開きます。

    IRKit起動直後からのログを取得するためです。

  7. ウィンドウに表示される文字列をコピーして開発者へメールしてください。ありがとうございます!

License

Firmware is licensed under GPLv2 or later.
See details in firmware/LICENSE.

Schematics are licensed under Creative Commons Attribution Share-Alike license.
See details in hardware/LICENSE.

Case is licensed under Creative Commons Attribution NonCommercial Share-Alike license.
See details in case/LICENSE.