Skip to content

Commit

Permalink
Update actions workflow to build BT5 examples, fix example builds.
Browse files Browse the repository at this point in the history
  • Loading branch information
h2zero committed Feb 26, 2024
1 parent 0f4ae66 commit 5cff98b
Show file tree
Hide file tree
Showing 3 changed files with 155 additions and 18 deletions.
145 changes: 138 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ jobs:
- "examples/NimBLE_Server"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install platformio
Expand Down Expand Up @@ -43,6 +43,48 @@ jobs:
cp ${{ matrix.example }}/* example/src/
platformio run -d example
build_bt5_esp_pio:
strategy:
fail-fast: false
matrix:
example:
- "examples/Bluetooth_5/NimBLE_extended_client"
- "examples/Bluetooth_5/NimBLE_extended_server"
variant:
- esp32c3
- esp32s3
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install platformio
run: |
python -m pip install --upgrade pip
pip install platformio
- name: Build esp PIO
run: |
mkdir -p example/lib
rsync -Rr . example/lib/
mkdir example/src
cat > example/platformio.ini << EOF
[env]
platform = espressif32
framework = arduino
[env:esp32c3]
board = esp32-c3-devkitm-1
build_flags = '-DCONFIG_BT_NIMBLE_EXT_ADV=1'
[env:esp32s3]
board = esp32-s3-devkitc-1
build_flags = '-DCONFIG_BT_NIMBLE_EXT_ADV=1'
EOF
cp ${{ matrix.example }}/* example/src/
platformio run -d example
build_arduino-esp32:
strategy:
fail-fast: false
Expand All @@ -56,7 +98,7 @@ jobs:
- esp32s3
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Build arduino-esp32
uses: arduino/compile-sketches@v1.1.0
with:
Expand All @@ -68,6 +110,33 @@ jobs:
fqbn: "esp32:esp32:${{ matrix.variant }}"
sketch-paths: ${{ matrix.example }}

build_bt5_arduino-esp32:
strategy:
fail-fast: false
matrix:
example:
- "examples/Bluetooth_5/NimBLE_extended_client"
- "examples/Bluetooth_5/NimBLE_extended_server"
variant:
- esp32c3
- esp32s3
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set config for BT5
run: |
sed -i '0,/#include \"nimconfig_rename.h\"/a #define CONFIG_BT_NIMBLE_EXT_ADV 1' ./src/nimconfig.h
- name: Build BT5 arduino-esp32
uses: arduino/compile-sketches@v1.1.0
with:
cli-version: latest
platforms: |
- name: "esp32:esp32"
source-url: "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json"
version: latest
fqbn: "esp32:esp32:${{ matrix.variant }}"
sketch-paths: ${{ matrix.example }}

build_n-able-Arduino:
strategy:
fail-fast: false
Expand All @@ -82,7 +151,7 @@ jobs:
- Generic_nRF52840
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Build n-able Arduino
uses: arduino/compile-sketches@v1.1.0
with:
Expand All @@ -94,6 +163,32 @@ jobs:
fqbn: "h2zero:arm-ble:${{ matrix.variant }}"
sketch-paths: ${{ matrix.example }}

build_bt5_n-able-Arduino:
strategy:
fail-fast: false
matrix:
example:
- "examples/Bluetooth_5/NimBLE_extended_client"
- "examples/Bluetooth_5/NimBLE_extended_server"
variant:
- Generic_nRF52840
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set config for BT5
run: |
echo "CONFIG_BT_NIMBLE_EXT_ADV=1" > ${{ matrix.example }}/build_opt.h
- name: Build BT5 n-able Arduino
uses: arduino/compile-sketches@v1.1.0
with:
cli-version: latest
platforms: |
- name: "h2zero:arm-ble"
source-url: "https://h2zero.github.io/n-able-Arduino/package_n-able_boards_index.json"
version: latest
fqbn: "h2zero:arm-ble:${{ matrix.variant }}"
sketch-paths: ${{ matrix.example }}

build_n-able-pio:
strategy:
fail-fast: false
Expand All @@ -103,9 +198,9 @@ jobs:
- "examples/NimBLE_Server"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install platformio
Expand Down Expand Up @@ -136,10 +231,46 @@ jobs:
EOF
cp ${{ matrix.example }}/* example/src/
platformio run -d example
build_bt5_n-able-pio:
strategy:
fail-fast: false
matrix:
example:
- "examples/Bluetooth_5/NimBLE_extended_client"
- "examples/Bluetooth_5/NimBLE_extended_server"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install platformio
run: |
python -m pip install --upgrade pip
pip install platformio
- name: Build esp PIO
run: |
mkdir -p example/lib
rsync -Rr . example/lib/
mkdir example/src
cat > example/platformio.ini << EOF
[env]
platform = https://github.com/h2zero/platform-n-able.git#1.0.0
framework = arduino
[env:generic_nrf52840]
board = generic_nrf52840
build_flags = '-DCONFIG_BT_NIMBLE_EXT_ADV=1'
EOF
cp ${{ matrix.example }}/* example/src/
platformio run -d example
build_docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Doxygen Action
uses: mattnotmitt/doxygen-action@v1.9.5
with:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@
*
*/

