{"id":20885381,"url":"https://github.com/lab11/nrf5x-base","last_synced_at":"2025-05-12T19:30:57.269Z","repository":{"id":51359433,"uuid":"38905699","full_name":"lab11/nrf5x-base","owner":"lab11","description":"Starting point and shared code for Nordic nRF5x BLE platforms.","archived":false,"fork":false,"pushed_at":"2021-05-13T13:52:15.000Z","size":202713,"stargazers_count":81,"open_issues_count":11,"forks_count":31,"subscribers_count":29,"default_branch":"master","last_synced_at":"2024-04-14T04:45:09.261Z","etag":null,"topics":["ble","nordic","nrf51822","nrf52832","nrf52840","nrf5x","university-project"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lab11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-10T22:57:54.000Z","updated_at":"2024-04-05T22:40:54.000Z","dependencies_parsed_at":"2022-09-12T05:10:46.787Z","dependency_job_id":null,"html_url":"https://github.com/lab11/nrf5x-base","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fnrf5x-base","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fnrf5x-base/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fnrf5x-base/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fnrf5x-base/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lab11","download_url":"https://codeload.github.com/lab11/nrf5x-base/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225148872,"owners_count":17428430,"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":["ble","nordic","nrf51822","nrf52832","nrf52840","nrf5x","university-project"],"created_at":"2024-11-18T08:13:20.031Z","updated_at":"2024-11-18T08:13:20.853Z","avatar_url":"https://github.com/lab11.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Nordic nRF5x Support Files\n==========================\n\nThis repository is a starting point and shared code for Nordic nRF5x BLE platforms. This repo is\na collection of libraries, SDKs, Softdevices, and Makefiles to be included\nwithin other projects using the Nordic platfroms. Pull requests welcome.\n\nThe currently supported SDK versions are: 9.0.0, 10.0.0, 11.0.0, 12.2.0.\n\nThe currently supported Softdevice versions are:\ns110_7.3.0, s110_8.0.0, s120_2.1.0, s130_1.0.0, s130_2.0.0, s130_2.0.1.\n\n\nUsage\n-----\n\nFirst, add this project as a submodule inside of your repo with your\nnRF5x code.\n\n    git submodule add https://github.com/lab11/nrf5x-base\n\nThen write an application for the nRF5x SoC you are using and include\na Makefile that looks like this:\n\n```make\nPROJECT_NAME = $(shell basename \"$(realpath ./)\")\n\nAPPLICATION_SRCS = $(notdir $(wildcard ./*.c))\n# Various C libraries that need to be included\nAPPLICATION_SRCS += softdevice_handler.c\nAPPLICATION_SRCS += ble_advdata.c\nAPPLICATION_SRCS += ble_conn_params.c\nAPPLICATION_SRCS += app_timer.c\nAPPLICATION_SRCS += ble_srv_common.c\nAPPLICATION_SRCS += app_util_platform.c\nAPPLICATION_SRCS += nrf_drv_common.c\nAPPLICATION_SRCS += nrf_delay.c\nAPPLICATION_SRCS += led.c\nAPPLICATION_SRCS += simple_ble.c\nAPPLICATION_SRCS += simple_adv.c\n# Add other libraries here!\n\n# platform-level headers and source files\nLIBRARY_PATHS += ../../include\nSOURCE_PATHS += ../../src\n\n# Set the softdevice needed for the application\nSOFTDEVICE_MODEL = s110\n\n# Include the main Makefile\nNRF_BASE_PATH ?= ../../nrf5x-base\ninclude $(NRF_BASE_PATH)/make/Makefile\n```\nAn example Makefile is included in this repo as Makefile.example. Copy to your\nown application directory and modify as desired.\n\nGenerally, the expected directory structure for your project is:\n```\n    /apps\n        /\u003capplication 1\u003e\n        /\u003capplication 2\u003e\n        ...\n    /src\n        various platform-level code (e.g. functions shared between applications)\n    /include\n        various platform-level headers (e.g. platform pin mappings)\n    /nrf5x-base (submodule)\n```\n\nExample Applications\n--------------------\n\nThis repo has several example and test applications. See the\n[apps](https://github.com/lab11/nrf5x-base/tree/master/apps)\nfolder.\n\nSupported Features\n--------------\n\nThere are libraries for many common BLE functions in this repo:\n\n- `simple_ble`: Quick interface to most common BLE functions\n  - BLE Advertisements\n    - Device name only\n    - Manufacturer data\n    - Eddystone\n    - Rotating multiple advertisements\n  - BLE Services\n- SQL style database ([LittleD](https://github.com/graemedouglas/LittleD))\n- [RTT Debugging](https://www.segger.com/pr-j-link-real-time.html)\n- Nordic [BLE Serialization](http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk51.v10.0.0%2Fble_serialization_s110_events.html)\n- Nordic DFU over-the-air reprogramming.\n\n\n\nProgram a nRF51822\n------------------\n\nTo flash an application to a nRF51822 BLE chip, there is some setup\nyou must do.\n\n1. Install the [`arm-none-eabi-gcc`](https://launchpad.net/gcc-arm-embedded) compiler.\n\n    On Ubuntu:\n\n        sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa\n        sudo apt-get update\n        sudo apt-get install gcc-arm-embedded\n\n2. Install the JLink [software](https://www.segger.com/jlink-software.html)\nfor your platform. You want the \"Software and documentation pack\".\n\n3. Acquire a [JLink JTAG programmer](https://www.segger.com/jlink-general-info.html).\nThe \"EDU\" edition works fine.\n\n4. Program an app! With the JLink box attached to the target board:\n\n        make flash\n\n    will write the app and softdevice to the nRF51822. You can erase\n    a chip with:\n\n        make erase-all\n\n    See the [make](https://github.com/lab11/nrf5x-base/tree/master/make) folder\n    for a complete list of commands.\n\n    Most of our boards use a [TagConnect header](http://www.tag-connect.com/TC2030-IDC-NL)\n    instead of the way-too-large ARM JTAG header. We use [our own](https://github.com/lab11/jtag-tagconnect)\n    adapter, but Segger also makes [one](https://www.segger.com/jlink-6-pin-needle-adapter.html).\n\n5. Upon inital programming, the nRF will enter debug mode, which will prevent the nRF from sleeping and \n   prevent the reset line from working. To fix this, either perform a powerdown/powerup or download nrfjprog from \n   (https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF51822) and run nrfjprog --pinreset\n\nGit Submodules\n--------------\n\nIf you're using submodules in your project, you may want to use this to make\ngit automatically update them:\nhttps://gist.github.com/brghena/fc4483a2df83c47660a5\n\n\nBLE Tools for Other Platforms\n-----------------\n\nWhen developing a BLE application, several tools exist to make your life easier.\nThe easiest option, if you have access to an android phone, is [nRF Master Control Panel](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp\u0026hl=en).\nOn iOS, [LightBlue Explorer](https://itunes.apple.com/us/app/lightblue-explorer-bluetooth/id557428110?mt=8)\nhas similar or better functionality. Alternatively,\n[noble](https://github.com/sandeepmistry/noble) is a NodeJS library for interacting with BLE that can run from\na Linux or Mac computer.\n\nExample Platforms Using nRF5x-base\n----------------------------------\n\n- [Squall](https://github.com/helena-project/squall)\n- [BLEES](https://github.com/lab11/blees)\n- [Nucleum](https://github.com/lab11/nucleum)\n- [PolyPoint](https://github.com/lab11/polypoint)\n- [PowerBlade](https://github.com/lab11/powerblade)\n\n\nLicense\n-------\n\nThe files in this repository are licensed under the [MIT License](LICENSE)\nunless otherwise noted by the local directory's README and license files.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flab11%2Fnrf5x-base","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flab11%2Fnrf5x-base","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flab11%2Fnrf5x-base/lists"}