こんばんは!

先週の日曜日、
ジャパンラグビーリーグワン2022-23プレーオフトーナメント 準決勝②
は、BS日テレで観戦しました。

サントリーサンゴリアスは、3つの幻のトライで惜敗です。

それから、3位決定戦では地元(町田市)に練習グラウンドを持つキヤノンイーグルスが勝った!!!
S.H.のデクラークが大活躍。

本日の決勝戦は、日テレ地上波で観戦。もちろんパナソニックワイルドナイツ(旧東京三洋のチーム)を応援しました。

クボタスピアーズは、強いですね。。。
クボタがあそこまで強く無かったら、例年通りにパナソニックとサントリーの決勝戦だったと思います。

プレーオフに残った4つのチームですが、プレースタイルで2つに分けられると思います。
フィジカル系:クボタとキヤノン
日本のラグビーっぽさ系:パナソニックとサントリー

熱く観戦させて頂きました。

さてと、

で紹介したESP32 NAT Router Extendedがメジャーバージョンアップ(v4からv5)された様です。

前回紹介したバージョンは、v4.1.2でした。

最新版は、

とのことです。同時にバイナリも公開されています。
それらのバイナリは、フラシュダウンロードツールでターゲットデバイスにダウンロードして使います。ビルドの環境を持たない方向けですね。

v5.0.0をダウンロードして展開(解凍)してから、Visual Studio Code + PlatformIO(v3.1.1)の環境でビルドしてみました。

ビルド一発で通ったのですが、私の環境では幾つかの課題が残っています。

①APPLY CHANGESすると、
Header fields are too long
になって設定が出来ない。
右差し 原因は幾つか考えられるそうです。その内の1つであるブラウザのCookieをクリアしても改善せず。

②APのアドレスを192.168.4.1以外に設定をすると、WIFI SCANを行った後に、HTTPサーバーのメイン画面が表示されなくなります。
うっかりWIFI SCANを行ってしまったら、再度バイナリーをターゲットデバイスのフラッシュメモリにダウンロードしてから再設定が必要になります。

set_sta [sta_ssid] [sta_password]
set_ap  [ap_ssid] [ap_password]
set_ap_ip xxx.xxx.xxx.xxx

 

①、②に関しては、

を参照願います。
②に関してですが、WIFI SCANしたデータをフラッシュメモリ上に.txtファイルで格納しますが、その際に何かわるさが起こっている様です。OOM (メモリの書き込みアドレス逸脱)とか。右差し 仮説なので検証が必要です。

各種設定用のUIを提供するHTTPサーバー機能が使えませんが、別な方法(シリアルコンソール)で代替可能です。また、Router機能としては問題なしです。

上差しhash値は、オリジナルのままです。※
 

③Interpreting the on board LED

If the ESP32 is connected to the upstream AP then the on board LED should be on, otherwise off. If there are devices connected to the ESP32 then the on board LED will keep blinking as many times as the number of devices connected.

For example:

One device connected to the ESP32, and the ESP32 is connected to upstream:

*****.*****

Two devices are connected to the ESP32, but the ESP32 is not connected to upstream:

....*.*....
が機能しません。従って前回同様にパッチを当ててビルドしました。

余談になりますが、
void *led_status_thread(void *p)
の初期化部分

    //gpio_reset_pin(BLINK_GPIO);

    //gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
は、
 

void app_main(void)

{

    initialize_nvs();

 

    gpio_reset_pin(BLINK_GPIO);                               //

    gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);    //

に移動しました。

ターゲットデバイス(ESP32)のフラッシュメモリのサイズが、8MBの場合に、
board_upload.flash_size = 8MB           ;
board_upload.maximum_size = 8388608     ;
の2行をplatformio.iniに追記するとことで、IDEがそれを認識する様になります。


TBC

おまけ:今週の火曜(5/16)朝に勤務先から観えた富士山

※ ハッシュ値
ハッシュ値は元のデータの長さによらず一定の長さとなっており、同じデータからは必ず同じハッシュ値が得られる。
ハッシュ値とは、元になるデータから一定の計算手順により求められた固定長の値。
その性質から暗号や認証、データ構造などに応用されている。
ハッシュ値を求めるための計算手順のことをハッシュ関数、要約関数、メッセージダイジェスト関数などという。
同一のデータから変換されるハッシュ値は常に同一の結果となるため、変換後は元に戻せない性質(不可逆性)があることが特徴

既にお気づきの方も居ると思いますが、HASHって
HASHED POTETO、HASH BROWN
のHASHみたいですね。と書くと何となくイメージが湧きませんか。

ESP32 NAT Router Extended v5.0.0に手を入れてビルドして得られた
0x00001000 to 0x00006fff... bootloader.bin
0x00008000 to 0x00008fff... partitions.bin
0x0000e000 to 0x0000ffff...  ota_data_initial.bin
0x00010000 to 0x00157fff... firmware.bin
の4つのバイナリを合わせて圧縮して得られた.zipファイルのhash値を取ってみました。

上差し
左上は、PowerShellでGet-FileHash関数を使ってSHA256のhash値を取った様子
右側は、Pythonでhash値を取った様子

いずれのケースでも、
Algorithm : SHA256 を例にとると、
Hash      : 97029DFBD6648B252FFBC5CB47A43CF515281FB62AE56964892FB704AFC8D410
で一致しています。当たり前なのですが。(笑)