You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+93-43Lines changed: 93 additions & 43 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,8 +2,6 @@
2
2
3
3
An Arduino Core for ARM based BLE boards supported by the NimBLE stack.
4
4
5
-
**This core is currently still in development and not yet available through the Arduino board manager. Manual installation, described below, is required to use this core.**
6
-
7
5
If you are interested in assisting the development of this project please submit issues and PR's. Or become a collaborator!
8
6
9
7
## Features
@@ -12,65 +10,117 @@ If you are interested in assisting the development of this project please submit
12
10
* No softdevice, NimBLE provides a complete BLE stack.
13
11
* Contains a subset of the EEPROM library to support basic config storage in flash.
14
12
* Supports `printf` and `Serial.printf`
15
-
* Uses FreeRTOS.
13
+
* Uses/includes FreeRTOS.
16
14
* Designed to maximize battery life using tickless idle. This allows the MCU to sleep any time `delay` is called.
17
15
* Custom configuration of FreeRTOS and NimBLE compile options supported by providing a `build_opt.h` file in your sketch.
18
16
19
-
## Why do this?
17
+
## Why?
20
18
21
19
I wanted to have a consistent BLE API on all of the devices I work with. NimBLE is the best choice for this as it is the most feature complete and fully open source library available for Arduino.
22
20
23
-
## BLE
24
-
25
-
This Arduino Core does **not** contain any BLE functionality. It has been designed to support using the [NimBLE-Arduino](https://github.com/h2zero/NimBLE-Arduino) library for BLE operation.
26
-
**Note:** Currently only the master branch of NimBLE-Arduino supports Arm devices and no releases have been made yet with Arm support.
5. Extract OpenOCD and copy the contents to ```<ARDUINO_FOLDER>/hardware/n-able/arm-ble/tools/openocd```
46
-
6. Extract GCC and copy the contents to ```<ARDUINO_FOLDER>/hardware/n-able/arm-ble/tools/gcc-arm-none-eabi/9_0_2020q2```
47
-
7. Restart the Arduino IDE
48
-
49
-
### Driver Setup for Segger J-Link
50
-
51
-
1. Download [Zadig](http://zadig.akeo.ie)
52
-
2. Plugin Segger J-Link or DK board
53
-
3. Start ```Zadig```
54
-
4. Select ```Options -> List All Devices```
55
-
5. Plug and unplug your device to find what changes, and select the ```Interface 2``` from the device dropdown
56
-
6. Click ```Replace Driver```
57
-
58
-
__NOTE__: To roll back to the original driver go to: Device Manager -> Right click on device -> Check box for "Delete the driver software for this device" and click Uninstall
59
-
60
-
### Flashing your device
84
+
3. Create a folder named ```hardware```, if it does not exist, and change directories to it
85
+
4. Clone this repo: ```git clone https://github.com/h2zero/n-able-Arduino.git```
86
+
5. Restart the Arduino IDE
87
+
88
+
## Flashing your device
61
89
62
90
1. Select your board from the Tools -> Board menu
63
91
2. Select any options you want
64
-
3. Select a programmer (J-Link, ST-Link V2, CMSIS-DAP, or Black Magic Probe) from the Tools -> "Programmer: " menu
92
+
3. Select a programmer (J-Link, ST-Link V2, CMSIS-DAP, Black Magic Probe, adafruit-nrfutil or nrfutil) from the Tools -> "Programmer: " menu
65
93
4. Connect your programmer to the device and click Upload
66
94
67
-
**Note:** Currently no bootloader is provided or required.
68
-
Instead you will need to erase any bootloader currently installed on your device. To do this, select your board from the board menu and click "Burn Bootloader", this will completely erase the device flash memory.
95
+
### Uploading via Segger J-Link
96
+
1. Make sure you have [Segger J-Link](https://www.segger.com/downloads/jlink) installed on your system.
97
+
2. (For Windows) add the JLink.exe path to your environment variables.
98
+
3. Select J-Link as the firmware uploader in the tools menu.
99
+
100
+
### Uploading via adafruit-nrfutil (for Adafruit bootloader devices only)
101
+
1. Install adafruit-nrfutil if not already installed `pip install adafruit-nrfutil`
102
+
2. Select adafruit-nrfutil as the firmware uploader in the tools menu.
103
+
104
+
### Uploading via (Nordic) nrfutil (for Nordic bootloader devices only)
105
+
1. Install nrfutil if not already installed `pip install nrfutil`
106
+
2. Select nrfutil as the firmware uploader in the tools menu.
107
+
108
+
## BLE
109
+
110
+
This Arduino Core does **not** contain any BLE functionality. It has been designed to support using the [NimBLE-Arduino](https://github.com/h2zero/NimBLE-Arduino) library for BLE operation.
111
+
**Note:** Currently only the release version 1.4.0 and above of [NimBLE-Arduino](https://github.com/h2zero/NimBLE-Arduino) supports Arm devices.
112
+
113
+
## Bootloader
114
+
Currently only some boards have Adafruit bootloaders available which are provided as options. You may choose to use the bootloader or none.
115
+
The provided Adafruit bootloaders have no softdevice, if you currently are using the softdevice based Adafruit bootloader on your nRF52 board you will need to update it to the one provided by selecting it from the boards menu and clicking `Burn Bootloader`.
116
+
117
+
For boards without the Adafruit bootloader option clicking `Burn Bootloader` will simply erase the flash memory on the device. This is required if you have any bootloader flashed already.
69
118
70
119
## Credits
71
120
72
121
This core is based on [Arduino-nRF5](https://github.com/sandeepmistry/arduino-nRF5) by Sandeep Mistry,
73
-
which in turn is based on the [Arduino SAMD Core](https://github.com/arduino/ArduinoCore-samd).
122
+
which is based on the [Arduino SAMD Core](https://github.com/arduino/ArduinoCore-samd).
123
+
With some code from [Adafruit_nRF52_Arduino](https://github.com/adafruit/Adafruit_nRF52_Arduino)
0 commit comments