Looks like I finally got it to connect and run the program. Sat in the car for about 20 minutes letting it do it's thing until it got progressively slower until it looked like the program froze. Gonna give it another try again tomorrow.
Did some more poking around today. Realized that Arduino has a built in serial monitor. Horray, don't have to screw around with Putty.
Anyway, it seems like Teensy is accessing MCP2515 too fast because I keep getting a message enter setting mode fail. The only time it actually manages to initialize and proceed is if I drop the CPU speed right down to 24 MHZ. I am gonna reattempt to crack it again tomorrow.
Use +12v from OBD port and DC-DC converter to +5. MCP may consume enough power to overrun USB. Even if CAN-controller itself seems to work, its transceiver may have not enough power to drive CAN lines.
Also there are a lot of fake or broken MCP2515 chips on the market. I got 8 of them in last batch, 3 did not work out of the box in one way or another
The code also supports a built-in CAN-controller in Teensy, I used a SN65HVD230 transceiver, which also does not require level shifter.
Got 2 new MCP2515 units. Same issue. Only talks at 24 MHZ. Tried running it at that speed. Same problem as before. PIN verification failed. I don't think it's actually talking to the CEM because the part number it pulls up initially is 86 followed by a bunch of zeros.
This may be a dumb question but do I need to have 2 MCP2515 units for in car cracking or just the optional unit shown in the diagram? Does it use both HS and LS lines or HS is only needed for cracking while on the bench?