Skip to content

Commit 0ba1725

Browse files
Bluetooth Applications v3.3.0
1 parent dd83923 commit 0ba1725

File tree

188 files changed

+6916
-3217
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

188 files changed

+6916
-3217
lines changed

.github/pull_request_template.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,28 @@ Please note that:
55
- Once a new pull request is opened in the project
66
or new commit to an existing pull request will start a new build
77
to automatically update the status of every commit on every branch.
8-
Read https://confluence.silabs.com/spaces/SCLP/pages/623313008/SOSC+-+SiliconLabsSoftware+-+Pull+Request+Process for more.
8+
Read https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list for more.
99
-->
1010

11-
**[Description]**
11+
## **Description**
1212
Hi There,
1313
This is a short description of a pull request.
1414
It can be multiline with empty lines as well.
1515

16-
**[Files]**
16+
## **Files**
1717
- inc/driver.h
1818
- src/driver.c
1919
- test/app.c
2020
- etc.
2121

22-
**[Video]**
22+
## **Video**
23+
24+
## **Application Lists**
25+
This is an additional feature to indicate which application type your project belongs to.
26+
You can find the list of application types here:
27+
https://siliconlabs-massmarket.github.io/repository-catalog
28+
29+
- project1_folder_name
30+
- application type 1
31+
- application type 2
32+
- application type n

.github/workflows/pull_request_check.yml

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: CI-Check
22

33
on:
44
pull_request_target:
5-
types: [opened, reopened, synchronize]
5+
types: [opened, reopened, synchronize, edited]
66

77
env:
88
SL_SLC_PATH: ${{ github.workspace }}/tools/slc_cli/slc
@@ -11,10 +11,16 @@ env:
1111
STUDIO_ADAPTER_PACK_PATH: ${{ github.workspace }}/tools/SimplicityStudio/developer/adapter_packs
1212
POST_BUILD_EXE: ${{ github.workspace }}/tools/SimplicityStudio/developer/adapter_packs/commander/commander
1313
WORKSPACE: ${{ github.workspace }}
14+
PR_BODY: ${{ github.event.pull_request.body }}
15+
PR_HEAD_REF: ${{ github.event.pull_request.head.ref }}
16+
17+
concurrency:
18+
group: ${{ github.workflow }}-${{ github.ref }}
19+
cancel-in-progress: true
1420

1521
jobs:
1622
readme_structure:
17-
runs-on: ubuntu-latest
23+
runs-on: ${{ github.repository_visibility == 'internal' && 'silabs-internal' || 'ubuntu-latest' }}
1824
outputs:
1925
result_readme: ${{ steps.check_readme.outputs.result_readme }}
2026
steps:
@@ -37,7 +43,7 @@ jobs:
3743
uses: actions/checkout@v4
3844
with:
3945
repository: SiliconLabsSoftware/aep_ci_tools
40-
ref: 'pr_checking'
46+
ref: 'ci_checking'
4147
token: ${{ steps.app-token.outputs.token }}
4248
path: 'aep_ci_tools'
4349

@@ -83,7 +89,7 @@ jobs:
8389
fi
8490
8591
coding_convention:
86-
runs-on: ubuntu-latest
92+
runs-on: ${{ github.repository_visibility == 'internal' && 'silabs-internal' || 'ubuntu-latest' }}
8793
outputs:
8894
result_coding: ${{ steps.check_coding.outputs.result_coding }}
8995
steps:
@@ -106,7 +112,7 @@ jobs:
106112
uses: actions/checkout@v4
107113
with:
108114
repository: SiliconLabsSoftware/aep_ci_tools
109-
ref: 'pr_checking'
115+
ref: 'ci_checking'
110116
token: ${{ steps.app-token.outputs.token }}
111117
path: 'aep_ci_tools'
112118

@@ -137,14 +143,21 @@ jobs:
137143
xargs -I{} -a changed_projects_folder.txt find {} -type f -name "*.[ch]" > source_list.txt
138144
bash ${{ github.workspace }}/aep_ci_tools/scripts/check_coding_style.sh source_list.txt > coding_style_report.html
139145
146+
if grep -qe "failed" coding_style_report.html; then
147+
echo "Failure detected in coding style report."
148+
else
149+
echo "No failure detected in coding style report."
150+
rm -rf coding_style_report.html
151+
fi
152+
140153
- name: Upload Result
141154
id: html_report
142155
if: ${{ steps.pr_check.outputs.has_changes == 'true' }}
143156
uses: actions/upload-artifact@v4
144157
with:
145158
name: coding_style_report
146159
path: projects/coding_style_report.html
147-
retention-days: 90
160+
if-no-files-found: ignore
148161

