
지난 6회까지의 여정, 그리고 남은 영역
6회에 걸쳐 라이팅, 편의 기능, 드라이빙 모드까지 320i의 외면과 주행감을 바꿔왔습니다. 하지만 운전석에 앉아 가장 오래 마주하는 건 결국 계기판 옆 8.8인치 화면입니다. 오늘은 NBT EVO ID6 헤드유닛을 코딩으로 완전히 해방시키는 시간입니다.
NBT EVO는 Bimmercode에서 HU_NBT_EVO라는 이름으로 잡히며, 코딩 가능한 항목 수만 따지면 단일 모듈 중 가장 많습니다. 3회에서 DRL iDrive 체크박스를 노출시킬 때 잠깐 건드렸고, 6회에서 Configure SPORT를 활성화할 때 한 번 더 만졌지만, 오늘은 이 모듈을 본격적으로 파헤칩니다.

시작 전: 내 헤드유닛이 정말 NBT EVO인지 확인하기
F30 LCI 320i(2018 MY)는 NBT EVO ID6가 표준이지만, 중고 구매나 이전 소유자의 교체 이력이 있을 수 있으니 반드시 확인하고 넘어갑시다.
확인 방법 1: iDrive 메뉴
iDrive → Settings → Position and version → Version information을 열면 소프트웨어 버전이 표시됩니다. 여기서 핵심은 i-level(Integration Level)입니다.
- NBTevo_X 또는 NBTevo_Y로 시작 → CarPlay Fullscreen 코딩 가능
- NBTevo_W 이하 → i-level 업데이트 필요 (후술)
- 아예 NBTevo가 아닌 경우 → NBT (비 EVO) 또는 CIC. 이 시리즈의 코딩 항목 대부분 적용 불가
확인 방법 2: Bimmercode 모듈 스캔
2회에서 했던 모듈 스캔 결과를 다시 꺼내보세요. 모듈 목록에 HU_NBT_EVO가 있으면 됩니다. HU_NBT만 있고 EVO가 없다면 구형 헤드유닛입니다.
확인이 끝났으면, 2회에서 강조했던 대로 HU_NBT_EVO 모듈의 백업을 반드시 먼저 진행합니다. 헤드유닛은 코딩 항목이 많은 만큼, 잘못 건드렸을 때 복원할 기준점이 있어야 합니다.
시각적 변경: 시동 걸 때부터 달라지는 느낌
시작 애니메이션 변경
시동을 걸면 iDrive 화면에 BMW 로고 애니메이션이 뜹니다. 기본은 표준 BMW 애니메이션인데, 코딩으로 다른 브랜드의 애니메이션으로 바꿀 수 있습니다.
Bimmercode 경로: HU_NBT_EVO → Start screen animation
선택 가능한 옵션:
- BMW (기본값)
- ALPINA — 알피나 블루-그린 로고. 깔끔하고 고급스러운 느낌
- BMW i — i3/i8 스타일. 미래지향적
- Connected Drive — 커넥티드 드라이브 로고 애니메이션
- M variant 1 — M 로고 첫 번째 스타일
- M variant 2 — M 로고 두 번째 스타일. 좀 더 역동적
- MINI — 미니쿠퍼 로고. 320i에 넣으면 개성 있긴 합니다
- Rolls-Royce — 스피릿 오브 엑스터시. 호불호가 갈리지만 한 번쯤 해볼 만합니다
개인적으로는 M variant 2를 쓰고 있습니다. 320i에 M 로고가 좀 오버 아니냐는 의견도 있지만, 시동 걸 때 기분이 좋아지는 건 확실합니다. 어차피 본인만 보는 화면이니까요.
Start screen 타입
Bimmercode 경로: HU_NBT_EVO → Start screen type
- Animation — 위에서 설정한 애니메이션 재생
- Welcome screen — 정적 웰컴 이미지 표시
Animation으로 두는 걸 권장합니다. 웰컴 스크린은 정적 이미지라 금방 질립니다.
볼륨 팝업 ON/OFF
Bimmercode 경로: HU_NBT_EVO → Volume popup
볼륨을 조절할 때 화면 중앙에 뜨는 반투명 볼륨 바를 없앨 수 있습니다. 네비게이션 사용 중에 볼륨 바가 지도를 가리는 게 신경 쓰인다면 OFF로 바꿔보세요. 다만 현재 볼륨이 얼마인지 시각적 피드백이 사라지므로, 호불호가 갈립니다.
시동 시 최대 볼륨 제한
Bimmercode 경로: HU_NBT_EVO → Maximum volume at start
이 기능은 실용성이 아주 높습니다. 전날 밤에 볼륨을 크게 올려놓고 내린 뒤, 다음 날 새벽에 시동을 걸면 폭발적인 음악이 터지는 경험, 한 번쯤 있을 겁니다.
설정 범위는 10%~50%입니다. 저는 30%로 설정해두었습니다. 새벽 출근 시 귀가 놀라는 일이 사라졌습니다.

