PoBD

푸조/시트로앵 디젤 OBD 스캐너 앱 개발 이야기

전체 글 135

<3단계> iOS,Android 겸용 Peugeot OBD앱 - 에러 삭제 추가(4)

너무 쉽게 생각했나 봅니다.FAP앱이나, Car Scanner ELM OBD2앱에서 오류코드 확인 가능하고 삭제 기능 있어서 간단하게 구현할 수 있을것이라 생각했습니다. 그런데 기능은 간단해 보이는데 뒤에 숨겨진 엄청난(?) 작업이 기다리고 있었습니다.이유인 즉, PSA(지금은 스텔란티스...) 계열 차량에 장착된 1) 엔진 ECU가 다르다... (차종은 다르지만 같은 엔진 ECU 사용도 합니다.)2) Diagnostic Trouble Code(DTC). 즉, 고장 코드는 ECU 의존성이 있습니다.그렇다면 대략적인 엔진 ECU는 몇개나 될까요? 대략 86개정도 됩니다. (링크 참조)(엔진 ECU만 그렇고 다른 ECU 모두 합치면 대략 200개 정도 되는것 같습니다.) 위에서 설명한 ECU 리스트는 단지..

<3단계> iOS,Android 겸용 Peugeot OBD앱 개선 버전(3)

(이전글) iOS,Android 겸용 Peugeot OBD앱 초기버전 완성(1) 1개월가량 손놓고 지내다가 다시 작업을 시작해서 원하는 항목은 모두 적용했습니다.그렇다고 끝난것은 아니고...디테일한 작업(?!)이 남았고 3주정도 더 작업해야 할것 같습니다.각설하고...업로드한 영상을 보는게 빠를듯합니다.  중간중간 붉은색(?)값이 나오는 것은 data를 불러오는 시차 때문에 약간씩 오류가 있어서 인데, 수정해야 할것 같습니다.(실제 오류는 아님)그밖에 동영상 마지막 부분에 보면 특정 항목의 제목이나 단위 부분을 누르면 해당 항목을 영문으로 표시하거나 항목에 대한 부가 설명이 보여지도록 하나씩 추가하고 있습니다. 추가로 개선된 항목은 아래와 같습니다.첫번째로 개선한 부분은 OBD용 ELM327칩 초기화 ..

푸조(peugeot) 디젤 차량에 적합한 미니 OBD(ELM327) 스캐너 인터페이스

