울트라게이지MX로 볼트EV에 정보 화면 추가하기
작성자: Wesley 작성일:볼트EV의 배터리 상태를 상세하게 기록하기 위해 스마트폰과 연결되는 블루투스 OBD-II 어댑터를 지난 2년 간 사용해 왔습니다. 작동에는 이상이 없었지만 데이터를 항시 보여주는 화면이 있으면 좋겠다고 생각을 했는데, 이걸 위해 굳이 아이폰을 따로 설치하는 건 과하다고 생각했습니다. 그래서 사용자 정보를 표시할 수 있는 전용 "게이지" 장치를 찾아본 결과, 스캔게이지2(ScanGauge 2)와 울트라게이지MX(UltraGauge MX)로 선택지가 좁혀졌습니다. 전자는 사용자 정보를 더 입력할 수 있고(PID 25개 대 8개) 후자는 더 큰 화면을 사용합니다(표시 줄 수 8개 대 2개). 이 중 더 큰 화면 쪽을 고르게 되었지요.
제품을 입수하고서 할 일은 두 가지였습니다. 기존에 알려진 볼트EV 전용 PID 값을 가지고 특화된 정보를 화면에 보여줄 수 있도록 프로그래밍할 방법을 알아낸 뒤, 잘 보이면서도 그늘도 잘 지는 위치에 설치하는 것이었지요. 이리저리 힘써본 결과, 위에서 보시는 바와 같이 두 목적을 모두 달성할 수 있었습니다. 화면에 표시된 첫 페이지에는 실제 차량 속도, 가속페달 위치, 각종 배터리 정보(외부 및 내부 충전잔량, 가용용량, 온도), 단기 주행거리, 12V 배터리 전압 등이 나타나 있습니다. 그럼 어떻게 작업을 했는지 알아보겠습니다.
울트라게이지는 처음 연결했을 때 기본적으로 지원하는 60개의 표준 OBD-II PID(매개변수 식별자)와 28개의 자체 계산 값 중에 현재 차량이 제공하는 것을 판별합니다. 볼트EV는 내연기관이 없기 때문에 이 중 대부분은 의미도 없고 제공도 하지 않는 것으로 확인됩니다. 여기서 보시는 바와 같이 20개 정보가 지원된다고 하는 것 중에 표준 PID에 속하는 것은 고작 7개이고, 그나마도 주행용 고압 배터리 상태를 감시하기 위한 것은 하나도 없습니다.
PID # | 기능 설명 | 단위 |
---|---|---|
010D | 차량 속도 | km/h |
0121 | CEL(엔진점검등) 점등 후 이동한 거리 | km |
0130 | TC(고장코드) 해제 후 시동 횟수 | 회 |
0131 | TC 해제 후 이동한 거리 | km |
0142 | ECM(엔진제어모듈) 12V 배터리 전압 | V |
0146 | 대기 온도 | °C |
0149 | 가속페달1 위치 | % |
처음에는 어떻게 해석해야 하는지 감이 안 잡힐 정도였지만, 일단 비공식적인 볼트EV 전용 사용자 PID 목록(영어)에 나온 정보를 이 화면에 맞게 변환하기만 하면 되었습니다. 그래서 울트라게이지MX 프로그래밍 정보(역시 영어)를 숙지한 뒤 CAN Bus 프로토콜에 대해서 탐구해본 결과 방법을 찾아내는데 성공했습니다. 다음 PID는...
PID # | 기능 설명 | 단위 | 계산식 |
---|---|---|---|
228334 | 외부 표시 충전잔량 | % | A × 100 / 255 + 0 |
015B | 내부 관리 충전잔량 | % | A × 100 / 255 + 0 |
2241A3 | 배터리 가용용량 (2017~18 볼트용) | kWh | A × 999 / 31250 + 0 |
22434F | 배터리 온도 | °C | A × 1 / 1 - 40 |
22436B | 고압 충전기 전압 | V | A × 1 / 2 + 0 |
22436C | 고압 충전기 전류 | A | A × 1 / 20 + 0 |
22437D | 최종 충전량 | kWh | A × 1 / 100 + 0 |
2241B6 | 배터리 히터 전력 | kW | A × 1 / 1000 + 0 |
# | Abbr1 | Abbr2 | TData | TCtrl | RCtrl | RPos | Mtch | X | / | + | Out | Ave | L/R |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | SoC | D % | 07E4228334 | 93 | 31 | 2008 | 628334 | 0064 | 00FF | 0000 | 00 | 00 | 32 |
2 | SoC | R % | 07E0015B | 92 | 21 | 1808 | 415B | 0064 | 00FF | 0000 | 00 | 00 | 32 |
3 | Cap | kWh | 07E42241A3 | 93 | 31 | 2010 | 6241A3 | 03E7 | 7A12 | 0000 | 00 | 00 | 22 |
4 | Bat | °C | 07E422434F | 93 | 31 | 2008 | 62434F | 0001 | 0001 | FFD8 | 00 | 00 | 30 |
5 | Chg | hvV | 07E422436B | 93 | 31 | 2010 | 62436B | 0001 | 0002 | 0000 | 00 | 00 | 32 |
6 | Chg | hvA | 07E422436C | 93 | 31 | 2010 | 62436C | 0001 | 0014 | 0000 | 00 | 00 | 32 |
7 | Chg | kWh | 07E422437D | 93 | 31 | 2010 | 62437D | 0001 | 0064 | 0000 | 00 | 00 | 22 |
8 | BHt | kW | 07E42241B6 | 93 | 31 | 2010 | 6241B6 | 0001 | 03E8 | 0000 | 00 | 00 | 13 |
대략적인 크기를 알고 있었더라도, 울트라게이지를 어디에 설치해야 적당할지 미리 파악하는 데에는 한계가 있었습니다. 그래서 수평 거치대와 찍찍이 부착지를 동시에 주문해놓고 다양하게 대처해보고자 했습니다.
위치를 이리저리 옮겨가며 살펴본 결과, 차량 전원(시동) 버튼 바로 아래에 설치하기로 정했습니다. 여기에 두면 조향 핸들 사이로 거의 항상 화면을 볼 수도 있을 뿐더러 직사광선을 상당 부분 피할 수 있게 되기 때문이었습니다.
덤으로, 연결 케이블 대부분이 자연스럽게 가려질 뿐 아니라 나중에 철거하기도 쉽게 됩니다. 작업 후 남게 된 건 찍찍이 뿐이었네요.
설치를 끝내었으니 화면 구성을 원하는 대로 조정해 보기로 했습니다. 며칠에 걸치 시범 운영을 해보고 나니 첫 페이지에는 운전할 때 보고 싶은 정보를, 두번째 페이지에는 실시간 충전 상태를 표시하는 것으로 정리가 되었습니다.
한편, DC 급속 충전기에 연결 중일 때의 모습은 이렇습니다. 스마트폰으로 정보를 확인할 때와 비교했을 때 한 가지 아쉬운 점은 충전 전력(= 전압 × 전류)이 자동 계산되지 않는다는 점인데, 울트라게이지가 여러 개의 PID를 합치거나 곱하는 기능을 지원하지 않기 때문입니다. 이 점을 제외하면 이번 설치 결과는 꽤 만족스럽습니다.
글을 맺기 전에 한 가지 참고할 점은, 장치에 탑재된 자동 전원(화면) 켜기/끄기 기능(MENU - UltraGauge Setup - Compatibility - Pwr off (on) Detect Mode)을 어느 정도 조정해 두어야 양호하게 사용할 수 있다는 것입니다. 울트라게이지가 제공하는 차량 전원 꺼짐 감지 방법은 6가지나 되지만, 그 중 5가지는 볼트에 맞지 않습니다. 모드0과 1은 아무런 차이도 감지하지 못하고, 모드 2~4는 항상 차가 꺼져 있다고 착각합니다.
12V 전원의 전압 수준을 기반으로 하는 최후의 수단, 즉 모드5를 써야 하는 것입니다. 그런데 한계 전압(MENU - UltraGauge Setup - Compatibility - Bat Low Threshold)을 정하는 과정이 좀 복잡했습니다. 기본 설정인 12.85V에서는 화면이 자꾸 꺼졌는데, 볼트의 운전 중 전압이 약 12.3V에서 15.1V 사이를 오갔기 때문입니다. 그렇다고 12.30V로 설정해 놓고 보니 차량 전원을 꺼도 화면이 바로 꺼지지 않았습니다. 현재는 12.45V에서 타협을 보았는데, 운전 중 화면은 안정적으로 켜져 있으면서도 전원 끄고 몇 분 내에 화면이 꺼지는 것으로 확인이 되었기 때문입니다.
전원 꺼짐 감지를 모드5로 사용하면 부작용이 있는데, 바로 전원 켜짐 감지가 모드2로 고정된다는 것입니다. 이 모드 또한 12V 전원의 전압 수준에 의존하며, 화면을 실제로는 수동으로 켜야 합니다. 차량 전원을 켠 후에 장치 뒷면에 있는 UP 버튼을 한 번 눌러서 화면을 켜야 한다는 것입니다. 이건 처음 생각했던 것과는 달리 의외로 그리 불편하지 않다고 느끼게 되었는데, 필요할 때에만 화면을 켜면 되고 다른 때에는 그냥 두어도 되기 때문이었습니다.