Had this error as well, and figured out a fix. know this is an old thread, just figured someone may come across it. All of this is after I replaced the purge unit, the timing strip, and was still locked out of service mode due to the error.
After fighting with this error for way too long, and even having a tech come out who couldn’t solve it, I finally got my PRO-6100 working again. Posting the full fix here so others don’t go through the same headache.
I removed the encoder sensor from the carriage and swapped it with one from a working 6100.
The printer immediately booted and worked which told me the issue was related to encoder reading.
I thoroughly cleaned the old encoder sensor (the one I removed), put it back in place, and the printer came back up again. So the sensor itself wasn’t dead. Ran a CR Check, and it passed the first time, did a few other things, then another CR Check just to play it safe, and it displayed the same error again.
This was the big clue, I inspected the sensor, and paid close attention to the position of the timing strip. The timing strip was drifting as the carriage approached the far-right end (near the purge unit). At that end of travel, the strip was barely rubbing / contacting the back side of the encoder sensor.
That slight contact was enough to distort encoder pulses for a split second, and the firmware interpreted it as a purge/lock cam error, which triggers EC31-2F1C instantly.
The metal upright/bracket that positions the timing strip was very slightly out of alignment (not sure how / when that happened). I bent the bracket maybe half a degree to re-center the strip in the middle of the encoder window.
Once the strip sat perfectly centered, no rubbing, no drifting, all tests passed:
CR Check
CR Unlock / Lock
Purge test
Service mode functions
Full ink fill (at one point i tried a new print head)
I ran multiple tests afterward, and everything remained stable.
The printer is back up and running, and doing its thing. Although it agitated the ink for over 30 minutes both last night and again this morning, but it is working perfectly now.