{"id":18895479,"url":"https://github.com/cemrajc/nordic_ble_scanner","last_synced_at":"2026-02-27T22:30:15.731Z","repository":{"id":221445031,"uuid":"224750640","full_name":"CemraJC/nordic_ble_scanner","owner":"CemraJC","description":"Simple BLE local device scanner for Nordic nRF devices","archived":false,"fork":false,"pushed_at":"2020-02-05T04:07:17.000Z","size":4724,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-31T07:43:54.644Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CemraJC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-11-29T00:48:59.000Z","updated_at":"2020-02-05T04:06:24.000Z","dependencies_parsed_at":"2024-02-08T02:23:12.517Z","dependency_job_id":"847274a1-d977-4c92-9cf9-7068c23a87e6","html_url":"https://github.com/CemraJC/nordic_ble_scanner","commit_stats":null,"previous_names":["cemrajc/nordic_ble_scanner"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CemraJC%2Fnordic_ble_scanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CemraJC%2Fnordic_ble_scanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CemraJC%2Fnordic_ble_scanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CemraJC%2Fnordic_ble_scanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CemraJC","download_url":"https://codeload.github.com/CemraJC/nordic_ble_scanner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239870150,"owners_count":19710650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T08:28:17.757Z","updated_at":"2026-02-27T22:30:15.691Z","avatar_url":"https://github.com/CemraJC.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nordic BLE Scanner\n\u003e Windows only, for now\n\nThis is a simple utility for scanning local Bluetooth-Low-Energy (BLE) devices with wireless chips from Nordic Semiconductor.\n\nThe app was built using the `pc-ble-driver` package provided by Nordic to serialise commands for their proprietary bus protocol over a standard virtual COM port. A stripped-down version of the driver is provided with the project (in directory `nrf-ble-driver-4.1.1-win_x86_32`).\n\nThe `pc-ble-driver` library was built for Windows machines, but theoretically can be built on other platforms as well. This is left as an exercise to the reader.\n\n### Getting Started\n\nThree steps:\n* Download the [latest release](https://github.com/CemraJC/nordic_ble_scanner/releases/latest)\n* Program your Nordic BLE-enabled device with the Nordic Connectivity 4.1.1 (using V3 API)\n\t* A `.hex` file is provided with the release - you can program the device with that\n\t* Easiest to use [nRF Connect for Desktop](https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-desktop) to program the chip.\n* Run `ble_scanner.exe` in your favourite command line\n\n### Using the Tool\n\nHere is the output from the tool's help option:\n\n```\nUsage:\n  BLE Scanner [OPTION...]\n\n  -h, --help        Show this help message\n  -v, --version     Output the version number\n  -d, --debug       Enable verbose debug output\n  -p, --port arg    Serial port to use (e.g. COM1). (default: COM1)\n  -s, --server arg  Start the scanner as a local server on the given port.\n                    E.g. -s 3000 will listen on 127.0.0.1:3000. (default: 0)\n\nServer API commands:\n  START                 - Start sending discovered BLE advertisements in real-time\n  STOP                  - Stop sending\n  FILTER_NAME \u003cstr\u003e     - Filter device names. Names filtered by if they contain \u003cstr\u003e.\n                          To stop filtering, set \u003cstr\u003e to empty (send 'FILTER_NAME ')\n  FILTER_MAC \u003cstr\u003e      - Filter device MAC. Filtered by if they start with \u003cstr\u003e.\n                          To stop filtering, set \u003cstr\u003e to empty (send 'FILTER_MAC ')\n  QUIT                  - Force the server to exit\n\nDevice names are provided in the format \u003cMAC\u003e,\u003cname\u003e where \u003cMAC\u003e is the device address\nand \u003cname\u003e is either '\u003cunknown\u003e' or the device complete local name.\n```\n\n### Supported Chips\n\nThis project was developed on the nRF52840 Dongle.\n\nList of devices supported by the `pc-ble-driver` library (all should work with this tool):\n\n| PCA      | Official name                | Article number | Notes    |\n-----------|------------------------------|----------------|----------|\n| PCA10028 | nRF51 DEVELOPMENT KIT        | nRF6824        |          |\n| PCA10031 | nRF51 DONGLE                 | nRF6825        |          |\n| PCA10040 | nRF52 DEVELOPMENT KIT        | nRF6827        |          |\n| PCA10056 | nRF52840 ( Development Kit ) | nRF6828        |          |\n| PCA10059 | nRF52840 ( Dongle )          | nRF6829        | Only with Nordic USB CDC support |\n\n## Sample Outputs\n\nNote that `*action*` lines are not output on the console, just notes of actions I made while running the program.\n\n**Local Mode**\n```\n\u003e ble_scanner.exe -p COM4\nB8:74:DF:FB:06:15,\u003cunknown\u003e\n6F:01:DB:7D:51:45,\u003cunknown\u003e\n5F:6A:43:91:F2:64,\u003cunknown\u003e\n...\nE5:3F:0A:44:45:4E,\u003cunknown\u003e\n6F:01:DB:7D:51:45,\u003cunknown\u003e\n*Pressed Ctrl + C*\n\u003e _\n```\n\n**Local Mode with Debug Output**\n```\n\u003e ble_scanner.exe -d -p COM4\nLog: Verbose mode: 1\nLog: Server mode: 0\nLog: Serial port used: COM4\nLog: Baud rate used: 1000000\nInfo: Successfully opened COM4. Baud rate: 1000000. Flow control: none. Parity: none.\nStatus: 6, message: Target Reset performed\nStatus: 7, message: Connection active\nB8:74:DF:FB:06:15,\u003cunknown\u003e\n6F:01:DB:7D:51:45,\u003cunknown\u003e\n97:CB:37:9C:D2:14,\u003cunknown\u003e\n...\nC8:D6:D5:A5:11:28,\u003cunknown\u003e\n73:C3:36:FE:54:1C,\u003cunknown\u003e\n38:8B:DC:1E:27:C1,fm50:8C:B1:61:E5:0B\nB8:74:DF:FB:06:15,\u003cunknown\u003e\n*Pressed Ctrl + C*\nLog: Got input: ' '\n\u003e _\n```\n\n**Server Mode with Debug Output**\n```\n\u003e ble_scanner.exe -d -s 4000 -p COM4\nLog: Verbose mode: 1\nLog: Server mode: 1\nLog: Serial port used: COM4\nLog: Baud rate used: 1000000\nInfo: Successfully opened COM4. Baud rate: 1000000. Flow control: none. Parity: none.\nStatus: 6, message: Target Reset performed\nStatus: 7, message: Connection active\nListening for connections on port 4000.\n\n*Opened netcat, made connection*\n\nConnection request from 127.0.0.1:18038\n\n*Sent 'FILTER_NAME fm' from netcat*\n\nLog: CLIENT: FILTER_NAME fm\nLog: SERVER: Servicing FILTER_NAME command\nLog: SERVER: Set name filter to 'fm'\nLog: CLIENT: START\n\n*netcat is outputting lines like '38:8B:DC:1E:27:C1,fm50:8C:B1:61:E5:0B'*\n\nLog: SERVER: Servicing START command\nLog: CLIENT: STOP\nLog: SERVER: Servicing STOP command\nLog: CLIENT: QUIT\nLog: SERVER: Servicing QUIT command\nLog: Client disconnected.\nError: A blocking operation was interrupted by a call to WSACancelBlockingCall.\n\u003e _\n```\n\nIn this server mode, the final \"Error\" log is expected because the server is in debug mode - the client issued a QUIT command, which forces the server to exit.\n\n## Building from Scratch\n\nThis project was built with Visual Studio 2017. \n\nTo build your own binary, open the `ble_scanner.vcxproj` file in Visual Studio, and set the output configuration to \"Release x86\". Then hit build, and everything should (hopefully) work!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemrajc%2Fnordic_ble_scanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcemrajc%2Fnordic_ble_scanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemrajc%2Fnordic_ble_scanner/lists"}