사운드 변경: 벨소리와 경고음
Ringtone (전화 벨소리)
Bimmercode 경로: HU_NBT_EVO → Ringtone
- BMW (기본값)
- BMW i
- MINI
- Smartphone — 연결된 스마트폰의 벨소리 사용
블루투스로 전화를 받을 때 들리는 벨소리입니다. Smartphone으로 설정하면 평소 쓰던 벨소리가 그대로 차에서 울리니까 직관적입니다. BMW 기본 벨소리에 질렸다면 바꿔보세요.
Warning chime (경고음)
Bimmercode 경로: HU_NBT_EVO → Warning chime
- BMW (기본값)
- BMW i — 좀 더 부드러운 전자음
- MINI — 경쾌한 톤
- Rolls-Royce — 우아한(?) 경고음
안전벨트 미착용, 문 열림 등의 경고에 사용되는 소리입니다. 개인적으로 기본 BMW가 가장 무난합니다. Rolls-Royce 경고음은 한 번 들어보면 재미있지만 경고의 긴장감이 좀 떨어집니다.
Video in Motion: 가장 논쟁적인 코딩
Bimmercode 경로: HU_NBT_EVO → Video in Motion
기본 상태에서는 차량이 움직이면 영상 재생이 자동으로 차단됩니다. 이 코딩을 활성화하면 주행 중에도 영상이 계속 재생됩니다.
활성화 이유
- 동승자가 장거리 이동 중 영상을 볼 수 있음
- 후방카메라 영상이 정차 시에만 보이는 제한을 해제
- 네비게이션과 영상을 동시에 사용할 때 전환이 자연스러움
반드시 알아야 할 것
⚠️ 운전자가 주행 중 영상을 시청하는 것은 도로교통법 위반이며, 사고 시 과실 비율에 직접적으로 영향을 줍니다. 이 코딩은 동승자 편의를 위한 것이지, 운전 중 본인 시청을 위한 것이 절대 아닙니다.
이 부분은 논쟁의 여지가 있어서 솔직하게 적겠습니다. 저는 이 코딩을 적용했습니다. 아이가 뒷좌석에서 태블릿 대신 iDrive 화면으로 영상을 볼 수 있게 하기 위해서입니다. 하지만 운전 중 직접 시청은 하지 않습니다. 본인의 판단과 책임하에 결정하세요.
추가 비디오 기능: USB 재생과 코덱 확장
USB 비디오 재생 활성화
Bimmercode 경로: HU_NBT_EVO → USB video
기본 상태에서 USB에 담긴 비디오 파일은 재생이 제한됩니다. 이 코딩을 활성화하면 USB 메모리에 저장된 영상 파일을 iDrive에서 직접 재생할 수 있습니다.
추가 비디오 코덱
Bimmercode 경로: HU_NBT_EVO → Additional video codecs
활성화할 수 있는 코덱:
- Ogg — 오픈소스 미디어 포맷
- Xvid — DivX 호환 코덱. 예전에 다운받아둔 영상이 이 코덱일 수 있습니다
- VCD — Video CD 포맷
솔직히 2026년 기준으로 Xvid나 VCD 포맷의 영상을 갖고 있는 분은 많지 않을 겁니다. 하지만 코딩 한 줄로 켤 수 있으니, USB 영상 재생을 활성화했다면 같이 켜두는 걸 추천합니다. 혹시 재생 안 되는 파일이 있을 때 코덱 문제인지 아닌지 구분하기 편합니다.
Bluetooth Audio Streaming
Bimmercode 경로: HU_NBT_EVO → Bluetooth audio streaming
2018 MY 320i는 블루투스 오디오 스트리밍이 기본 활성화되어 있는 경우가 대부분입니다. 하지만 간혹 비활성화 상태인 차량이 있습니다. Bimmercode에서 이 항목이 Not active로 되어 있다면 Active로 바꿔주세요.
블루투스로 음악은 되는데 통화만 된다면, 이 항목이 꺼져 있을 가능성이 높습니다.
CarPlay Fullscreen: 7회의 핵심
솔직히 말하면, 이번 회차에서 나머지 모든 코딩을 빼더라도 CarPlay Fullscreen 하나만으로 충분히 가치가 있습니다.

