Horizontal Grays S2 :: Horizontal Grays S2

지금 회사에서 개발하고 있는 제품중 nRF52832를 이용하는게 있다.
나름 최대한의 전송속도와 전송량이 필요해서 테스트용 Central / Perpheral 기기 만들어서 테스트 중인데
막상 체크해보면 max throughput 은 안되는것 같다. 뭐 무선의 한계일수도 있고 펌웨어 문제일수도 있고

여튼 peripheral 에서 central로 전송되는 실제 속도등을 확인해보고자 sniffer를 만들어서 설치해보기로 한다.

 

여기서 nRF sniffer란 Central - Peripheral 사이의 무선 패킷을 캡춰하는 프로그램이라고 할 수 있겠다.

정확한 내용은 아래

nRF Sniffer for Bluetooth LE

The nRF Sniffer for Bluetooth® LE is a useful tool for learning about and debugging Bluetooth Low Energy (LE) applications. It provides a near real-time display of Bluetooth packets that are sent between a selected Bluetooth Low Energy device and the device it is communicating with, even when the connection is encrypted.

Nordic Semiconductor Infocenter

 

Nordic Semiconductor Infocenter

 

infocenter.nordicsemi.com

 

1. sniffer  hex파일 다운로드

nRF Sniffer for Bluetooth LE - Downloads - nordicsemi.com

 

nRF Sniffer for Bluetooth LE - Downloads

Nordic Semiconductor

www.nordicsemi.com

 최신이 4.1.1이 나와있어서 그걸로 다운로드 받았다.

 

압축파일을 풀면 여러 폴더가 있는데 그중 hex라는 폴더에 들어가서 맞는 hex 파일을 다운로드 한다.

나는 지금 가지고 있는게 nrf52 DK가 있어서 여기에 다운로드 했다.

다운로드는 nrf connect의 programmer를 이용했다.

별 문제없이 hex파일은 잘 다운로드 되었다.

 

그리고 문서를 보면 Wireshark를 설치하라고 나온다.

 

2. Wireshark 설치
이게 뭐냐면 무선 traffic을 캡춰하고 읽을수 있는 포맷으로 만들어 주는 무료 소프트웨어다.

아래의 Wireshark 페이지에서 다운로드 받아서 설치한다. 현재 4.0.5 버전이 최신이다. 

Wireshark · Download

 

Wireshark · Download

Wireshark: The world's most popular network protocol analyzer

www.wireshark.org

그리고 nRF sniffer capture tool을 Plug-in 한다.

 

3. nRF sniffer capture tool plug-in

 1) wireshar의 외부 플러그인으로 nRF Sniffer capture를 설치하려면 우선 Python이 설치되어 있어야 한다.

 2) 나는 python이 이미 설치되어 있어 Pass

python이 설치되어 있다면 1. 에서 sniffer 다운로드하여 zip 파일을 푼 폴더에 들어가면 extcap 폴더가 있는데 여기서 명령프롬프트를 실행시킨 후

 py -3 -m pip install -r requirements.txt

명령을 실행하면 필요 파일들이 설치된다.

 

 

wireshark가 설치된 폴더 중 extcap 폴더로 이동한다. 설치할때 설치폴더 확인하거나 미처 못했다면 wireshark 실행하고 help-about Wireshark 에서 Folders Tab을 보면 아래와 같이 폴더위치가 표시된다.

   여기서 Global Extcap path에 나와있는 파란색으로 되어있는 경로를 더블클릭하면 extcap 폴더가 열린다.

그러면 아까 Sniffer의 extcap 폴더의 모든 파일을 wireshark의 extcap 폴더로 복사한다.

 

wireshark의 extcap 폴더에서 명령프롬프트 실행시켜 다음 명령어로 wireshark external capture plugins 할수 있도록 한다.

nrf_sniffer_ble.bat --extcap-interfaces

wireshark 프로그램에서 Capture / Refresh Interfaces 를 실행하거나 F5를 누르면 nRF Sniffer for Bluetooth 인터페이스가 보인다

 

여기서 View / Interface Toolbars / nRF Sniffer for Bluetooth LE를 선택하면 준비 완료

 

4. winshark 사용

사용 전에 filter에 rssi >= -70 하면 -70db 이상의 신호만 packet capture한다. 본인의 환경에 맞게 filter를 설정할 수 있다.

nRF Sniffer for Bluetooth LE COM XX 를 선택하고 더블클릭하면 capture를 진행한다.

주변에 BLE 신호가 capture 되는 것을 볼 수 있다.

아.. 내 central / peripheral 장치는 켜지도 않았는데 --;;

 

내 장치만 선택해서 표시할 필요가 있어보인다.

 

그럴때 사용하는게 필터이다.

상단의 창에 btle.advertiing_address == 하고 peripheral 장치의 어드레스를 입력해준다.

그럼 advertising 하고 있는 peripheral 장치 만 capture 한다.

 

일단 나는 속도를 2M로 사용하고 싶어서 시작한 것이었는데 표시된것을 보니 PHY : LE 1M 이다.

펌웨어에서 설정은 2M로 했는데... 뭔가 제대로 동작하지 않는다는 것이다.

 

이부분은 펌웨어를 수정해보기로 하고.

 

사실 Sniffer를 해본 이유는 Peripheral - Central을 연결하고 실제 전송되는 Packet을 분석하고자 함이었는데

sniffer가 그런건 아닌가보다. 연결되면 Capture에 나타나지 않는다.

딱히 암호화한 packet을 쓰지 않았는데 안된다.

이부분은 아직 내가 모르는것일수 있겠다만 여튼 PHY 속도 확인해본것으로 만족해야겠다.

 

sniffer에 대한 부분은 노르딕에서 제공하는 아래 링크에 상세히 나와있다.

 

Nordic Semiconductor Infocenter

 

Nordic Semiconductor Infocenter

 

infocenter.nordicsemi.com

 

+ Recent posts