전체 글 118

(1단계) 오픈 소스 분석 : ELMduino- ELM327 명령 송수신(2)-3

ELMduion 라이브러리 이해 하는 가장 빠른 방법은, ELM327 명령을 보내고 응답 받는 간단한 터미널 활용하고, ESP-PRG 연결해서 코드가 실행되는 것을 하나씩 따라 가는 것입니다. 간단한 터미널 예제는 이미 있고, 부분 수정하면 즉시 사용 가능합니다. (참고예제) https://github.com/PowerBroker2/ELMduino/blob/master/examples/ESP8266_test/ESP8266_test.ino 이제 OBD 명령어(ELM327칩) 전달하고 어떻게 실행되는지 학습할 수 있는 도구가 하나 생겼습니다. 주석문에 나와있는 명령을 하나씩 실행해 보면 엔진 Data 잘 불러오는 것을 확인할 수 있습니다. 이제 코드 학습할 준비가 모두되었습니다. ELMduino 라이브러리 ..

(1단계)OBDII open 소스 코드 분석 : ELMduino BT/WiFi 통신 문제(2)-2

OBDII 동글과 ESP32 Bluetooth/wifi 통신 활용한 ELMduino 라이브러리 실행시 경험한 문제점 2가지 정리합니다. 1) OBD 동글과 BT 통신시 문제점 “ESP32_test.ino”로 돌려보면 이상한 경고 문이 나오긴 하지만 정상 동작함. → ELM327 명령 TEST는 성공함 (문제점) "ASSERT_WARN(1 8), in lc_task.c at line 1408" → 메시지가 지속 나옵니다. 왜 발생하는지 이유를 모릅니다 (스마트폰에서 상용 OBD앱으로 통신하면 아무런 문제가 없는 것으로 봐서, ESP32 문제로 추정됩니다.) (참고자료1) https://github.com/PowerBroker2/ELMduino/issues/43 : 유사한 문제가 언급되어 있습니다. (참고자..

(1단계)OBD open 소스 분석(Mac mini): esp32-S3 디버깅 후기(2)-1

ESP32-S3로 하면, ESP-PROG 없이 디버깅 가능함. ← 처음부터 이것으로 하면 좋을듯 합니다. (설치 방법 참고) https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/resources.html 비용면에서도 훨~~씬 유리합니다. ESP-WROOM-32 old model도 국내에서 사면 아무리 싸도 배송비 포함해서 1만원 이상이고, ESP-Prog 2만원( Debugging 용) 합치면 3~4만원이 듭니다. 하지만 알리익스프레스에서 구매하면 ESP-32-S3가 6천원 정도이니 가성비 최고의 선택이라고 할 수 있습니다. 2주정도 기다려서 배송 도착했고, (1)먼저 Arduino IDE에서 동작시켜봤습니다. (참고자료) 프로그래밍 가이드 : ..

(1단계)OBDII open 소스 코드 분석 : ELMduino 사례(2)

"ELMduino" 는 최근(2023.12.30일 기준)에도 활발하게 update되고 있어서 선택했습니다.  어떤 방식으로 동작하는지 궁금해서, Arduino IDE와 PlatformIO로 upload해서 실행부터 해봤습니다. (1) Arduino IDE로 upload 시도 라이브러리 메니저로 ELMduino 설치하면 예제 불러 올수 있도록 메뉴가 생성됩니다. 깃허브 소스코드 기준으로 보면, example 디렉토리에 "ESP32_WIFI"라는 파일입니다. 소유하고 있는 wifi에 맞게 2줄만 수정했습니다. (Mac mini(M1)) 환경에서 진행함. Bluetooth의 경우 examples/ESP32_Bluetooth_Serial/ESP32_Bluetooth_Serial.ino 선택하면 되며, BLE는..

(1단계)OBDII open 소스 코드 분석 (Mac mini): esp-prog 사용후기(1)-4

esp-prog 적용하면서 어려웠던 점은.... OS, PC, IDE와 확장팩에 따라 상당한 어려움을 격게 된다는 것입니다. 1) OS 선택 (윈도우즈 or Mac OS에서 할것인가?) 2) 코드 편집툴 (Visual studio or Visual studio code) 3) 확장팩 (PlatformIO 또는 ESP IDF) 결론부터 말하면, Mac OS + Visual studio code + PlatformIO 조합이 가장 좋았습니다. PlatformIO의 최고 장점은... 알아서 척척 설정해줍니다. (정말 기특합니다.) 초보인 제가 복잡한 설정 없이도 사용했으니 말입니다. 1) VSCode용 PlatformIO IDE 사용법 ← 정리 잘되어 있..

(1단계)OBDII open 소스 코드 분석 위한 준비물 : esp-prog(1)-3

