ESP-32 ATコマンド ピン設定方法 ESP-AT


ESP-32を通信用として、ATコマンドで動かす際に、ピンを変更したい人向けの記事です。
特に、私のように、RXTXを間違えた人必見です。

ESP-32は初期ファームウェアとして、ATコマンドで動くファームウェアが入っています。
これはGPIO17がTX、GPIO16がRXとなるようになっています。

TX⇔RX
とつなぐために、相手方を入れ子にする必要があります。
私はここをよく間違えます。

今回は、間違えた、GR-Mango用LoraWifiBoardのファームウェアを作ってみましょう

今回、GPIO17をRXへ、GPIO16をTXにします。
ポートのセッティングは、GithubのこのCSVに入っています。
https://github.com/espressif/esp-at/blob/master/components/customized_partitions/raw_data/factory_param/factory_param_data.csv

それでは、ファームを作りましょう。
と言いたいところですが、これを作るには、Linux環境を用意する方が簡単です。
(Windowsでやろうとして3時間かかりましたが、できませんでした)

こんな人の為に、なんと仮想環境を用意してくれています
virtual machine (for windows 64bits user): http://download.espressif.com/esp_share/env/ubuntu1804.ova

これをダウンロードして、VMWareなどで動かします。

make menuconfig

起動します。
いろいろなサイトを見たところ、ホームディレクトリにespディレクトリを作りその中にesp-atのディレクトリを作るようです。

ターミナルを起動します。

mkdir esp32
cd esp32
git clone https://github.com/espressif/esp-at
cd esp-at

ここで、make menuconfigと入れます。
以下はターミナルを立ち上げなおしたのでesp32は不要です。

cd esp32/esp-at
make menuconfig

と入れると、画面のようなGUIのセッティング情報が出てきます。

ここで、必要な方は設定をいじってみてください。

factory_param_data.csvの設定

私は、今回のピン設定のみを行います。
ピン設定は、
esp-at/tree/master/components/customized_partitions/raw_data/factory_param
の中のfactory_param_data.csvです。

Ubuntuのエクスプローラーで、素直に開けます。


そして、ピン設定を変更します。

Saveして終了します。

コンパイル

最後に、ターミナルで

make

でコンパイルを開始します。

今回、必要なのはfactory_param.binになります。
保存場所はesp-at/build/customized_partitions/factory_param.binです。

純粋なLinux環境ですと、このまま書き込み可能ですが、仮想環境の場合、少し面倒なので、
ファイルをWindows環境へコピーしてください。

Flash Download Tools

ここからは、WindowsのFlash Download Toolsを使います。
まず、Flash Download ToolsとATファイルをダウンロードします。

Flash Download Tools (ESP8266 & ESP32)

https://www.espressif.com/en/support/download/other-tools

ESP32-WROOM-32 AT Bin V2.0

https://www.espressif.com/en/support/download/at


この際に、先ほど作成したfactory_param.binを読み込めるようにしておきます。

書き込み

Flash Download Toolsを起動し、ESP-32を選択します。

必要な項目を入れていきます。
四角をクリックし、ファイルを選択、
右の@以下に書き込む番地を指定し、
一番左のチェックを入れます。

私は以下の構成にしました。

--flash_mode dio --flash_freq 40m --flash_size detect
0x1000 bootloader/bootloader.bin
0x20000 at_customize.bin
0x30000 customized_partitions/factory_param.bin
0xf000 phy_init_data.bin
0x100000 esp-at.bin
0x8000 partitions_at.bin

COMポートは、接続先を指定、BauDは115200で問題ありません。
以上を入力し、Startを押します

この時、必ずDownLoadモードにしておきます。
(GPIO0を押しながら、リセットを押し、最後にGPIO0を離す)

以上で、プログレスバーが進み、最後にFinishとなれば成功です。

以上で、GPIOの設定が完了しました。
接続して、ATと打つとOKという返事が返って来れば設定が完了したことになります。

なお、作成したfactory_param.binはこちらで公開しています。
https://github.com/taisirou/esp32-AT-Pin-Cnfiguraion-for-change-GPIO16-17