This is probably a multi-topic question (firmware, hardware, libraries).
I want to ask about the background for implementing the CAN protocol (on D1, D2 of the Photon).
The reason for asking is that I would like to implement K-Line (ISO 9141 and/or KWP 2000), which are older automotive protocols than CAN. Any insight into the design decisions for CAN would certainly be valuable for K-Line.
Is there a specific reason for CAN being implemented only on D1/D2 of the Photon? This would help in answering if K-Line would have to be implemented on the same pins, or could be done on other pins.
Were there any particular challenges for the CAN portion of the firmware? I would assume the same challenges would be faced in implementing K-Line.
Is there a reason other automotive protocols were not built in?
I am taking my inspiration from the Carloop product (www.carloop.io which implements CAN), and would like to do something similar on the K-Line protocol. I already have some ideas of what the hardware could be, but want to make sure I take the best approach.