오늘은 앱 성능과 관련된 OBD 스캐너에 대해서 정리했습니다.만들고 있는 앱이 어느정도 완성이 되었고, 앱과 함께 사용시 전체 성능과 상관관계가 크기 때문에 사용해본 경험을 토데로 이야기 해보려고 합니다. 이전에 잠깐 언급했던 관련 글이 있는데...(https://elite508.tistory.com/33)  이것을 보완한 내용이며, 당시에는 잘 몰랐던 내용을 추가했습니다.1)지금까지 사용해본 미니 OBD 스캐너는 총 6개이며, 국내에서 구입한 것은 없고, 모두 알리에서 구매해서 사용했습니다.(싸니까...)가장 저렴한 것은 3천대에서 비싼것은 21000원(가장 좋은 것)  정도 했습니다. 위의 사진에서 (1)~(6)번까지 번호를 붙여 놓았는데, 각각 어디서 얼마에 구매했고 푸조 디젤차량에 사..

(Diagbox 활용) TPMS 센서 비활성(차단)/설정 방법

Diagbox에서 TPMS 센서 비활성화 방법에 대해서 정리했습니다. 제 차량에는 TPMS 센서가 없는 모델이라, 최종 검증은 못하였으며, "타이어 공기압 감지 기능의 차단" 메뉴가 있었고 셋팅 가능함을 확인했습니다. 1. Diagbox로 차량에 접속후 "차량의 고객 인도" 메뉴 클릭 2. 액세서리 메뉴 클릭 3. 공기압 부족 감지 메뉴 클릭 4. 타이어 공기압 감지 기능의 차단 5. 키를 OFF --> ON 하여 설정 완료

<3단계> Peugeot OBD앱 수정 및 메모리 리크 해결(2)

ECU 센서 정보는 Diagbox에서 제공하는 항목 참고하여 만들었습니다. Diagbox에서 아래 항목에 접근하는 방법은 네이버 카페에 올려 놓은 글을 링크해 놓겠습니다. 참조 : (508 1세대 2011) 푸조 진단기 사용 후기(5) - ECU 및 파라메터 종류 엔진 ECU 선택 → "STANDRD PARAMETER MEASUREMENTS" 선택 → FUEL CIRCUIT INFORMATION 선택하면 총 15개 파라메터에 대한 정보 확인이 가능합니다.(아래 영상) 아래 동영상을 보면 푸조 공식 서비스 진단기는 0.5초 간격으로 센서 data 가져 오는것으로 추정됩니다. 아마도 ECU에 부담을 적게 주기위한 조치인것 같습니다. 아래 항목은 위에서 확인했던 "Fuel circuit information"..

<3단계> iOS, Android 겸용 Peugeot OBD앱 초기 버전 완성(1)

"(2023.12.29 작성글) 어떻게 만들어야 할까?"에 정리했듯이.. 짧으면 3개월 길면 6개월 예상하고 시작했는데, 벌써 3개월이 훌쩍 흘러갔습니다. 그간 많은 작업을 했지만, 게으른 탓에 정리하지 못해서.... 3개월치 작업 과정 정리하려니 엄두가 나지 않아 우선 결과만 정리하려고 합니다. 아래 내용처럼 기존에 분석했던 자료를 참조해서 앱을 만들었습니다. FAP OBD2앱(android)CAN data 분석 도전! FAP OBD2앱 분석용 peugeot 508용 "가상 엔진 ECU 만들다!!!" FAP OBD2앱 동작 원리 완벽 분석!! Flutter / Dart로 구현하다! 속도 때문에 C++로 라이브러리 만들어서 사용할까? 하다가, 수정하고 빌드하는게 번거로울것 같아 dart로 구현했습니다. ..

<2단계 > Android, Mac OS, iOS: OBDII(ELM327) 동일 코드 실행(8)

안드로이드에서 동작하는 것을 확인했으니, Mac OS에는 어떤 차이가 있는지 비교했습니다. Mac mini (M1)에서 실행하면 안드로이드 폰과 다르게 Service 0xFFF1, 0xFFF1, 0xFFF2만 가능한것으로 나옵니다. 0x1800, 0x1801은 어차피 사용하지 않으므로 상관없지만, 여기서 알 수 있는 것은 안드로이드가 더많은 기능을 제공한다는 것입니다. AT명령은 안드로이드폰과 동일하게 전송되고 수신 되는것을 확인했습니다. iOS에서 실행하면 어떨까요? Mac mini(M1)에서와 동일한 메뉴가 나오고, 완벽하게 동작합니다!!! 하나의 소스 코드로 3개의 OS에서 동작하다니... 정말 대단합니다. VSC에서 ios 빌드 및 디버깅하려면 아래 명령 수행 : xcode가 먼저 실행되어 있어야..

<2단계> Flutter_blue_plus 예제로 OBDII(ELM327) Notify 확인(7)

가장 궁금했던, OBDII ELM327칩이 전송 받은 명령에 대해 응답하는가? (Notify 기능)에 대해 확인했습니다. 이전글에서 진행했던것 처럼 AT 명령을 string으로 보내고 응답 받도록 코드를 수정했습니다. 각각 배열의 값을 변경해서 아래 4가지 서비스 선택후 결과 확인하면, (3) 조건만 응답 확인이 가능합니다. (1) services[0], characteristics[0] = 0x2A00 (2) services[1], characteristics[0] = 0x2A05 (3) services[2], characteristics[0] = 0xFFF1 (4) services[2], characteristics[1] = 0xFFF2 (참고)Visual studio code의 "디버그 콘솔창"에서..

<2단계> Flutter_blue_plus 예제 코드로 OBDII write 명령 실행(6)

example 코드 수정해서 OBDII 명령(ELM327 AT 명령) 보내기 위해, 아래와 같이 "device_screen.dart" 코드를 수정하여 전송 버튼 만듭니다. 실행하면 아래 처럼 우측 상단에 작은 버튼 하나 생성됩니다. 위의 버튼을 눌렀을 때 실행될수 있도록 _sendElm327Command() 함수 만들어줍니다. 아래 두줄로 Service UUID = 0x1801의 Characteristic 0x2A05 선택해줍니다. BluetoothService basicObiidiService = services[1]; BluetoothCharacteristic pidCharacteristic = basicObiidiService.characteristics[0]; 원하는 기능을 선택하려면 현재 사용..

<2단계> Flutter_blue_plus 예제 android 실행 결과와 API 정리(5)

(참조) flutter_blue_plus: ^1.31.2 (코드) https://github.com/boskokg/flutter_blue_plus (1)VSC에서 example의 main.dart 우클릭후 실행하거나 (2)터미널 창에서 직접 "flutter run" 실행 둘다 가능합니다. 실행하면에서 (1)버튼은 BT 스킨 기능이며, (2)원하는 OBDII 동글과 연결합니다. (3)MTU 사이즈 변경, (4)서비스 종류 검색 기능입니다. 위의 순서대로 진행해서 (4)Get service 누루면 서비스 UUID가 3개 나옵니다. 각각의 내용을 열어보면, 0x1800과 0x1801은 OBD 통신에 사용할 수 없고(이전글 참조) 0xFFF0에 있는 0xFFF1과 0xFFF2중 0XFFF1만 사용 가능합니다. ..