시작하기
nRF52832 DK를 사용해서 블루투스 Packet sniffer(패킷 스니퍼)를 만들어보도록 하자.
링크를 통해 노르딕 인포센터에 접속하면 nRF Sniffer를 만드는 방법에 대해서 자세히 나와 있다.
nRF Sniffer를 사용해 블루투스 패킷을 확인하는데 필요한 프로그램인 Wireshark를 다운로드하도록 하자.
여기서는 Windows Installer (64-bit)를 선택해 설치 과정 중 따로 변경하지 않고 기본 설정으로 설치하였다.
이제 nRF52 DK를 Packet sniffer로 만들어주기 위한 nRF Sniffer 소프트웨어를 사이트에 접속해 다운로드한다.
글 작성 기준으로 nrf_sniffer_for_bluetooth_le_3.1.0_7cc811f.zip을 선택하였다.
doc 폴더에는 nRF Sniffer 사용 방법에 대한 문서가 들어 있다.
extcap 폴더에는 nRF Sniffer를 사용하기 위한 파이썬 코드가 들어있다.
hex 폴더에는 nRF Sniffer 펌웨어인 hex 파일이 들어있다.
Profile_nRF_Sniffer_Bluetooth_LE 폴더에는 Whireshark에서 사용할 수 있는 프로파일 설정이 들어있다.
Development kit/dongle | Firmware file name |
nRF52840 DK (PCA10056) | sniffer_nrf52840dk_nrf52840_*.hex |
nRF52840 Dongle (PCA10059) | sniffer_nrf52840dongle_nrf52840_*.hex |
nRF52 DK (PCA10040) | sniffer_nrf52dk_nrf52832_*.hex |
nRF51 DK (PCA10028) | sniffer_nrf51dk_nrf51422_*.hex |
nRF51 DK (PCA10031) | sniffer_nrf51dongle_nrf51422_*.hex |
펌웨어 파일을 nRF52 DK에 다운로드하기 위해서 nRF Connect for Desktop 프로그램을 설치해야 한다.
글 작성 기준으로 nrfconnect-setup-3.6.1-ia32.exe 파일을 다운로드하였다.
설치 과정 중 별도의 설정을 변경하지 않고 기본 설정 그대로 설치를 하였다.
nRF Connect fo Desktop 프로그램 설치를 완료하고 실행하면 APP을 설치할 수 있는 창이 나타난다.
Search 창에서 Programmer를 검색하면 nRF Programmer 항목이 나타나며 Install 버튼을 눌러 설치하면 된다.
설치가 끝나면 Install 버튼이 Open 버튼으로 변경되며 이 버튼을 눌러 Programmer를 실행할 수 있다.
Programmer가 실행되면 Select device 항목을 눌러 연결된 nRF52 DK 장치가 연결된 포트를 선택한다.
File 카테고리의 Add HEX file을 선택해 nRF Sniffer 펌웨어를 선택해주자.
여기서는 sniffer_nrf52dk_nrf52832_7cc811f.hex 파일을 선택하였다.
왼쪽에 보이는 항목은 nRF52 DK의 플래시 메모리 맵이고 오른쪽에 보이는 항목은 선택된 펌웨어 메모리 맵이다.
Device 카테고리에서 Erase & Write 항목을 선택해 nRF52 DK의 플래시 메모리에 남아있는 내용을 삭제하고 nRF Sniffer 펌웨어를 nRF52 DK에 다운로드한다.
여기까지 nRF52 DK를 nRF Sniffer로 만드는 방법이며 이제 블루투스 패킷을 확인할 수 있도록 프로그램 세팅이 필요하다.
Wireshark 프로그램을 실행하고 메뉴바에서 Help > About Wireshark를 선택하고 Folders 탭으로 이동한다.
Global Extcap path의 Location 부분을 더블클릭하면 폴더가 열린다.
\nrf_sniffer_for_bluetooth_le_3.1.0_7cc811f\extcap 폴더 안의 파일들을 복사해 \Wireshark\extcap 폴더에 붙여 넣는다.
지금부터는 컴퓨터에 파이썬 3.4 이상 버전이 설치되어 있어야 진행할 수 있습니다.
명령 프롬프트 또는 PowerShell을 실행하고 다음과 같이 명령어를 입력한다.
> pip3 install -r .\requirements.txt > .\nrf_sniffer_ble.bat--extcap-interfaces |
정상적으로 명령어가 실행되었다면 아래 사진과 같은 결과물 출력을 확인할 수 있다.
Wireshark 프로그램에서 외부 캡처 플러그인(Plugin for nRF Sniffer Capture Tool)을 사용할 수 있도록 설정되었다.
Wireshark 프로그램의 시작 화면에서 F5 키를 눌러 인터페이스 목록을 새로고침 한다.
그리고 메뉴바에서 View > Interface Toolbars > nRF Sniffer for Bluetooth LE 항목을 선택해 활성화시켜준다.
메뉴바에서 Help > About Wireshark를 선택하고 Folders 탭으로 이동한 다음 Personal configuration의 Loaction을 더블클릭해 폴더를 열고 profiles 폴더로 이동한다.
\nrf_sniffer_for_bluetooth_le_3.1.0_7cc811f 폴더 안의 Profile_nRF_Sniffer_Bluetooth_LE 폴더를 \Wireshark\profiles 폴더에 복사한다.
메뉴바에서 Edit > Configuration Profiles를 선택하고 Profile_nRF_Sniffer_Bluetooth_LE를 누른 다음 확인 버튼을 눌러준다.
여기까지 Wireshark 프로그램에서 nRF Sniffer로 블루투스 패킷을 캡처할 수 있는 프로파일 설정이 끝났다.
nRF Sniffer 사용하기
블루투스 패킷을 캡처하려면 컴퓨터와 nRF Sniffer가 연결된 상태에서 다음 사진과 같이 블루투스 장치를 배치한다.
Wireshark 프로그램을 실행하면 시작 화면에 Interface Toolbar가 있으며 nRF Sniffer가 정상적으로 연결 상태라면 포트가 확인된다.
nRF Sniffer for Bluetooth LE COMx를 더블 클릭하면 블루투스 패킷 캡처 화면으로 전환되며 주변의 블루투스 패킷들을 스니핑 할 수 있다.
'Embedded > nRF52 BLE 개발 안내서' 카테고리의 다른 글
nRF52 BLE 개발하기 - pwm_driver (4) | 2021.02.07 |
---|---|
nRF52 BLE 개발하기 - low_power_pwm (0) | 2021.02.04 |
nRF52 BLE 개발하기 - ble_app_uart with buttonless dfu (1) | 2021.01.31 |
nRF52 BLE 개발하기 - ble_app_buttonless_dfu (2) | 2021.01.29 |
nRF52 BLE 개발하기 - dfu (3) | 2021.01.28 |
댓글