I just assembled my M4 and am seeing a similar issue with blinking red light when I first connect. But my error message is about encoder. Here it is, please help:
Serial Messages
Index.html Version: 0.87
[MSG:INFO: Channel auto report interval set to 50 ms]
[MSG:INFO: FluidNC v0.87 (Maslow-Main-ec171155-dirty)]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:maslow.yaml]
[MSG:WARN: Ignored key dc_servo]
[MSG:WARN: Ignored key cs_pin]
[MSG:WARN: microsteps value 0 constrained to range (1,256)]
[MSG:WARN: Ignored key cs_pin]
[MSG:WARN: microsteps value 0 constrained to range (1,256)]
[MSG:INFO: Machine Maslow S3 Board]
[MSG:INFO: Board Maslow]
[MSG:INFO: UART1 Tx:gpio.1 Rx:gpio.2 RTS:NO_PIN Baud:115200]
[MSG:INFO: SPI SCK:gpio.12 MOSI:gpio.11 MISO:gpio.13]
[MSG:INFO: SD Card cs_pin:gpio.10 detect:NO_PIN freq:8000000]
[MSG:INFO: Stepping:Timed Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:240ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (-2438.400,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: Axis Y (-1219.200,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: Axis Z (-100.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:0 Step:gpio.15 Dir:gpio.16 Disable:NO_PIN R:0.110]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:1 Step:gpio.46 Dir:gpio.38 Disable:NO_PIN R:0.110]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:home]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting…]
[MSG:INFO: Connecting…]
[MSG:INFO: Connecting…]
[MSG:INFO: Connected - IP is 192.168.0.150]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://maslow.local/]
[MSG:INFO: SSDP Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
Index.html Version: 0.87
[MSG:INFO: Firmware Version: 0.87]
[MSG:INFO: I2C Timeout: ]
[MSG:INFO: 10]
[MSG:INFO: All tests passed on Top Left]
[MSG:INFO: All tests passed on Top Right]
[MSG:INFO: All tests passed on Bottom Left]
[MSG:WARN: Encoder read failure on Bottom Right]
[MSG:WARN: Encoder not found on Bottom Right]
[MSG:ERR: Encoder not found on Bottom Right]