JLR (Jaguar, LandRover / 재규어 랜드로버) 코딩 #3 – 코딩
부자재 및 환경 준비가 완료되었다. JLR SDD(이하 SDD)는 Jaguar / Land Rover를 위한 매우 강력한 도구 이기 때문에 그만큼 큰 리스크를 갖고 있다는 점을 재차 강조하고자 한다.
이 포스트에서 언급할 코딩은 “소프트웨어 프로그래밍”을 하지 않고 “비활성화” 된 기능을 활성화한다거나 “제한” 된 기능을 수정하는데 목표가 있다. 소프트웨어 프로그래밍이 아니기 때문에 이 단계에서 TOPIx 계정은 불필요하다. (매우 강조) 단, 해적판으로 인증된 SDD는 재설치 전까지 TOPIx에 접근할 수 없는 점 주의해야 한다.
CCF 의 이해
앞으로 자주 언급하게 될 CCF는 Car Configuration File의 약자로 자동차 구성/설정을 담고 있는 XML 형태의 파일을 의미한다. 내 자동차의 차대번호(VIN)를 입력하면 모듈의 구성 및 사양을 SDD Server로부터 받아오게 되는데, 전체 기능 구성은 SDD에 저장되어 있는 exml과 비교하게 되며, 이 중 일부 항목만 수정 기능을 활성화하게 된다. 모든 작업 전 CCF를 반드시 백업해야 한다. CCF를 알고 있다면 언제든지 내 차 구성대로 돌아갈 수 있기 때문이다.
만약 다른 차종의 차대번호를 입력하게 된다면 그 차의 모듈 정보를 알아낼 수 있다.
- 예를 들어 ACCS(Active Cruise Control System)이 탑재된 Jaguar XE와 그렇지 않은 Jaguar XE 가 있다 가정해 보자.
- 두 차량의 CCF는 대부분 동일할 것이나 ACCS 관련된 항목만 다를 것이다.
- ACCS 센서와 부품을 장착했을 경우
- ACCS가 이미 장착된 차량의 CCF와 ACCS와 관련된 항목들을 수정한다면
- 모듈 프로그래밍과 더불어 ACCS 기능일 활성화 할 수 있게 된다.
CCF가 차량의 핵심 정보가 담겨 있다는 걸 알게 되었다. 이 파일만 수정하면 된다.
CCF 는 어디에 있지?
JLR SDD 설치 폴더로 이동하면 하위에 Xml 폴더가 있다. 확장자가 exml 인 파일들을 찾을 수 있다. 언더바(_)로 구성된 파일명을 나눠 2개만 유심히 살펴보자.
- CCF_DATA_L320_201200.exml
- L320 : 차량 코드명
- 201200 : 참조 연식
차량 코드명은 New Jaguar XF = X250, New Jaguar XJ = X351 로 쉽게 알 수 있는 반면, “참조 연식”은 혼동 스러울 수도 있다. 내 차가 2018년식 이라고 하더라도 기본 연식은 2016년 데이터를 기반으로 할 수도 있다. 이는 SDD 에서 어렵지 않게 확인할 수 있다.
exml 파일은 SDD 에서 읽을 수 있도록 인코딩 된 파일로 내용을 알아볼 수 없지만, 해당 차량과 연식의 전체 기능을 갖고 있는 슈퍼셋(Super Set)이다. 우린 이걸 수정해야 한다.
내 차의 참조 연식은?
자동차와 노트북에 Mongoose Pro를 연결하고 SDD 를 실행하자. SDD 는 기본적인 차량 정보를 불러올 것이며, 만약 as-built가 없다면 SDD Server 로 부터 다운 받아 올 것이다. 필자는 2017년 막차 Jaguar XJ 를 소유하고 있다. 하지만 X351 프로필은 2016년 다음이 2018년이다. SDD 를 실행 후 Information 버튼을 누르면 VIN_MODELYEAR에서 정확한 연식을 알 수 있다. 하지만, 하단 CM_YEAR_BREAKPOINT를 보면 2016년식을 기반으로 한 모델임을 확인할 수 있다. 말 그대로 Break Point 다.
이 정보에서 내 차는 2016년 CCF 를 참고하고 있음을 확인할 수 있다. 이는 모든 Jaguar / Land Rover 에 해당되는 정확한 방식이다.
어떤 기능들을 수정할 수 있을까?
Service Functions 탭을 누르면 동작 가능한 많은 기능들이 보인다. 모듈의 프로그래밍이 이곳에서 이뤄지는데 나머지 기능들은 매우 위험한 만큼 함부로 건드리지 말자. 가장 아랫 부분으로 가면 Special Functions 가 보이고, Run 을 클릭하자.
내 차에서 허용하는 수정 가능한 항목들과 그렇지 않은 것들을 모두 불러온다.
우측 하단의 “View All Parameters”를 선택하면 전체 기능 셋(Super Set) 목록이 나오며 좀더 상세한 정보를 얻을 수 있다. 물론, 이들을 수정한다고 없던 기능이 짜잔 하고 살아나는 것은 아니다.
“읽기전용” 속성을 없애자
값들을 수정할 수 없는 이유는 모든 매개변수의 속성 값이 “읽기 전용(Read-Only)”로 지정되어 있기 때문이다. 이를 “읽고 쓰기(Read-Writw)”상태로 바꾸면 되는데, 무조건 바꾸면 되는게 아니라, 내 차종에 맞도록 풀어주는게 중요하다.
앞서 Information을 통해 내 자동차의 연식을 확인했다. 이 화면의 하단을 보면 CCF XML 경로가 있다. X351_2016.exml은 SDD 에 맞도록 인코딩된 슈퍼셋이라면, CCFSUMVEHPRO_FILE_PATH 는 내 차종에 맞는 슈퍼셋이며, Plain/Text 의 XML 파일이다. 이 파일 경로로 이동하자.
이 XML 파일을 exml 이 있던 Xml 폴더로 복사하고, 파일명을 바꾸자. 필자의 차량이 참조하는 파일명은 CCF_DATA_X351_2016.exml 이면, 위의 XML 파일을 CCF_DATA_X351_2016.xml 로 바꾸면 된다. 확장자는 exml 이 아닌 xml 임을 주의하고, 기존 exml 은 특정 폴더에 백업 후 삭제하거나 이름을 변경하면 된다.
노트패드로 XML 파일을 열자. exml 파일과 달리 이 xml 파일은 내용을 알아볼 수 있다. edit=”false” 를 모두 “edit=”true” 로 바꾸자. 아래와 같이 입력하고 “Replace All” 버튼을 누르면 일괄 변경된다.
그리고 저장하면 끝. 수정 불가능한 읽기 전용 속성이 사라졌다.
수정이 가능할까?
앞선 절차를 밟아 Special Functions 의 Run 을 클릭하자. Proposed value를 수정할 수 있도록 변했다. 이제 수정이 가능해졌다.
UX가 달라진 것이 있다면 “View all parameters”가 아래로 옮겨 간 것. 선택하면 모~든~ 항목을 수정할 수 있게 되었다.
본인이 원하는 항목들을 수정하고, 초록색 “v(Continue)” 를 누르면 해당 내용이 내 차에 반영 된다.
이것만 수정하면 되나?
경우에 따라, 모듈 프로그래밍(=Software Download)이 필요한 경우도 있다. Display되는 항목은 바로 반영되어 확인이 가능하지만, 모듈과 콤비네이션으로 동작하는 경우 해당 모듈도 리프로그래밍 해 줄 필요가 있다. 즉, 내가 특정 기능을 수정하고 싶다면 CCF 를 먼저 수정해 반영하고 해당 모듈을 선택하면 그 환경에 맞는 파일을 찾아 다운로드 받게 된다. 차종마다 다르지만, 많은 오너들이 원하는 항목들이 꽤 보인다.
1. 속도 제한을 풀 수 있다. 기본이 250KPH 이지만 300KPH 이상으로 수정할 수 있다.
2. Apple CarPlay 나 Google Android Auto 를 활성화 할 수 있다. XJ 의 경우 mySPIN을 사용하면 InControl Apps 를 사용할 수 있게 된다. 단, MID_LINE 이상의 차량이어야 한다. (HDMI 또는 SIM 등이 있는 차량)
3. 텔레메트릭스 모듈이 있지만, 국내 실정법상 활성화가 안된경우 이를 활성화 할 수 있다.
4. 인터넷을 활성화 할 수 있다. 이 옵션은 NGI 등의 다른 옵션과 함께 수정해야 함
5. ACCS (Adaptive Cruise Control System) 을 활성화 할 수 있다. (아래 이미지는 계기판에 ACCS 표시 여부이며, 기능 활성화는 Speed Control 에 있음)
6. TPS 를 잘못 구입 했을 경우 이를 변경할 수 있다.
7. LDW(Lane Departure Warning)을 활성화 할 수 있다 (그러나, IMPC-A 가 없기 때문에 활성화 불가 = 모듈 달고 하네스 교체하고 앞유리 교체해야함)
8. Rain Sensor 감도 조절이 가능하다
9. 연료 측정 단위를 L/100Km 에서 Km/L 로 변경할 수 있다.
이외에도 많은 기능들을 제어할 수 있는데, 고스트 도어(=Soft Closing)가 고정났을 경우 이를 비 활성화 할 수 있으며, Global Open/Close 에 선룹을 맴버에서 뺄 것인가. 또는 깜빡이 3회 점멸을 켜거나 끌 수 있다. 항목이 백여가지 이고, 명칭이 우리나라 기준으로 직관적이지 않아 기능을 찾는데 적잖은 시간이 소요되는건 단점.
#4 는 모듈 프로그래밍을 다뤄보고자 한다. (이 내용은 너무 위험해서 포스트를 공개할지 여부를 고민해 보겠습니다)
재규어도 코딩의 세계가 있었군요.
알아보기 쉽고 디테일하게 소개해주셔서 감사합니다.
도전해 보고 싶네요
굉장히 흥미롭게 보고있습니다. 모듈 프로그래밍에 대해서도 위험하지 않은선에서 포스팅해주시길 기다려봅니다.
정말 멋지고 똑똑하신분….
안녕하세요
좋은글 정말감사합니다.
지금코딩중에 문제가 생긴부분때문에
프론트 버튼이 전부 나오지않아 에어컨
및 실내 환경 설정이 불가능합니다.
모듈구성설정 과정중에 지속적으로
부정적이란 표현이 계속해서 나오는데
이부분 자문을 구할수있을까요..
부탁드립니다ㅠ
유선상으로 말씀 나눴던 부분인거 같습니다. ^^