기본 CarPlay vs Fullscreen CarPlay
BMW의 기본 CarPlay는 화면의 약 2/3 정도만 사용합니다. 화면 우측에 BMW 자체 위젯 영역이 남아 있어서, 네비게이션이나 음악 앱이 좁은 영역에 갇힙니다. 8.8인치 화면에서 2/3만 쓰면 체감상 6인치도 안 됩니다.
Fullscreen 코딩을 적용하면 CarPlay가 화면 전체를 사용합니다. 카카오내비, Apple Maps, Spotify 등이 8.8인치 전체에 펼쳐지면 가시성이 완전히 달라집니다.
i-level 확인이 먼저
아까 확인했던 Version information으로 돌아갑니다.
- NBTevo_X 또는 NBTevo_Y → 바로 코딩 가능
- NBTevo_W 이하 → 소프트웨어 업데이트가 먼저 필요
NBTevo_W 이하라면, BMW 공식 서비스센터에 방문해서 “헤드유닛 소프트웨어 업데이트”를 요청해야 합니다. 비용은 보통 10만~15만 원 수준입니다. 업데이트 후에 i-level이 올라가면 코딩이 가능해집니다.
코딩 방법
Bimmercode 경로: HU_NBT_EVO → CarPlay Fullscreen
이 항목을 Active로 변경하면 됩니다. 코딩 후 iDrive를 재시작(시동 OFF → 약 1분 대기 → 시동 ON)하면 적용됩니다.
적용 후 CarPlay에 진입하면, BMW 위젯 영역이 사라지고 화면 전체가 CarPlay로 전환됩니다. 처음 보면 “원래 이래야 하는 거 아니었어?”라는 생각이 들 정도로 자연스럽습니다.
CarPlay Fullscreen이 안 되는 경우
- i-level이 NBTevo_W 이하 → 서비스센터에서 업데이트
- CarPlay 자체가 활성화되지 않음 → Apple CarPlay 옵션이 코딩되어 있는지 확인. Bimmercode에서 HU_NBT_EVO → Apple CarPlay 항목이 Active인지 체크
- USB 케이블 문제 → Apple 정품 Lightning/USB-C 케이블 사용 권장. 서드파티 케이블은 CarPlay 연결이 불안정한 경우가 많음
- 코딩 후에도 2/3 화면 → 시동 완전히 끄고 1~2분 대기 후 재시동. NBT EVO는 시동 OFF 후에도 잠시 동안 전원이 유지되므로, 충분히 기다려야 설정이 반영됨
Sport Displays: 파워·토크 게이지
Bimmercode 경로: HU_NBT_EVO → Sport Displays
iDrive 화면에 실시간 엔진 출력과 토크를 시각적 게이지로 표시하는 기능입니다. 활성화하면 iDrive 메뉴에 Sport Displays라는 새로운 항목이 나타납니다.
설정 옵션
- 활성화: Active / Not active
- 게이지 컬러: Orange / Red
320i에서의 현실
여기서 솔직한 이야기를 해야 합니다. 320i(N20)는 ECU가 실시간 파워/토크 값을 CAN 버스로 전송하지 않는 경우가 많습니다.
무슨 뜻이냐면:
- 코딩으로 Sport Displays를 활성화하면 메뉴는 나타남
- 게이지 UI도 정상적으로 표시됨
- 하지만 게이지 바늘이 0에서 움직이지 않거나, 비정상적인 값을 표시할 수 있음
M 퍼포먼스 모델(M340i 등)이나 디젤 모델(320d)에서는 정상 동작하는 경우가 많지만, N20 가솔린 320i에서는 반쪽짜리가 될 확률이 높습니다. 6회에서 N20의 한계를 이야기했는데, 이것도 그 연장선입니다.
그래도 코딩 자체는 위험하지 않으니 한 번 켜보고, 값이 정상적으로 나오면 유지하고, 0에 머물면 다시 꺼도 됩니다.
경고 화면 비활성화: 깔끔한 시작
시동 시 면책 경고 비활성화
Bimmercode 경로: HU_NBT_EVO → Disclaimer
시동을 걸 때마다 뜨는 “주행 중 조작은 위험합니다” 류의 법적 면책 경고 화면입니다. 매일 보는 화면이라 거의 반사적으로 확인 버튼을 누르게 되죠.
이 코딩을 비활성화하면 시동 후 바로 마지막 사용 화면으로 진입합니다. 체감 부팅 시간이 1~2초 단축되는 느낌입니다.
카메라 사용 경고 비활성화
Bimmercode 경로: HU_NBT_EVO → Camera disclaimer
후방 카메라를 사용할 때 뜨는 “카메라 영상은 보조 수단입니다” 경고를 비활성화합니다. 주차할 때마다 뜨는 이 경고가 사라지면, 기어를 R에 넣자마자 바로 후방 영상이 표시됩니다.
두 경고 모두 비활성화해도 기능 자체에는 아무 영향이 없습니다. 단, 차를 매도할 때 원복하는 게 깔끔합니다. 구매자가 경고가 안 뜨는 걸 이상하게 생각할 수 있으니까요.
기타 표시 옵션: 숨어있는 유용한 기능들
후방카메라 트레일러 줌
Bimmercode 경로: HU_NBT_EVO → Rear camera trailer zoom
F30 세단에서 트레일러를 끄는 경우는 거의 없지만, 이 기능을 활성화하면 후방카메라 화면에 줌 옵션이 추가됩니다. 좁은 주차장에서 뒤 범퍼 바로 뒤를 확대해서 볼 때 의외로 유용합니다.
풀텍스트 메시지 표시
Bimmercode 경로: HU_NBT_EVO → Full text messages
블루투스로 연결된 스마트폰의 문자 메시지를 iDrive 화면에 전체 텍스트로 표시합니다. 기본 상태에서는 발신자 이름만 표시되는 경우가 있는데, 이 코딩을 켜면 메시지 내용 전체가 보입니다.
CarPlay를 쓴다면 사실상 불필요합니다. CarPlay 자체가 메시지 읽어주기를 지원하니까요. 하지만 CarPlay 없이 블루투스만 연결하는 분들에게는 유용합니다.
TPMS 압력+온도 표시
Bimmercode 경로: HU_NBT_EVO → TPMS display
타이어 공기압 모니터링 시스템(TPMS)의 표시 방식을 변경합니다. 기본 상태에서는 단순히 “정상/경고”만 표시되는데, 이 코딩을 적용하면 각 타이어의 실제 압력값(bar 또는 psi)과 온도가 숫자로 표시됩니다.
단, F30 320i에 장착된 TPMS 타입에 따라 동작이 다릅니다:
- 직접식 TPMS(타이어 안에 센서가 있는 경우) → 압력·온도 모두 정상 표시
- 간접식 TPMS(ABS 센서로 회전 차이를 감지하는 경우) → 실제 압력값 표시 불가. F30 LCI 320i는 대부분 간접식이므로 이 코딩의 효과가 제한적일 수 있습니다
간접식인 경우에도 코딩 자체가 해로운 건 아니니 켜보고 확인해보세요.

