Payload (hekate-ipl) を Adafruit Trinket M0 IDE 用にコンパイルして書き込む
- 2018/07/08
- 17:33
めっちゃ久しぶりの更新です。
現在、Nintendo SwitchやPS Vita、PS4のhack sceneが盛り上がってますね。
その中で今回はSwitch関係の記事を書こうと思います。
記事と言ってもマニュアルみたいなもんですが・・・(^^ゞ
少しでも参考になればと思います。
先日、ついにSX PROとSX OSが発売されました。
海外では自作でPCを使用せずにPayloadを送り込むドングルを製作している方もいます。
Original Source: [Tutorial] Crea tu propio dongle portatil para cargar payloads (it is easy)
今回はそのドングルを自作してみようと思います。 (パクリ & アレンジ)
現在、多数の部品を手配中で一部の部品しか揃っていないため、まだ本製作まではできませんが
準備としてタイトルに書いたように Adafruit Trinket M0 にPayloadを書き込む手順を記事にします。
スペイン語が分かる方はOriginal Sourceをみてください(^^ゞ
ドングル製作に必要な物は実際に製作された@Cloud0835さんのサイトを参考にしてください。
yyoosskのメモ:ニンテンドースイッチ 自作usbドングル作成(trinket m0)
ちょっと前置きが長くなりましたが、そろそろ始めましょう・・・
【用意するもの】
・Adafruit Trinket M0 - for use with CircuitPython & Arduino IDE (Amazonその他で購入可)

・adafruit_drivers_2.2.0.0.exe https://github.com/adafruit/Adafruit_Windows_Drivers
・arduino-1.8.5-windows https://www.arduino.cc/en/Main/Software/


・Hex Workshop Hex Editor http://www.bpsoft.com/downloads/

・sam-fusee-launcher https://github.com/atlas44/sam-fusee-launcher/
・hekate - CTCaer mod https://github.com/CTCaer/hekate/releases
【準備編】
以下のようにファイルが用意できたと思います。

【次の2つをPCにインストール】
1.Adafruit Trinket M0 ドライバ (adafruit_drivers_2.2.0.0.exe)
2.Hex Workshop Hex Editor (hw_v680.exe)
※標準インストールで良いと思いますが、私は念のためフルインストールしました(^^ゞ
【次の2つを解凍してPCに配置】
3.arduino-1.8.5-windows.zip (分かり易く「C:\」に「Switch_dongle」フォルダを作成し配置)
配置後Switch_dongleフォルダ内に「main」というフォルダを作成してください。

4.sam-fusee-launcher-master.zip 内の「src」フォルダから「main.cpp」と「payload.h」を取り出して
先程作成した「main」フォルダ内に配置してください。

5.配置した「main.cpp」の拡張子を「.ino」に変更 (Arduino 1.8.5で認識させるため)

【設定編】
01.arduino-1.8.5内の「arduino.exe」を右クリックから「管理者として実行(A)」で起動。
※通常起動での動作確認はしてません。 まあ念のためです。

Arduino 1.8.5起動直後の画面

02.環境設定を行うので「ファイル」→「環境設定」をクリック。

03.チェックボックスは画像のように設定し、「追加のボードマネージャのURL」の右ボタンをクリック。

04.別窓が開くので次のURLをコピペし「OK」で閉じてください。
環境設定画面の「追加のボードマネージャのURL」に反映されていると思います。
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json

05.Adafruit Trinket M0とPCをUSBケーブルで接続します。
接続時はピンクと緑のLEDが点灯します。

06.USBコネクタの反対側にタクトスイッチ (リセットボタン) があるので2回押します。
PCで正常に認識されていれば赤と緑(2個)が点灯します。

07.Arduino 1.8.5にAdafruit Trinket M0を認識させます。

08.自動でPCのCOMポートへ割り当てられているのでメニューから選択します。
ポート番号はお使いのPC環境に依存するので割り当てられたポートを選択してください。

09.書き込みに必要なパッケージをインストールします。
(これが正常にインストールできないと書き込み時にエラーが出ます)
「ツール」→「ボード」→「ボードマネージャ」 (メニュー最上部) をクリック。

10.別窓で「ボードマネージャ」が開き、上部の検索窓に「SAMD」と入力します。
画像のように該当する2つのパッケージの最新版をインストールしてください。
該当パッケージをクリックするとバージョンが選択できます。

インストールが無事に完了したら「閉じる」ボタンで「ボードマネージャ」を閉じてください。
以上で設定は終了です。
【コンパイル編】
01.Arduino 1.8.5の「ファイル」→「開く」から「main」フォルダ内の「main.ino」を開いてください。


02.二重にArduino 1.8.5が開くので「main」ではない方を「×」で閉じてください。

03.「main」タブの「#include <usb.h>」を「#include <Usb.h>」のように大文字の「U」に変更。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

04.「payload.h」タブに切り替えます。
「const PROGMEM byte fuseeBin[FUSEE_BIN_SIZE] = { 」以下を全て削除します。



05.Arduino 1.8.5はそのまま放置してHex Workshopを起動します。

06.「File」→「Open」で最初にダウンロードした「hekate_ctcaer_3.1.bin」を開きます。

07.「Edit」→「Select All」でデータ全体を選択状態にします。


08.「Edit」→「Copy As」→「C Source」をクリックしてSourceをコピーします。

09.Arduino 1.8.5に戻って「payload.h」タブ内の
「const PROGMEM byte fuseeBin[FUSEE_BIN_SIZE] = { 」以下に
コピーしたSourceを貼り付けます。
「#define FUSEE_BIN_SIZE 38168」の数字を「unsigned char rawData[125765]」の数字に
書き換えてください。

10.「#define FUSEE_BIN_SIZE 125765」に書き換えたら赤枠内を削除してください。

11.削除後の画面


12.ここで「ファイル」→「保存」を行います。

13.「スケッチ」→「検証・コンパイル」で正常に編集されたか確認します。
ツールバーの「レ」ボタンでも構いません。

14.コンパイルが正常に終了すると画像の表示になります。
サイズと使用率はペイロードのサイズで変わると思います。
「コンパイルが完了しました。」と出れば問題ありません。

15.Adafruit Trinket M0は書き込み可能状態のはずなので続けて書き込み処理を行います。
「スケッチ」→「マイコンボードに書き込む」でAdafruit Trinket M0に書き込みます。
ツールバーの「⇒」ボタンでも構いません。

16.書き込みエラー無く書き込みが終わると画像のようになります。
「ボードへの書き込みが完了しました。」と出れば問題ありません。
Adafruit Trinket M0は書き込みモードから通常モードへ自動で切り替わります。

ここで書き込みエラーが発生する場合は【設定編】の9、10を再度行ってください。
パッケージが正常にインストールされていない可能性があります。
動作確認は@Cloud0835さんが実際にためしてくれました。 起動しました!
以上です。
お疲れ様でした。
誤字・脱字は当たり前なので勝手に読み替えてください(^^ゞ
疲れたぁ~
現在、Nintendo SwitchやPS Vita、PS4のhack sceneが盛り上がってますね。
その中で今回はSwitch関係の記事を書こうと思います。
記事と言ってもマニュアルみたいなもんですが・・・(^^ゞ
少しでも参考になればと思います。
先日、ついにSX PROとSX OSが発売されました。
海外では自作でPCを使用せずにPayloadを送り込むドングルを製作している方もいます。
Original Source: [Tutorial] Crea tu propio dongle portatil para cargar payloads (it is easy)
今回はそのドングルを自作してみようと思います。 (パクリ & アレンジ)
現在、多数の部品を手配中で一部の部品しか揃っていないため、まだ本製作まではできませんが
準備としてタイトルに書いたように Adafruit Trinket M0 にPayloadを書き込む手順を記事にします。
スペイン語が分かる方はOriginal Sourceをみてください(^^ゞ
ドングル製作に必要な物は実際に製作された@Cloud0835さんのサイトを参考にしてください。
yyoosskのメモ:ニンテンドースイッチ 自作usbドングル作成(trinket m0)
ちょっと前置きが長くなりましたが、そろそろ始めましょう・・・
【用意するもの】
・Adafruit Trinket M0 - for use with CircuitPython & Arduino IDE (Amazonその他で購入可)

・adafruit_drivers_2.2.0.0.exe https://github.com/adafruit/Adafruit_Windows_Drivers
・arduino-1.8.5-windows https://www.arduino.cc/en/Main/Software/


・Hex Workshop Hex Editor http://www.bpsoft.com/downloads/

・sam-fusee-launcher https://github.com/atlas44/sam-fusee-launcher/
・hekate - CTCaer mod https://github.com/CTCaer/hekate/releases
【準備編】
以下のようにファイルが用意できたと思います。

【次の2つをPCにインストール】
1.Adafruit Trinket M0 ドライバ (adafruit_drivers_2.2.0.0.exe)
2.Hex Workshop Hex Editor (hw_v680.exe)
※標準インストールで良いと思いますが、私は念のためフルインストールしました(^^ゞ
【次の2つを解凍してPCに配置】
3.arduino-1.8.5-windows.zip (分かり易く「C:\」に「Switch_dongle」フォルダを作成し配置)
配置後Switch_dongleフォルダ内に「main」というフォルダを作成してください。

4.sam-fusee-launcher-master.zip 内の「src」フォルダから「main.cpp」と「payload.h」を取り出して
先程作成した「main」フォルダ内に配置してください。

5.配置した「main.cpp」の拡張子を「.ino」に変更 (Arduino 1.8.5で認識させるため)

【設定編】
01.arduino-1.8.5内の「arduino.exe」を右クリックから「管理者として実行(A)」で起動。
※通常起動での動作確認はしてません。 まあ念のためです。

Arduino 1.8.5起動直後の画面

02.環境設定を行うので「ファイル」→「環境設定」をクリック。

03.チェックボックスは画像のように設定し、「追加のボードマネージャのURL」の右ボタンをクリック。

04.別窓が開くので次のURLをコピペし「OK」で閉じてください。
環境設定画面の「追加のボードマネージャのURL」に反映されていると思います。
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json

05.Adafruit Trinket M0とPCをUSBケーブルで接続します。
接続時はピンクと緑のLEDが点灯します。

06.USBコネクタの反対側にタクトスイッチ (リセットボタン) があるので2回押します。
PCで正常に認識されていれば赤と緑(2個)が点灯します。

07.Arduino 1.8.5にAdafruit Trinket M0を認識させます。

08.自動でPCのCOMポートへ割り当てられているのでメニューから選択します。
ポート番号はお使いのPC環境に依存するので割り当てられたポートを選択してください。

09.書き込みに必要なパッケージをインストールします。
(これが正常にインストールできないと書き込み時にエラーが出ます)
「ツール」→「ボード」→「ボードマネージャ」 (メニュー最上部) をクリック。

10.別窓で「ボードマネージャ」が開き、上部の検索窓に「SAMD」と入力します。
画像のように該当する2つのパッケージの最新版をインストールしてください。
該当パッケージをクリックするとバージョンが選択できます。

インストールが無事に完了したら「閉じる」ボタンで「ボードマネージャ」を閉じてください。
以上で設定は終了です。
【コンパイル編】
01.Arduino 1.8.5の「ファイル」→「開く」から「main」フォルダ内の「main.ino」を開いてください。


02.二重にArduino 1.8.5が開くので「main」ではない方を「×」で閉じてください。

03.「main」タブの「#include <usb.h>

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

04.「payload.h」タブに切り替えます。
「const PROGMEM byte fuseeBin[FUSEE_BIN_SIZE] = { 」以下を全て削除します。



05.Arduino 1.8.5はそのまま放置してHex Workshopを起動します。

06.「File」→「Open」で最初にダウンロードした「hekate_ctcaer_3.1.bin」を開きます。

07.「Edit」→「Select All」でデータ全体を選択状態にします。


08.「Edit」→「Copy As」→「C Source」をクリックしてSourceをコピーします。

09.Arduino 1.8.5に戻って「payload.h」タブ内の
「const PROGMEM byte fuseeBin[FUSEE_BIN_SIZE] = { 」以下に
コピーしたSourceを貼り付けます。
「#define FUSEE_BIN_SIZE 38168」の数字を「unsigned char rawData[125765]」の数字に
書き換えてください。

10.「#define FUSEE_BIN_SIZE 125765」に書き換えたら赤枠内を削除してください。

11.削除後の画面


12.ここで「ファイル」→「保存」を行います。

13.「スケッチ」→「検証・コンパイル」で正常に編集されたか確認します。
ツールバーの「レ」ボタンでも構いません。

14.コンパイルが正常に終了すると画像の表示になります。
サイズと使用率はペイロードのサイズで変わると思います。
「コンパイルが完了しました。」と出れば問題ありません。

15.Adafruit Trinket M0は書き込み可能状態のはずなので続けて書き込み処理を行います。
「スケッチ」→「マイコンボードに書き込む」でAdafruit Trinket M0に書き込みます。
ツールバーの「⇒」ボタンでも構いません。

16.書き込みエラー無く書き込みが終わると画像のようになります。
「ボードへの書き込みが完了しました。」と出れば問題ありません。
Adafruit Trinket M0は書き込みモードから通常モードへ自動で切り替わります。

ここで書き込みエラーが発生する場合は【設定編】の9、10を再度行ってください。
パッケージが正常にインストールされていない可能性があります。
動作確認は@Cloud0835さんが実際にためしてくれました。 起動しました!
以上です。
お疲れ様でした。
誤字・脱字は当たり前なので勝手に読み替えてください(^^ゞ
疲れたぁ~
- テーマ:Nintendo Switch
- ジャンル:ゲーム
- カテゴリ:Switch
- CM:0
- TB:0
