Leaving the USB cable connected prevents MMC from booting
Leaving the USB cable connected when powering up the AFC board causes MMC to boot into the serial bootloader. This happens because the RTS line is held '1' (output cmos level, not to be confused with the signal level set by software) when the serial port is unused (closed) and this signal is inverted by IC22 before going to P2.10, causing the MMC micro to enter the bootloader when reseting (my fault).
To fix it, we should remove IC22, R441 and R446, so P2.10 will be held high when the USB cable is connected but the serial port is closed or when the USB cable is unplugged. Opening the serial port causes DTR and RTS to go to '0' at the same time, C306 should prevent any unwanted reset in this case, but any manual reset while the serial port is open will cause the MMC micro to enter to the bootloader unless you instruct the serial terminal software to set RTS and DTR to '1' again (to '0' from the software perspective).
With the modifications I mentioned, here is a python script for putting the microcontroller into bootloader mode:
#!/usr/bin/env python3 import serial import time serport = serial.Serial() serport.setPort("/dev/ttyUSB3") serport.open() # Activate the bootloader serport.setRTS(1) # set RTS line to 0V serport.setDTR(0) # set DTR line to 3.3V time.sleep(0.1) serport.setDTR(1) # set DTR line to 0V