Description
Chrome v60 breaks Parallax IDE's ability to communicate with the BASIC Stamp.
Chrome v61 makes it even worse.
Identification process misbehaves on Chrome v60.
On Chrome v45...v59, the start of the BS2-IC identification process (Tx and Rx lines) looks like this:
(Remember, the BS2-IC has a feedback resistor between Tx and Rx, so transmissions (Tx) from the host are reflected back on Rx, making these screenshots a little confusingly redundant)
In the above image, the host transmits "B" (0x42) and the BS2-IC responds with 0xBE... after some delay, the host transmits "S" (0x53) and the BS2-IC responds with 0xAD, and so on.
On Chrome v60, it looks like this:
The "B" and "S" can clearly be seen immediately following each other, then there's an "0" (0x30) following that, which is really the likely result of the host transmitting "2" at the same moment the BS2-IC is responding to the "B" with 0xBE... the two collide (because of the feedback resistor) resulting in the electrical mashup result of "0" (0x30).
A review of the code leads me now to the conclusion that Parallax IDE isn't intentionally delaying between the "B", "S", and "2" characters (or if it is, I've missed it somehow), but that it may have been just a lucky happenstance that some optimizations in Chrome v60 have suddenly eliminated (causing faster transmission).
Important
The intended protocol specifies that the host sends each identification character ("B", "S", "2") one-byte-at-a-time and looks for the proper response to each transmitted character in-between... otherwise it should give up and move on; however, in light of the new behavior (and reviewing the code) it appears Parallax IDE wasn't doing it exactly this way, or this behavior wouldn't have occurred.
Identification process fails further on Chrome v61.
See Issue #327.