Quick summary: Does anyone else see that the Carloop retransmits messages forever if they are unacknowledged.
Detail ...
My Carloop receives and filters messages as expected, so I'm doing some testing with transmitting messages from Carloop to the OBDII bus.
If a CAN-bus transmitter doesn't see its Ack bit set (by a receiver), the message is automatically retransmitted by the Photon's CAN transmitter hardware (this is part of the CAN standard). I'm doing testing in advance of putting this into my car, so I realize the message won't receive an Ack. My test set-up is Carloop transmitting into a 60 Ω resistor (the equivalent of the two 120 Ω CAN bus termination resistors in parallel). Also "on the bus" is a standard OBDII Bluetooth interface.
I see that when the OBDII Bluetooth interface transmits, it sends the same message a total of 12 times (since it too is not receiving an Ack), so this is expected behaviour.
But transmitting just one message from the Carloop results in it sending forever. Reading the documentation for the Particle Photon's CAN interface (which seems to be the 1,361-page Reference Manual RM0033, here) shows on page 796 that the maximum number of retransmissions should be 255, followed by a long pause. Perhaps the Photon's CAN bus driver is doing this retransmission after the 255 done by the hardware, but I couldn't find that code (it must be buried in the interrupt handler).
While I'm sure the CAN interface is very mature and well tested hardware, something is unexpected here (which certainly could include me doing something wrong), so I'm wondering if others have seen retransmissions forever when using the Carloop stand-alone, not in a car.