마지막으로 검토했던 오픈 소스코드입니다.
(세번째) Arduino-psa-diag ← (hw) arduino 사용
; Peugeot 엔지니어 출신이 만든것으로 추정됩니다. 찾아본 자료중에 가장 전문적인 오픈 소스입니다.
< 실행환경 >
-mac mini (M1)
-arduino IDE
<사전 준비물>
-Arduino (uno 사용했습니다)
-MCP2515 SPI CAN 버스 모듈 (Arduino와 함께 MCP2515 SPI CAN 버스 모듈을 사용하는 방법)
1) 소스 코드 다운로드하고.. git clone https://github.com/ludwig-v/arduino-psa-diag.git ← 다운로드시 내부에 libraries가 있음
2) Arduino IDE에서 MCP2515 사용할 수 있도록 Custom 헤더 파일 포함합니다.
3)MCP2515 제품 사양 확인 (8Mhz or 16Mhz 제품)
4) 엔진 시뮬레이터와 연결(이전글 참조)
5) SW 수정 및 실행결과
;푸조 차량의 어떤 ECU와 통신할지 Frame ID 결정(여기서는 엔진 ecu로 변경)
;작성자분이 얼마나 푸조 엔진에 대한 전문가 인지 소스코드를 보면 알 수 있습니다. (놀라웠습니다.) 놀랍도록 정확하게 동작합니다.
6)( 참고 할만한 내용) query vs response 체계
저도 잘 모르는 부분이 있었는데, 푸조 엔진에서 data를 주고 받을 때 필요한 전송/응답 체계에 대한 내용이 있습니다.
워낙 난수표 같은 data만 오고 가는데... 그 의미를 파악하는데 많은 도움이 됩니다.
그밖에, Dump 모드라는 것을 제공하여
Frame ID와 응답 data를 보기 쉽게(? - 여전히 어렵지만..) 표시해줍니다.
<검토 결과>
이번에 검토한 오프 소스는 Python-CAN(파이썬) 라이브리의 푸조 전용 C++ 버전입니다.
이전에 제가 만들어서 올렸던 것(이전글 참조)과 동일한데 C++로 만들어져있습니다.
단, OBD(ELM327)명령을 사용하는 것이 아닌, CAN Bus 신호를 사용하는 것이 특징입니다.
지금까지 총 3개의 C++로된 오픈 소스 코드를 검토했습니다.
H/W와 S/W 모두를 알아야 접근이 가능하기 때문에 상당한 시간이 소요된것 같습니다. (대략 2개월??)
< 1단계 > 기본 기술 학습 완료했습니다.
1) C 나 C++로 만들어진 오픈 소스 코드 분석
2) 임베디드 소형 PC에 올려서 동작 확인( Arduino or ESP32 )
다음에는 실제로 스마트폰을 사용해서 전송/응답 받는 과정 정리할 예정입니다.
(Dart /Flutter 활용)
<2단계>
다음편에 계속....
'Peugeot OBD app 만들기 도전' 카테고리의 다른 글
<2단계> Flutter : 푸조 전용 OBD앱 제작- 새로운 언어에 막히다(1) (1) | 2024.01.10 |
---|---|
<2단계> Flutter로 푸조 전용 OBD ELM327앱 만들기 (1) | 2024.01.09 |
(1단계)오픈 소스 :OBD2 C++ 활용 ELM327 명령 보내고 받기(2)-4 (0) | 2024.01.07 |
(1단계) 오픈 소스 분석 : ELMduino- ELM327 명령 송수신(2)-3 (0) | 2024.01.06 |
(1단계)OBDII open 소스 코드 분석 : ELMduino BT/WiFi 통신 문제(2)-2 (0) | 2024.01.05 |