149162
- name: Browse the formatted files by Uncrustify
150163
id: solution_report
@@ -173,7 +186,7 @@ jobs:
173186
fi
174187
175188
build_firmware:
176-
runs-on: ubuntu-latest
189+
runs-on: ${{ github.repository_visibility == 'internal' && 'silabs-internal' || 'ubuntu-latest' }}
177190
outputs:
178191
result_build: ${{ steps.check_build.outputs.result_build }}
179192
steps:
@@ -201,7 +214,7 @@ jobs:
201214
uses: actions/checkout@v4
202215
with:
203216
repository: SiliconLabsSoftware/aep_ci_tools
204-
ref: 'pr_checking'
217+
ref: 'ci_checking'
205218
token: ${{ steps.app-token.outputs.token }}
206219
path: 'aep_ci_tools'
207220

@@ -285,7 +298,7 @@ jobs:
285298
uses: actions/checkout@v4
286299
with:
287300
repository: SiliconLabsSoftware/aep_ci_tools
288-
ref: 'pr_checking'
301+
ref: 'ci_checking'
289302
token: ${{ steps.app-token.outputs.token }}
290303
path: 'aep_ci_tools'
291304

@@ -353,14 +366,14 @@ jobs:
353366
-D"sonar.verbose=true" \
354367
-D"sonar.qualitygate.wait=True" \
355368
-D"sonar.cfamily.compile-commands=wrapper_out/compile_commands.json" \
356-
-D"sonar.branch.name=${{ github.event.pull_request.head.ref }}" \
369+
-D"sonar.branch.name=$PR_HEAD_REF" \
357370
-D"sonar.scm.disabled=True" \
358371
-D"sonar.projectName=${{ env.repo }}" \
359372
-D"sonar.projectKey=${{ env.repo }}" \
360373
-D"sonar.projectBaseDir=ws" \
361374
-D"sonar.sources=." \
362375
-D"sonar.inclusions=${{ steps.included_src.outputs.sonar_inclusions }}" \
363-
-D"sonar.host.url=${{ secrets.SONAR_HOST_URL }}" \
376+
-D"sonar.host.url=${{ vars.SONAR_HOST_URL }}" \
364377
-D"sonar.token=${{ secrets.SONAR_TOKEN }}" \
365378
-D"sonar.language=c" \
366379
-D"sonar.cfamily.cache.enabled=false" > sonar_log.txt
@@ -374,36 +387,39 @@ jobs:
374387
375388
if grep -qe "EXECUTION SUCCESS" sonar_log.txt; then
376389
echo "Result: Success"
377-
echo "Check report here: ${{ secrets.SONAR_HOST_URL }}/dashboard?id=${{ env.repo }}&branch=${{ github.event.pull_request.head.ref }}"
390+
echo "Check report here: ${{ vars.SONAR_HOST_URL }}/dashboard?id=${{ env.repo }}&branch=$PR_HEAD_REF"
378391
echo "result_sonar=success" >> $GITHUB_OUTPUT
379392
else
380393
echo "Result: Failure"
381394
cat sonar_log.txt
382395
echo ""
383396
echo "......................"
384-
echo "Check report here: ${{ secrets.SONAR_HOST_URL }}/dashboard?id=${{ env.repo }}&branch=${{ github.event.pull_request.head.ref }}"
397+
echo "Check report here: ${{ vars.SONAR_HOST_URL }}/dashboard?id=${{ env.repo }}&branch=$PR_HEAD_REF"
385398
exit 1
386399
fi
387400
388401
- name: Update Shield
389402
if: ${{ steps.pr_check.outputs.has_changes == 'true' }}
390403
run: |
391-
cp ${{ github.workspace}}/projects/changed_projects_folder.txt ${{ github.workspace}}/changed_projects_folder.txt
404+
echo "$PR_BODY" > ${{ github.workspace }}/pr_desc.txt
405+
406+
cp ${{ github.workspace }}/projects/changed_projects_folder.txt ${{ github.workspace }}/changed_projects_folder.txt
392407
cd projects
393408
git clean -xdf
394-
cd ${{ github.workspace}}
395-
export SCRIPT_PATH="${{ github.workspace}}/aep_ci_tools/scripts/github_shield.py"
396-
python3 -u $SCRIPT_PATH --check_change ${{ github.workspace}}/changed_projects_folder.txt
409+
410+
cd ${{ github.workspace }}
411+
export SCRIPT_PATH="${{ github.workspace }}/aep_ci_tools/scripts/github_shield.py"
412+
python3 -u $SCRIPT_PATH --check_change changed_projects_folder.txt --pr_desc_file ${{ github.workspace }}/pr_desc.txt
397413
398414
if [ ${{ steps.check_sonar.outputs.result_sonar }} == success ]; then
399-
cd ${{ github.workspace}}/projects
415+
cd ${{ github.workspace }}/projects
400416
if [ -n "$(git status --porcelain)" ]; then
401417
{
402418
git config --global user.name "github-actions[bot]"
403419
git config --global user.email "github-actions[bot]@users.noreply.github.com"
404420
git add .
405421
git commit -m "Automatically update Shield for README.md"
406-
git push origin HEAD:${{ github.event.pull_request.head.ref }}
422+
git push origin HEAD:$PR_HEAD_REF
407423
}
408424
else
409425
echo "No changes README.md";
@@ -432,7 +448,7 @@ jobs:
432448
433449
REQUIRED_CHECKS="$CHECK_README $CHECK_CODING $CHECK_BUILD_FW $CHECK_SONARQUBE"
434450
echo $REQUIRED_CHECKS
435-
if [[ $REQUIRED_CHECKS == *"success"* && $REQUIRED_CHECKS != *"failure"* ]]; then
451+
if [[ ("$REQUIRED_CHECKS" == *"success"* && $REQUIRED_CHECKS != *"failure"*) || -z "${REQUIRED_CHECKS// }" ]]; then
436452
curl -X POST -H "Authorization: token ${{ steps.app-token.outputs.token }}" \
437453
-d '{"event":"APPROVE"}' \
438454
https://api.github.com/repos/$GITHUB_REPOSITORY/pulls/${{ github.event.pull_request.number }}/reviews
@@ -463,12 +479,12 @@ jobs:
463479
464480
REQUIRED_CHECKS="$CHECK_README $CHECK_CODING $CHECK_BUILD_FW"
465481
echo $REQUIRED_CHECKS
466-
if [[ $REQUIRED_CHECKS == *"success"* && $REQUIRED_CHECKS != *"failure"* ]]; then
482+
if [[ ("$REQUIRED_CHECKS" == *"success"* && $REQUIRED_CHECKS != *"failure"*) || -z "${REQUIRED_CHECKS// }" ]]; then
467483
curl -X POST -H "Authorization: token ${{ steps.app-token.outputs.token }}" \
468484
-d '{"event":"APPROVE"}' \
469485
https://api.github.com/repos/$GITHUB_REPOSITORY/pulls/${{ github.event.pull_request.number }}/reviews
470486
else
471487
curl -X POST -H "Accept: application/vnd.github+json" -H "Authorization: token ${{ steps.app-token.outputs.token }}" \
472488
https://api.github.com/repos/$GITHUB_REPOSITORY/pulls/${{ github.event.pull_request.number }}/reviews \
473489
-d '{"commit_id":"${{ github.sha }}", "body":"Some checks were not successful!", "event":"REQUEST_CHANGES"}'
474-
fi
490+
fi

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313

