OpenBUILDS GRBL 1.1, OpenBuilds CONTROL v1.0.370 on Windows Every time I connect to the serial port (via pyserial), the controller is in Alarm state. I read that this is by design, because the microcontroller resets on every serial connection (by means of the flow control signals of serial port). But, if that is true, then how does the OpenBuilds CONTROL GUI not have this issue? I can connect then reconnect and not get the Alarm state on the subsequent connections! I tried sniffing the port, to see all the traffic, using com0com + a python script that reads prints and forwards in both directions. But the issue is that if I connect via the sniffer, then the Alarm is set, as seen from the MSG read from the port, even before I connect the OB GUI. So, what magic configuration does the GUI do when it opens the port? The one thing I noticed is that when OB GUI connects a second time (no alarm case), then the "Autoreset" method had an 'ok' response: [20:12:11] [ connect ] PORT INFO: Port is now open: COM5 - Attempting to detect Firmware [20:12:11] [ connect ] Checking for firmware on COM5 [20:12:11] [ connect ] Detecting Firmware: Method 1 (Autoreset) [20:12:11] [ ] ok [20:12:11] [ connect ] Detecting Firmware: Method 2 (Ctrl+X) [20:12:11] [ ] Grbl 1.1g ['$' for help] In the case when alarm is raised, the "Autoreset" method has no response printed. Any details on this "Autoreset" method? I tried passing ctsrts=False and dsrdtr=False to pyserial -- no difference.
Solved. s = serial.Serial() s.port = .... s.dsrdtr = False # this is not enough! s.setDTR(False) # this prevents the reset s.open() pyserial 3.5 on Windows, with Python 3.11.5 Credit: Disable DTR in pyserial from code