if radio._id2 is not False: + # lower the timeout here as this radios are reseting due to timeout + radio.pipe.setTimeout(0.05) + # query & receive the extra ID _send(radio, _make_frame("S", 0x3DF0, 16)) id2 = _rawrecv(radio, 21)This just means that you're reading too much here, right? Do the radios have different sized responses? Can you not read the appropriate amount here to avoid the timeout entirely?