1414
# Silicon Labs Bluetooth Applications #
1515

16-
[![Version Badge](https://img.shields.io/badge/-v3.2.0-green)](https://github.com/SiliconLabs/bluetooth_applications/releases)
17-
[![SDK Badge](https://img.shields.io/badge/SiSDK-v2025.6.0-green)](https://github.com/SiliconLabs/simplicity_sdk/releases)
18-
[![TPHD Version Badge](https://img.shields.io/badge/TPHD-v4.4.0-green)](https://github.com/SiliconLabs/third_party_hw_drivers_extension/releases)
16+
[![Version Badge](https://img.shields.io/badge/-v3.3.0-green)](https://github.com/SiliconLabs/bluetooth_applications/releases)
17+
[![SDK Badge](https://img.shields.io/badge/SiSDK-v2025.6.2-green)](https://github.com/SiliconLabs/simplicity_sdk/releases)
18+
[![TPHD Version Badge](https://img.shields.io/badge/TPHD-v4.4.1-green)](https://github.com/SiliconLabs/third_party_hw_drivers_extension/releases)
1919
![License badge](https://img.shields.io/badge/License-Zlib-green)
2020

2121
The Silicon Labs Bluetooth stack allows for a wide variety applications to be built on its foundation. This repo showcases some example applications using the Silicon Labs Bluetooth stack.
@@ -95,6 +95,7 @@ This repository provides both SLCP projects (as External Repositories) and SLS p
9595
| 67 | Bluetooth - Channel Sounding Based PC Locking | [Click Here](./bluetooth_channel_sounding_based_pc_locking/) |
9696
| 68 | Bluetooth - Channel Sounding Based Presence Detection | [Click Here](./bluetooth_channel_sounding_presence_detection/) |
9797
| 69 | Bluetooth - SoC Voltage Monitor | [Click Here](./bluetooth_soc_voltage_monitor/) |
98+
| 70 | Bluetooth - Pulse Oximeter and Heart Rate Monitor (MAX30101 & MAX32664) | [Click Here](./bluetooth_pulse_oximeter_and_heart_rate_monitor/) |
9899

99100

100101
## Requirements ##

bluetooth_accelerometer_bma400/README.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
11
# Bluetooth - Accelerometer (BMA400) #
22

3-
![Type badge](https://img.shields.io/badge/Type-Virtual%20Application-green)
43
![Technology badge](https://img.shields.io/badge/Technology-Bluetooth-green)
54
![License badge](https://img.shields.io/badge/License-Zlib-green)
6-
![SDK badge](https://img.shields.io/badge/SDK-v2025.6.0-green)
5+
![SDK badge](https://img.shields.io/badge/SDK-v2025.6.2-green)
76
[![Required board](https://img.shields.io/badge/Mikroe-Accel%205%20Click%20board-green)](https://www.mikroe.com/accel-5-click)
87
![Build badge](https://img.shields.io/badge/Build-passing-green)
9-
![Flash badge](https://img.shields.io/badge/Flash-198.62%20KB-blue)
8+
![Flash badge](https://img.shields.io/badge/Flash-199.11%20KB-blue)
109
![RAM badge](https://img.shields.io/badge/RAM-11.14%20KB-blue)
1110

11+
[![Type badge](https://img.shields.io/badge/Direction%20Finding-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Direction%20Finding)
12+
[![Type badge](https://img.shields.io/badge/Entertainment%20Devices-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Entertainment%20Devices)
13+
[![Type badge](https://img.shields.io/badge/Factory%20Automation-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Factory%20Automation)
14+
[![Type badge](https://img.shields.io/badge/Human%20Machine%20Interface-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Human%20Machine%20Interface)
15+
[![Type badge](https://img.shields.io/badge/Industrial%20Wearables-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Industrial%20Wearables)
16+
[![Type badge](https://img.shields.io/badge/Portable%20Medical%20Devices-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Portable%20Medical%20Devices)
17+
[![Type badge](https://img.shields.io/badge/Predictive%20Maintenance-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Predictive%20Maintenance)
18+
[![Type badge](https://img.shields.io/badge/Process%20Automation-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Process%20Automation)
19+
[![Type badge](https://img.shields.io/badge/Sensors-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Sensors)
20+
[![Type badge](https://img.shields.io/badge/Smart%20Wearable%20Devices-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Smart%20Wearable%20Devices)
21+
1222
## Overview ##
1323

1424
This project aims to implement an accelerometer application using Silicon Labs development kits and external sensors integrated with the BLE wireless stack.
@@ -36,8 +46,8 @@ The following picture shows the system view of how it works.
3646

3747
## SDK version ##
3848

39-
- [Simplicity SDK v2025.6.0](https://github.com/SiliconLabs/simplicity_sdk/releases/tag/v2025.6.0)
40-
- [Third Party Hardware Drivers v4.4.0](https://github.com/SiliconLabs/third_party_hw_drivers_extension)
49+
- [Simplicity SDK v2025.6.2](https://github.com/SiliconLabs/simplicity_sdk/releases/tag/v2025.6.2)
50+
- [Third Party Hardware Drivers v4.4.1](https://github.com/SiliconLabs/third_party_hw_drivers_extension)
4151

4252
---
4353

bluetooth_accelerometer_bma400/SimplicityStudio/bt_accelerometer_bma400_i2c.slcp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ other_file:
8787

8888
sdk_extension:
8989
- id: third_party_hw_drivers
90-
version: 4.4.0
90+
version: 4.4.1
9191

9292
tag:
9393
- hardware:rf:band:2400

bluetooth_accelerometer_bma400/SimplicityStudio/bt_accelerometer_bma400_spi.slcp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ other_file:
8787

8888
sdk_extension:
8989
- id: third_party_hw_drivers
90-
version: 4.4.0
90+
version: 4.4.1
9191

9292
tag:
9393
- hardware:rf:band:2400

bluetooth_ai_ml_hand_signal_recognition/README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
# Bluetooth - AI/ML Hand Signal Recognition #
22

3-
![Type badge](https://img.shields.io/badge/Type-Virtual%20Application-green)
43
![Technology badge](https://img.shields.io/badge/Technology-Bluetooth-green)
54
![License badge](https://img.shields.io/badge/License-Zlib-green)
6-
![SDK badge](https://img.shields.io/badge/SDK-v2025.6.0-green)
5+
![SDK badge](https://img.shields.io/badge/SDK-v2025.6.2-green)
76
[![Required board](https://img.shields.io/badge/SparkFun-Micro%20OLED%20Breakout-green)](https://www.sparkfun.com/products/14532)
87
[![Required board](https://img.shields.io/badge/SparkFun-MLX90640%20IR%20Array-green)](https://www.sparkfun.com/products/14844)
98
![Build badge](https://img.shields.io/badge/Build-passing-green)
109
![Flash badge](https://img.shields.io/badge/Flash-36.29%20KB-blue)
1110
![RAM badge](https://img.shields.io/badge/RAM-308.61%20KB-blue)
1211

12+
[![Type badge](https://img.shields.io/badge/Entertainment%20Devices-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Entertainment%20Devices)
13+
[![Type badge](https://img.shields.io/badge/Human%20Machine%20Interface-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Human%20Machine%20Interface)
14+
[![Type badge](https://img.shields.io/badge/Industrial%20Wearables-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Industrial%20Wearables)
15+
[![Type badge](https://img.shields.io/badge/Smart%20Wearable%20Devices-salmon)](https://siliconlabs-massmarket.github.io/repository-catalog/#applications-list?filter=Smart%20Wearable%20Devices)
16+
1317
## Overview ##
1418

1519
This application uses TensorFlow Lite for Microcontrollers to run image classification machine learning models to detect the hand gestures from image data recorded from a Far Infrared Sensor. The detection is visualized using the OLED and the classification results are written to the VCOM serial port.
@@ -55,8 +59,8 @@ The hand gestures:
5559

5660
## SDK version ##
5761

58-
- [Simplicity SDK v2025.6.0](https://github.com/SiliconLabs/simplicity_sdk/releases/tag/v2025.6.0)
59-
- [Third Party Hardware Drivers v4.4.0](https://github.com/SiliconLabs/third_party_hw_drivers_extension)
62+
- [Simplicity SDK v2025.6.2](https://github.com/SiliconLabs/simplicity_sdk/releases/tag/v2025.6.2)
63+
- [Third Party Hardware Drivers v4.4.1](https://github.com/SiliconLabs/third_party_hw_drivers_extension)
6064
- [AI/ML - Alpha - 2.1.0](https://github.com/SiliconLabsSoftware/aiml-extension)
6165

6266
---

bluetooth_ai_ml_hand_signal_recognition/SimplicityStudio/bt_hand_signal_recognition.slcp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,9 +171,9 @@ other_file:
171171

172172
sdk_extension:
173173
- id: third_party_hw_drivers
174-
version: 4.4.0
174+
version: 4.4.1
175175
- id: aiml
176-
version: 2.1.0
176+
version: 2.1.2
177177

178178
tag:
179179
- hardware:rf:band:2400

bluetooth_ai_ml_hand_signal_recognition/inc/recognize_commands.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
// there are hard limits on the number of results it can store.
3434
class PreviousResultsQueue {
3535
public:
36-
PreviousResultsQueue(tflite::ErrorReporter *error_reporter)
36+
PreviousResultsQueue(tflite::ErrorReporter * error_reporter)
3737
: error_reporter_(error_reporter), front_index_(0), size_(0)
3838
{
3939
}
@@ -45,7 +45,7 @@ class PreviousResultsQueue {
4545
{
4646
}
4747

48-
Result(int32_t time, uint8_t *input_scores) : time_(time)
48+
Result(int32_t time, uint8_t * input_scores) : time_(time)
4949
{
5050
for (int i = 0; i < TFLITE_MODEL_CLASS_COUNT; ++i) {
5151
scores[i] = input_scores[i];

0 commit comments

Comments
 (0)