先日Grbl(FluidNC)化したレーザー加工機、ある日使おうと思ったら上手く動作しなくなっていました。

症状
加工機の電源を入れ、PCのソフト(LaserWeb4)から接続してホーミングする所までは今まで通りで正常でした。
次にジョギングでレーザーヘッドの位置を動かそうとしたら、左右には動きますが前後には手前方向にしか進みません。奥方向に進めようとしても手前に進んでしまうのです。
なんでなのか調べる
手前方向には特に異音もなく進むのでY軸モーター(及びその配線)は正常でしょう。
となるとモータードライバまわりを調べる必要があります。
このレーザー加工機のモータードライバはA4988モジュールを使っているのでDIR端子がHかLかで進む方向を決めておき、STEP信号にパルスを入れる度にステッピングモーターが1ステップ進む様になっています。
という事でY軸ドライバのDIR端子を見ると・・・Hレベルが3.3Vが出る筈のところ2.1Vしか出ていません。

念のためモータードライバをソケットから抜いてもHレベルは変わらず。またマイコン基板を加工機から外しブレッドボード上で動かしても変わりません。オシロスコープで見ても直流の2.1Vが出ています。
こりゃマイコンボードが壊れたんでしょうかね?
因みにY軸のDIR信号に使っている端子はGPIO0です。一方X軸ではGPIO14端子を使っており、こちらのHレベルは正常に3.3Vが出ています。
なおマイコンボードはAliexpressにて、3枚959円で購入したものにつき壊れる事もあるかもしれません。 ならば別の基板を持ってきてFluidNCのシステムを入れ、一通り設定を入力してブレッドボード上で動作させてみましょう・・・あれ?これも2.1Vですね。
念のため、Arduinoプログラム環境からGPIO0にHを出力させるだけのプログラムを実行すると、ちゃんと3.3Vが出ています。
なんでだぁ?
ESP32にはソフトウェア的に2.1Vを出す仕組みがあるんでしょうか?データーシートを見てもそんな機能は見つけられません。
対策
暫く悩んだのですが早く加工を進めたいのでY軸DIR信号をGPIO19に変更します。
FluidNCの設定を変更し、基板の配線も繋ぎ直しました。
これによりY軸DIR出力のHレベルは3.3Vとなり加工機のヘッドも正常に前後に動く様になりました。
で、なんで?
結局根本原因は何だったんでしょう?
実行するプログラム次第では正常電圧が出るのでESP32が壊れたという事ではない気がします。
しかしプログラムによってHレベルが下がる事ってあるんでしょうか?
オシロスコープでも見ましたがPWM的な動作をしてデューティのせいで下がって見える訳でもありませんでした。
どなたか分かる方、おられますか?