7회 코딩 전체 정리표
오늘 다룬 항목이 많으니, 한눈에 볼 수 있는 정리표를 준비했습니다.
개발자 시각: NBT EVO는 프론트엔드 서버다
이 시리즈를 따라오신 IT 업계 분들을 위한 사이드 코멘트입니다.
NBT EVO를 웹 서비스 아키텍처로 비유하면, 완벽한 프론트엔드 서버입니다.
- UI 렌더링: 시작 애니메이션, 볼륨 팝업, Sport Displays — 모두 사용자에게 보이는 화면
- API Gateway 역할: CarPlay, 블루투스, USB 등 외부 디바이스와의 연결을 중개
- 설정 관리: 볼륨 제한, 경고 표시 여부, 코덱 지원 범위 — nginx.conf를 수정하는 느낌
- 백엔드 의존성: Sport Displays가 N20 ECU에서 값을 못 받는 것은 “백엔드 API가 해당 엔드포인트를 제공하지 않는” 상황과 동일
그래서 NBT EVO 코딩은 코딩 항목은 많지만 차량 주행에 직접적인 위험은 낮습니다. 프론트엔드 서버 설정을 바꿔도 데이터베이스가 날아가지 않는 것처럼, 헤드유닛 코딩이 엔진이나 변속기를 망가뜨리지는 않습니다.
다만 “프론트엔드 서버가 죽으면 사용자 경험이 끝장난다”는 것도 동일합니다. 그래서 백업이 필수인 겁니다.
코딩 적용 순서 권장
오늘 다루는 항목이 10개가 넘다 보니, 한꺼번에 다 바꾸면 문제가 생겼을 때 어떤 항목이 원인인지 찾기 어렵습니다. 다음 순서를 권장합니다.
1차: 체감 효과가 크고 안전한 항목 (먼저)
- CarPlay Fullscreen 활성화
- 시동 시 면책 경고 비활성화
- 카메라 사용 경고 비활성화
- 시동 시 최대 볼륨 제한 (30% 권장)
2차: 개인 취향 영역
- 시작 애니메이션 변경
- 벨소리 / 경고음 변경
- 볼륨 팝업 ON/OFF
- Bluetooth audio streaming 확인
3차: 신중하게 판단할 항목
- Video in Motion (본인 책임)
- USB 비디오 + 추가 코덱
- Sport Displays (320i에서 동작 여부 확인 필요)
4차: 있으면 좋은 항목
- TPMS 압력/온도 표시
- 풀텍스트 메시지 표시
- 후방카메라 트레일러 줌
각 차수별로 코딩 후 시동을 완전히 끄고 1~2분 대기한 뒤 재시동해서 정상 동작을 확인하세요. 문제가 없으면 다음 차수로 넘어갑니다.
주의사항과 트러블슈팅
코딩 후 화면이 먹통이 되었을 때
NBT EVO 코딩 후 간혹 화면이 검은 상태로 유지되거나 터치가 안 먹는 경우가 있습니다. 대부분 시동을 완전히 끄고 5분 이상 대기하면 해결됩니다. NBT EVO는 시동 OFF 후에도 내부적으로 종료 프로세스가 진행되는데, 이 과정이 완료되기 전에 다시 시동을 걸면 설정이 꼬일 수 있습니다.
5분 대기 후에도 안 되면:
- Bimmercode에서 HU_NBT_EVO 모듈 백업을 복원
- 복원 후 시동 OFF → 5분 대기 → 재시동
- 그래도 안 되면 배터리 (-)단자 분리 후 30초 대기 → 재연결 (하드 리셋)
CarPlay가 끊기거나 불안정할 때
- USB 케이블을 Apple 정품으로 교체
- iPhone의 CarPlay 설정에서 차량을 삭제 후 재등록
- NBT EVO의 Bluetooth 장치 목록에서 iPhone을 삭제 후 재페어링
- 위의 방법으로도 안 되면 iDrive 초기화: iDrive → Settings → Reset all settings
서비스센터 방문 후 코딩이 초기화되는 경우
8회에서 자세히 다루겠지만, 미리 알려드립니다. BMW 서비스센터에서 소프트웨어 업데이트를 하면 NBT EVO 코딩이 초기화될 확률이 가장 높습니다. 엔진이나 변속기 모듈보다 헤드유닛이 업데이트 대상에 포함되는 빈도가 훨씬 높기 때문입니다.
그래서 2회에서 만들어둔 백업이 중요합니다. 서비스센터 다녀온 뒤 Bimmercode를 연결하면 백업과 현재 상태를 비교할 수 있고, 달라진 항목만 골라서 다시 적용하면 됩니다.
7회를 마치며: 가장 많은 항목, 가장 낮은 리스크
오늘 다룬 코딩 항목 수는 시리즈 전체에서 가장 많습니다. 하지만 역설적으로, 차량 안전에 영향을 주는 항목은 거의 없습니다. 대부분이 화면 표시와 미디어 기능에 관한 것이기 때문입니다.
그중에서도 CarPlay Fullscreen은 이 시리즈 전체를 통틀어 만족도 1위를 다투는 항목입니다. 5회에서 다뤘던 편의 기능들이 “이걸 왜 BMW가 기본으로 안 켜놨지?”의 향연이었다면, CarPlay Fullscreen은 “이걸 왜 화면 2/3만 쓰게 만들었지?”에 대한 답입니다.
다음 8회는 시리즈의 마지막입니다. 주차 보조, 안전벨트 알림, 계기판 세부 설정 등 남은 항목들을 정리하고, 7회에 걸친 코딩 여정을 돌아봅니다. 그리고 차량 매도 시 원복 방법, 서비스센터 방문 시 주의점 등 실전 운영 팁으로 시리즈를 마무리합니다.
위험도: ★★★☆☆ (헤드유닛 코딩은 백업 필수)
원복 가능: ✅ 백업으로 가능
다음 회 예고: 주차·안전·관리 마무리, 그리고 7회 코딩 여정 회고
이미지는 Leonardo AI 로 생성되었습니다.
이미지는 Claude AI 로 생성되었습니다.
◀ 이전 6화 (다음 차수는 아직 게시되지 않았습니다)