ずっと.NETframeworkを使ってました。簡単なアプリが多いのでいまでも支障はないのですが、WPFにするスキルもなくWFAを使い続けようと思っていた矢先に、.NETframeworkは長期サポート外ということが分かり、それではLTS版の.NET6にアプリを移行してみたらどうか、とやってみたらSerialPortがうまくいかないので解決するまでの覚書。 続きを読む…
ESP32-S3の開発にはPlatformIO(以降PIO)版ESP-IDFV5.1.1で行っていましたが、V6.1.0まで使えるようになったので今後のことも考えて移行することにします。
PIO版ESP-IDF V6は公式版ESP-IDF V5に相当し、公式版ではV4→V5で大幅に変更がありました。migrationの一覧はここ、詳細はここで。バージョンの値が近いのでややこしいです。
以前公式版とPIO版のVersionを混同してPCNTをレガシー表記で使った記事を書きましたが、今回の変更でそれも新表記に修正することになりました。
今回はADCについての覚書。キャリブレーションの効果も簡易的に測定しました。
2023/1/4 文章修正と内容訂正しました。
2023/4/12 ESP-IDFバージョンについての記述を追加しました。
公式版ESP-IDFのAPIはV4.4からV5へのバージョンアップで大幅に仕様が変わっていました。
PlatformIO版ESP-IDFはV6が公式版V5に相当します。これがややこしく、私も混同していましたので、以下のPCNTについての内容はPlatformIO版V5では公式版V5の記述ができない、という至極当然のことだったわけで、訂正いたします。
PCNTも含まれ、記述や関数名が変わっています。参考はここ
ところが、PlatformIOでESP32-S3をESP-IDF V5.1.1で開発してみると、新しい仕様のPCNTが使えない。無理やり「pulse_cnt.h」「pulse_cnt.c」を組み込んでも当然ながらframeworkにhalのドライバが存在しないのでリンカが通らない。なにより小手先の対策はESP-IDFのバージョンを変えるとフレームワークも一新されるので得策ではありません。
今回はレガシィ記述でPCNTを使うことにしました。その覚書です。
15年以上前から自作サイクロン集塵機を使っていますが、サイクロン用のパーツが結構出回っているのを発見したので、自作集塵機を新たに3号機とてグレードアップすることにしました。
2023/1/26更新 ターボファンの型式(推定)追加
VScode+PlatformIOで開発したコードは、PlatformIO→UpLoadで書き込めますがBuildも含まれるので複数枚書き込みには適しません。
そこで、VScodeが吐き出したコードを単体のFlashプログラマとして「esptool」で量産書き込みする覚書です。私の環境はESP32-S3ですが、ESP32全般でたぶん使えると思います。
Espressif IDEの公式HELPでは4.4.3ですが、2022/11現在のPlatformIOのESP-IDFの最新バージョンは5.2.0です。
ただ、ESP32-S3での5.2.0では、ブートからうまくいかないのでいろいろなバージョンを試しています。
バージョンを細かく設定する方法
最新バージョンはgitから
最新バージョンは、platformIO.iniのplatform項目にgitを直接指定します。
[env]
platform = https://github.com/platformio/platform-espressif32.git
これで最新バージョンが適用されます。適用後のPlatformIOのinstallを見るとV5.2.0+パッチが適用されていました。
常に更新されているようです。
過去バージョンは、platformio.iniで直接バージョン指定
過去バージョンが存在するバージョンは
https://github.com/platformio/platform-espressif32/releases
から確認できます。
ここから希望のバージョンをピックアップし、PlatformIOのplatform=espressif32に後に@x.x.xを追加します。
例としてV5.1.1なら
[env]
platform = espressif32@5.1.1
だんだん使いやすくなってるようです
まだまだ、いろいろ試さなければなりませんが、バージョン設定などの操作は徐々にやりやすくなってるみたいです。
ESP32-S3モジュールは相当魅力的ですが、情報量が少ないので、少しづつ自分なりに確認していきます。開発環境はVScode+PlatformIO ESP-IDF版です。
今回は、ESP32-S3-1-N16R8で、JTAG用のUSBをCDCデバイスとして設定してみた覚書です(windows限定です)。
2022/11/28追加 sdkconfig.xxxの更新方法
出始めから評判でしたが、やっと買ってみました。500円!

書き消し5万回、筆圧感知!
コレステリック液晶の一種で、電子ペーパーのように双安定性があるため、無電圧で状態を保持するので消去時のみ電流を必要とする超低消費電力機器、らしい。
仕事で使うよりも、リビングやダイニングでちょっとしたメニューなどのメモ書きや覚書に便利です。
贅沢を言わせて頂ければ、消去ボタンで全部消えてしまうので、部分消去できたら良いな、と思いましたが、500円でこれが手に入るのに驚きです。
こんなことは、すでに何回も痛い目にあっているのですが、ついついやってしまう。
今回も既存のプロジェクトをコピーして、ついつい「○○テスト」というフォルダ名にしてしまった。
案の定、正体不明のjavaエラーで構築が一向に終わらない。その様子です。
構築に成功しているプロジェクトをベースにしたはずが・・・
コンパイルは成功するのですが、最後のロードの先が進まない
Java lang.IlleagalArgumentException:・・・メッセージの後に進まない。

フォルダ名から日本語を抜いて解決
大見出しですでに言ってるので、それ以上はありませんが、MPLABXに限らず「うっかりフォルダ日本語名」は絶対やらないという縛りで解決するので、プロジェクトのフォルダ名ぐらいは頑張って英字で決めてゆきたいと思います。
私自身は英語不得意なので、カッコ悪いですけどローマ字表記で頑張ります。
「回転装置」→「kaitensouchi」、カッコ悪いですが、私には分かり易いので・・・
久々にPSoC1のプロジェクトを修正することになりました。開発環境はPSoCdesignerです。
メインPCではアンインストールしてあったので、再インストールです。
Windows11ではSVGビューワがうまく動かない
PSoC1は内部ブロックの設計にSVGviewerが使われているらしく、Windows11ではインストール時に不適合のメッセージがでます。実行させてもそこだけ抜けていました。
Windows7で動かそう
そこで、先日VMware Workstation 16 PlayerにインストールしたWindows7で実行させてみました。
結果は一発OK、USBをゲストに繋ぎ変えてMiniProg/MiniProg3も普通に動作しました。
めでたしめでたし