재규어 / 랜드로버 모듈 프로그래밍 (코딩)
앞서 다뤘던 ‘코딩’은 CCF(Car Configuration File)를 변경해 차량에 탑재되어 있는 기능을 활성화하는 간단한 작업이었다. 이 포스트는 모듈 교체 또는 추가 함으로써 애초 없던 기능을 활성화하거나, 다음 단계로의 업그레이드를 설명하고자 한다.
예를 들어, 모듈 추가를 통해 ACC(Adaptive Cruise Control) 기능을 사용할 있으며, IPMB(Image Process Module) 모듈을 교체하면 서라운드 카메라 데이터량을 확장할 수 있게 된다.
주의) 아래의 내용을 참고해 이행 후 발생하는 결과에 대해선 일절 책임지지 않습니다.
1단계) 기본 준비물
1. Power Supply
14V/50A 이상을 꾸준하게 공급해 줄 수 있는 정전압 공급기가 필요하다. 1시간이 걸리지 않는 작업의 경우 기본 배터리 또는 NOCO PowerSupply로 방전을 지연시켜 작업할 수 있지만 중간에 문제가 생기면 걷잡을 수 없는 사태를 맞이할 수 있다. (모듈의 벽돌화)
2. Mongoose JLR Pro /w SDD
최근 판매된 차량은 PathFinder를 사용하지만 여전히 SDD가 널리 사용되며, Mongoose JLR Pro가 저렴하고 사용하기 편하다. CCF 수정과 달리 모듈 프로그래밍은 오랜 시간 동안 안정적으로 통신해야 하므로, 정품 Mongoose를 사용할 것을 권장한다. 그리고 가급적 VMWare(가상 머신)보다 Native Laptop에서 작업할 필요가 있는데, 개인적 경험에서도 VMWare에서 종종 오류가 발생하는 결 경험했기 때문이다. (CCF 수정에서 발생하지 않았던 문제가 모듈 프로그래밍에서는 발생하는 경우가 잦다.)
다음 사진을 유심히 살펴보자. 정품과 카피 Mongoose JLR Pro USB 인터페이스다. 어떤 것이 정품인지 설명하지 않아도 구분할 수 있을 거라 생각한다.
가급적 내 차에 맞는 모든 데이터 파일을 먼저 받고 시작하길 권장한다. (용량과 시간이 엄청 오래 걸린다. 한 차종만 받아도 대략 2시간 정도 소요된다)
3. VIN (차대번호)
내가 원하는 작업의 결과가 포함되어 있는 자동차의 VIN이 필요하다. 이것은 구글링을 통해 어렵지 않게 구할 수 있다. eBay에 올라온 중고 자동차 매물을 유심히 관찰해 보자. 구체적으로 필요한 이유는 차차 알게 될 것이다.
2단계) 정보 취득
하드웨어 교체 가능성과 적합한 소프트웨어를 찾아야 한다. 방법은 매우 직관적이며 어렵지 않다.
필자는 디스플레이를 8″에서 10.2″로 교체했으며, IPMB(Image Processing Module B)를 교체하려고 한다. IPMB는 재규어/랜드로버 차량의 카메라 시스템을 관장하는 매우 중요한 모듈인데, 단순히 카메라 신호만 제어하지 않고, UI를 직접 구현해 완성된 데이터를 전달한다는 특징이 있다. 일반적으로 데이터만 보내고, UI는 메인 모듈에서 구현하는 것과 차이가 있다. 안타깝게도 IPMB 소프트웨어는 이미 최신 버전이기 때문에, 모듈 프로그래밍 또는 모듈 교체가 필요한 상황이다.
eBay에서 2018년식 XJL VIN을 구했다. SDD를 실행하고, VIN을 직접 입력하자. 그럼 그 VIN에 맞는 모듈 정보를 재규어 서버로부터 획득할 수 있다. (XJ를 연결한 상태에서 XF나 XE의 정보를 취득할 수는 없다.)
당연히 내 차 VIN 데이터도 필요하다. 이 파일은 다음 폴더에서 확인할 수 있다.
- C:/Program Files/JLR/Common/Xml/IVSAsbuilt/차대번호_MODULE_RECORDSET.xml
3단계) 정보 비교
MODULE_RECORDSET.xml은 내 차VIN에 맞는 기본 정보를 확인할 수 있다. 나는 IPMB를 작업하려고 한다. IPMB를 찾아 WERS(Worldwide Engineering Release System) 항목을 비교해 보자.
내차 : 2017 X351 LWB | <part_number type=”WERS”>FW93-19H423-BE</part_number> |
비교 : 2018 X351 LWB | <part_number type=”WERS”>JW93-19H423-BD</part_number> |
모듈 정보를 이해할 필요가 있다. 아래의 규칙은 WERS의 공통적인 부분이다.
FW93 | 19H423 | B | E |
연식 또는 형식 (LIKE) | 모듈ID | 메이저 구분 | 리버전 |
연식 또는 형식이 구분되는 경우 모듈 자체를 교체할 확률이 높아진다. 리버전은 상호 호환된다. ICTP기준으로 디스플레이 및 차량 시스템이 2018년 2사 분기 이후로 업데이트가 이뤄졌기 때문에 2016년식 SWB와 2019년식 SWB의 데이터가 있으면 좀 더 확실해질 것이다.
2016 X351 SWB | <part_number type=”WERS”>FW93-19H423-AB</part_number> |
2019 X351 SWB | <part_number type=”WERS”>JW93-19H423-AE</part_number> |
확실해 졌다. 2016-2018 초반 연식까지는 FW93계열이고, -A는 SWB, -B는 LWB다. WERS는 “JW93-19H423-BD”가 목표다.
4단계) 하드웨어 준비
기본적으로 모듈의 연식/형식이 바뀌면 ‘하드웨어’가 변경되었을 확률이 높다. 이를 무시하고 모듈 프로그래밍을 진행하면 벽돌(Brick)이 될 확률이 높다.
재규어/랜드로버는 모듈이 서로 호환되기 때문에 내가 원하는 기능이 탑재되어 있는 특정 연식을 구하면 된다. 반드시 XJL용 부품이 아니어도 상관없다. 같은 기능이 탑재된 재규어/랜드로버(레인지로버)의 부품을 찾자. 기존 모듈을 건드리지 않는다면 손쉽게 롤백(복구)할 수 있다.
1. 모듈 준비하기 #1 (정공법)
모듈 호환성을 확인하기 위해 부품을 검색해보자. 재규어/랜드로버 부품은 인터넷에서 쉽게 조회할 수 있다. XJL을 위한 서라운드 카메라 모듈의 부품 번호는 C2 D55068이다. 이 모듈은 XJ 뿐만 아니라, E-Pace에서도 사용되고 있다. 호환되는 자동차는 매우 중요한 참고 자료다.
부품 번호를 구글에서 검색해 보면, 어떤 모듈을 사용하면 되는지 쉽게 검색할 수 있다. 구글에서 다음과 같은 정보를 얻었다. 나에겐 JJ32-14F026-A? 계열 모듈이 필요하다.
새 부품의 가격은 $650이며, 관/부가세 포함하면 대략 92만 원을 예상해 볼 수 있다. 다행히 대부분 재규어/랜드로버 모듈은 eBay에서 쉽게도 저렴하게 구할 수 있다. 역시. JJ32-14F026-AD 부품이 등록되어 있었고, E-Pace에서 사용되던 모듈이다. D는 리버전이기 때문에 큰 의미는 없다. 92만 원짜리 부품을 16만 원(신품대비 17.3%)에 구입할 수 있었다.
정공법의 장점은 장착 시 “실패할 확률이 없다.“는 것이다. 대부분 전략 소프트웨어 까지 동일하고, 보정 소프트웨어 정도만 차이 나기 때문이다. 심지어 타 차종에 있던 모듈이라고 해도 프로그래밍 없이 사용할 수 있는 경우 까지 있다.
2. 모듈 준비하기 #2
정공법의 문제는 내 차와 동일한. 나한테 정확히 딱 맞아 떨어지는 모듈을 찾기 쉽지 않다는 것이다. PAM(Parking Assist Module)의 경우 eBay에 널렸다. 반면 IMC의 경우 동일 부품을 찾기 쉽지 않거나, 있더라도 매우 비싸다. (본체가 워낙 비싸니)
정공법에 대한 접근이 쉽지 않다면 ‘호환’ 부품을 구입하는 방법을 추천한다. 선택의 폭을 넓히고 가격을 낮출 수 있다. IPMB의 경우 다음 조건을 고민해 보자.
- 최소 2018년. 안정적으로 2019년 이후 차량에 탑재된 모듈
- 서라운드 뷰가 탑재된 차량의 모듈
eBay에서 “Surround View Jaguar” 검색, 2018~2019년식인지 확인. 찾았다. HY32-14F026-AH모듈이다. 이제 eBay 검색어는 HY32-14F026 또는 HY3214F026로 검색해 저렴한 제품이 나올 때까지 기다리자.
부품이 올 때까지 느긋하게 기다리고, 도착하면 매뉴얼을 참고해 설치하자.
5단계) 작업 준비
모듈 프로그래밍은 짧게는 30분에서 길면 10시간까지 걸리는 작업이기 때문에 전원 공급기는 필수다. 필자는 가성비의 MST-90+를 사용 중인데, 120A까지 정전압 공급이 가능하다. XJL의 경우 전원 공급 터미널이 엔진 후드 쪽에 존재하므로, 이곳에 연결하자. 이때 블랙박스, 하이패스 등 전원이 공급되는 사외 전장품은 모두 제거(전원 차단)하자. 모듈 프로그래밍 작업은 높은 안정성 보장이 필요하다.
당연하지만, 노트북도 어댑터를 준비해 방전에 대비하도록 하자.
6단계) WERS 수정
SDD를 연결하고 자동 VIN찾기를 선택하자. 그리고 MODULE_RECORDSET.xml을 백업해두자. 나중에 문제가 생겼을 때 롤백 할 수 있는 중요한 기준을 제시해 주기 때문이다.
EditPlus등으로 MODULE_RECORDSET.xml파일을 열어두자. WERS를 수정해도 SDD가 원복하기 때문에 지속적으로 변경해 줄 필요가 있기 때문이다. 과거엔 이 XML 파일을 ‘읽기 전용’으로 속성을 바꿔 작업했지만, SDD의 패턴이 변경 되어 “RECORDSET.xml이 읽기 전용 파일이네? > 차대번호.XML 을 만들자 > 차대번호 XML도 읽기 전용 파일이네? > 지웠다 다시 생성하자”와 같아 속성 변경 작업이 더 이상 무의미해 졌기 때문이다.
- 언어는 ‘영어로’ 진행하는 것을 추천한다. 어떠한 이유에서 SDD 메시지가 깨져 나와 전하고자 하는 메시지를 이해하지 못하는 경우가 생기기 때문.
- 내 차 MODULE_RECORDSET.xml의 IPMB WERS를 JW93-19H423-BD로 변경하고 진단 모드로 진입해 보자. (2군데를 모두 수정해야 함)
일반적으로 새로운 모듈이 설치 되었다 판단하면(WERS를 수정했으므로) Extras 탭이 생기지만 없다면 Service Functions에서 항목을 선택해 진행하자.
새로운 모듈이 발견되었다.
위 내용을 이해해 보자면.
- JW93-19H423-BE : MODULE_RECORDSET에 정의 되어 있다. 앞서 우리는 이걸 강제로 변경했다. = 어셈블리 번호
- JJ32-14F016-AA : CAN 메시지를 해석하고 송/수신하는 소프트웨어 = 통신 소프트웨어
- JJ32-14F017-AD : 메인 어플리케이션 데이터를 담고 있음 = 전략 소프트웨어
- JW93-14F022-BC : 애드온 데이터 = 차종에 따른 보정 데이터
7단계) 소프트웨어 다운로드 (모듈 프로그래밍)
재규어/랜드로버는 모듈에 프로그램을 씌울 때 ‘소프트웨어 다운로드’라는 표현을 쓴다. IPMB 업데이트는 1시간 18분이 .. 걸린다고 하지만 일반적으로 75% 수준에서 완료되는 편이다.
DTC를 체크해 오류코드를 확인하고 나면 모든 작업은 완료된다. 위 메뉴를 다시 복기 하면 모듈이 정상적으로 프로그래밍 되었는지 확인할 수 있다.
이상 재규어/랜드로버 신규 모듈 추가 / 변경을 위한 프로그래밍 방법을 알아봤다. 모든 작업의 전제조건은 ‘작업 중 오류가 발생했을 때 기존 상태로 돌아갈 수 있어야 한다’라는 것이다. 현재 설치된 버전을 최근에 나온 버전으로 업데이트하는 경우는 IMC를 제외하고 장애가 발생하는 경우는 흔치 않다.
모듈이 Brick이 되는 경우는 흔치 않다. 중요한 건 부트로더(BootLoader)가 살아 있어야만 한다. 이 부트로더에는 MCU와 통신할 수 있는 I/O 등에 대한 정보가 담겨 있는데, HS-CAN은 이 영역을 건드리지 못하기 때문이다.(=고도화된 인터페이스를 ‘누군가’ 만들어 줘야 하므로) 부트로더가 손상된다면 모듈은 말 그대로 벽돌(Brick)이 되어 버리는데, 이 경우 ROM WRITER를 사용해 I/O를 살려야만 한다.
모듈에 따라 판올림/메이저 전환 가능한 경우도 있지만, 누구도 보장해 주지는 않는다는 것. 주의하며 작업할 것을 권장하고 싶다.
Retrifit?
18년식 랜드로버 디스커버리 스포츠 입니다. 앱으로 원격시동이 안된다구하는데 SOS기능이 있다는건 하드웨어적으로 될 기능을 갖추었는데 소프트웨어로 막은거로 판단됩니다. 코딩으로 해결 가능할까요??
SOS 기능이 있다는 건 텔레메틱스 모듈이 있기 때문에 가능하겠지만, 원격 시동은 재랜 ‘서버’에 기능 제약이 걸려 있기 때문에 내 차에 코딩을 푼다고 해서 사용할 수 있는 기능은 아닙니다. CCF에 원격 시동 항목은 있습니다.
안녕하세요.
써주신 글들 몇 번이나 꼼꼼히 잘 보고 있습니다. 좋은 정보 감사합니다.
다름이 아니고 제가 디스커버리 4를 운행하고 있고 JLR SDD를 사용해서 연비표시 단위를 L/100Km에서 Km/L로 수정하려고 했는데 문제 없이 모듈 설정이 끝났는데도 계기판 반영이 안되네요… 혹시 제가 누락한 작업이 있을까요?
https://m.blog.naver.com/rover_man/222860275087
블로그에 댓글 남겼습니다. ^^
안녕하세요.
글 보고 문의 드립니다.
2012 L320 레인지로버 스포츠 모델인데, 트렁크 소프트 클로징도 코딩에서 가능한지
궁금해서 여쭙습니다. 원래 되던 기능이 안되어서요..
하드웨어가 장착 되어 있다면 가능하지만 그렇지 않은경우 불가능합니다. 그런데 소프트 클로징의 경우 하드웨어가 독립 동작형이더라구요. (트렁크는 보지 않았지만 문짝 동작 로직을 보니)
안녕하세요. 좋은 정보에 감사합니다.
2년 전부터 키리스엔트리가 간헐적으로 불량하다 얼마전부터는 아예 키온이 안됩니다. bcm모듈이 키를 인식하지 못하는데, 이게 배터리탈착시 문제가 되는 이슈와 비슷한 경우인 것 같습니다.
제 차는 DIY로 교환.탈착을 12년 했어도 문제가 없다가 갑자기 이러는데, 주변에선 수리할 업체가 없네요. 12년식 3리터디젤 XF 250입니다. 이게 모듈이 나간것이라는데.. 글을 읽다 답답한 마음에 남겨봅니다.
추석 잘 보내십시오.
키가 인식되지 않고 와이퍼는 움직이지만 워셔액이 나오지 않는 증상 등등이 나타나는게 X250 BCM 트러블의 대표적 증상입니다. 가장 확인하기 좋은 방법으로 스캐너를 연결해 BCM 정보를 보면 파일/모듈 정보가 손상되어 나올 확률이 높습니다. 이 경우 대부분 BCM을 버진 상태로 만들고 다시 씌우는 작업을 합니다.
저는 개인이라 원인에 대해 말씀드리고 직접 집도할 경우에 대한 방법을 설명 드리는거구요, 직접 작업하기 어렵다면, 강서브리튼(구 강서에이지), 열쇠파파(용인) 등에서 복구를 해 주고 있으니 방문해 보시기 바랍니다. 😀
감사합니다. 지역이 전남지역인데, 이곳주변엔 추천해주실 만 한 곳이 있을까요?
전남 지역은 잘 모르겠습니다. (ㅠㅠ)
뜬금없이 댓글 남겨 죄송합니다. 혹시 L405 레인지로버 전동식 파워스티어링 무게감을 코딩으로 조절할 수 있을까요?
전자식 파워스티어링 탑재 차량이라면 설정가능한 Dynamic-i 를 이용해 스티어링 감도를 변경할 수 있습니다.