Com um cabo ELM consegues ler a CAN, o problema é que fora o diagnostico de erros,PID's,etc... em que o ELM sabe o que fazer, ou seja, sabe o que pedir ao MCP, mas quando tentas ler uma linha de CAN em tempo real a procura de valores já se torna mais difícil...
No entanto, consegues usar um cabo ELM para ler o que queres, tens é que saber qual é a ID do controlador e estar a ler apenas esse, assim já simplifica as coisas.
A vantagem da can shield, é que não usa o ELM como "intermediário" para falar com o MCP, tem logo o MCP a disposição o que tem imensas vantagens para comunicação CAN quando comparado a um cabo ELM.
Para o que vocês querem fazer, a melhor maneira é com um can shield saber qual o sinal que querem ler e enviar, e começar a trabalhar a partir dai.
Tem é que ter em atenção que muitos projectos que existem na net, são apenas de leitura da can, como foi dito em cima, por exemplo ler os botões do volante e executar alguma coisa fora da rede CAN.
Vocês querem exactamente o contrario, ler fora da rede CAN e injectar informação na rede CAN do carro o que já não vai ser assim tão fácil, mas tudo se faz com vontade.