/****************************************************
* For use with ESP32C3, ESP32S3, ESP32H2 ONLY! *
/**************************************************/

#include <NimBLEDevice.h>
#if !CONFIG_BT_NIMBLE_EXT_ADV
# error Must enable extended advertising, see nimconfig.h file.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,14 @@
*
*/

/****************************************************
* For use with ESP32C3, ESP32S3, ESP32H2 ONLY! *
/**************************************************/

#include "NimBLEDevice.h"
#if !CONFIG_BT_NIMBLE_EXT_ADV
# error Must enable extended advertising, see nimconfig.h file.
#endif

#ifdef ESP_PLATFORM
#include "esp_sleep.h"
#endif

#define SERVICE_UUID "ABCD"
#define CHARACTERISTIC_UUID "1234"
Expand All @@ -48,8 +46,12 @@ class ServerCallbacks: public NimBLEServerCallbacks {
};

void onDisconnect(NimBLEServer* pServer, NimBLEConnInfo& connInfo, int reason) {
Serial.printf("Client disconnected - sleeping for %u seconds\n", sleepSeconds);
Serial.printf("Client disconnected - sleeping for %" PRIu32 "seconds\n", sleepSeconds);
#ifdef ESP_PLATFORM
esp_deep_sleep_start();
#else
systemRestart(); // nRF platforms restart then sleep via delay in setup.
#endif
};
};

Expand All @@ -63,18 +65,24 @@ class advertisingCallbacks: public NimBLEExtAdvertisingCallbacks {
printf("Client connecting\n");
return;
case BLE_HS_ETIMEOUT:
printf("Time expired - sleeping for %u seconds\n", sleepSeconds);
printf("Time expired - sleeping for %" PRIu32 "seconds\n", sleepSeconds);
break;
default:
break;
}

#ifdef ESP_PLATFORM
esp_deep_sleep_start();
#else
systemRestart(); // nRF platforms restart then sleep via delay in setup.
#endif
}
};

void setup () {
Serial.begin(115200);
#ifndef ESP_PLATFORM
delay(sleepSeconds * 1000); // system ON sleep mode for nRF platforms to simulate the esp deep sleep with timer wakeup
#endif

NimBLEDevice::init("Extended advertiser");

Expand Down Expand Up @@ -143,7 +151,9 @@ void setup () {
Serial.printf("Failed to register advertisment data\n");
}

#ifdef ESP_PLATFORM
esp_sleep_enable_timer_wakeup(sleepSeconds * 1000000);
#endif
}

void loop () {
Expand Down

0 comments on commit 5cff98b

Please sign in to comment.