HW가 준비되고, 소스코드 올려서 동작하는것 확인되었고 다음 단계는 디버깅 모드 진입하는 것입니다. ESP-WROOM-32의 경우 외부 디버깅툴이 필요합니다. (동영상 참조) https://www.youtube.com/watch?v=uq93H7T7cOQ (ESP32 - DEBUGGING your ESP-IDF code using JTAG [VS CODE]) (공식 사이트) https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/jtag-debugging/index.html (JTAG 디버깅) 1)윈도우즈에서 사용 -ftdi 드라이버를 설치해야 합니다. : (참조) https://www.visualmicro.com/page/Zadig-..

(1단계)OBDII open 소스 코드 분석 위한 준비물 : esp32(1)-2

초기 생산된 Arduino 사용해서 OBDII 동글과 연결 시도시 단점이 있는데, wifi / bluetooth를 별도로 연결해야 한다는 것입니다. 따라서, wifi / bluetooth 모듈이 있는 ESP32 계열 사용하기로 했습니다. 나중에 알게된 사실이지만, wifi / bluetooth가 불안정하다는게 문제가 있어서 고생많이 했습니다. (최근 버전인 ESP-32 S3도 문제가 있더군요.) 일단, Arduino 예제도 돌려볼수 있는 장점이 있어서 ESP-32 바로 구매했습니다. 아마도 별도의 디버깅 모듈 불필요한 ESP-32-S3-WROOM-1(또는 U)가 가장 좋은 대안이라고 생각하고 알리에 주문했고 도착 기다리는 동안, ESP-WROOM-32(구형) 버전을 주로 사용했습니다. 추가로 주문한 ES..

(다시 시작된 허들) OBDII open 소스 코드 분석 위한 준비물(1)-1

가장 빠른 방법이라면, 스마트폰에서 Bluetooth나 wifi로 OBDII 동글에 연결해서 엔진 정보 읽어오는 것입니다. 그러자니, "기본으로 알아야 할것들"이 그야말로 "산더미"입니다. 안드로이드폰으로 할까? 아이폰으로..? JAVA, Android studio, C++, iOS, Xcode,Visual studio(or Visual studio code), .... (그냥 시작하는 않는 것이... ㅠㅜ) 마음을 다잡고..어차피 잘 모르는거... 그냥 하나씩 알아보기로 했습니다. 진행하다가 모르는것은 그때 그때 배우기로 하고.. 우선 남들은 어떻게 구현하고 학습했을까? 궁금해서 조사한 결과 분석 대상 open소스 아래와 같이 3가지으로 압축했습니다. (정보가 많았지만...) (1) (sw)ELMdui..

어떻게 만들어야 할까? ( peugeot 전용 OBD ELM327 app ) (1)

Peugeot 진단용 앱을 만들기 위한 infra는 어느 정도 구성되었고, 어떻게 만들까? 고민하다가 여러가지 시도했던 과정 정리했습니다. 멘땅에 헤딩하는 방식이였지만 Python-OBD와 python-CAN은 이해 했으니, 다음 단계로 C 언어 계열로 작성된 OBD(ELM327칩 명령어 사용) 통신 SW 이해 하는것입니다. ( 지금까지 공부했던 Python으로 앱을 만들수는 없으니 말입니다... ㅠㅜ ) 전반적인 제작 방향은 아래와 같이 정했습니다. 기본 기술 학습 1) C 나 C++로 만들어진 오픈 소스 코드 분석 2) 임베디드 소형 PC에 올려서 동작 확인( Arduino or ESP32 ) 안드로이드, iOS, 윈도우 OS에서 사용 가능한 앱 제작 가능성 확인 1) C++ 또는 da..

<3> FAP OBD2 앱 동작 원리 완벽 분석!!!

오!!!! 드디어 FAP 앱이 어떻게 동작하는지 알게 되었습니다. 그동안 맨땅에 헤딩하면서 익힌 CAN 통신 기술들.... 명령 보내고 data 읽어 보는 방법 총 동원해서 얻은 결과가 있어서 다행입니다. 1. data 의미 분석 하기 FAP앱이 엔진 ECU에게 필요한 data 요구하면 푸조 차량의 엔진은 그룹으로 묶여진 여러 data를 아래와 같이 전송합니다. 아래 data는 흡기 정보를 요청한 경우 엔진 ECU가 응답한 사례입니다. 연두색 : Frame ID 검정색 : 유효 바이트 길이 또는 8 바이트 이상의 data 보낼때 8바이트씩 순차전송 번호( 21,22,23,24) 오랜지색 : 유효 data 2. 가상 ECU 응답 방식 수정후 앱 관찰 이전글에서 만든 가상 ECU 함수 6개중 하나만 동작하도..