armmbed / mbed-os-example-ble Goto Github PK
View Code? Open in Web Editor NEWBLE demos using mbed OS and mbed cli
License: Apache License 2.0
BLE demos using mbed OS and mbed cli
License: Apache License 2.0
Version: https://github.com/ARMmbed/mbed-os-example-ble/tree/mbed-os-5.1.0-rc3
OS: Mac 10.11.6
Toolchain: GCC_ARM
Target: NUCLEO_F401RE + ST BLUE NRG
Test: LEDBlinker
Compile: main.cpp
[Error] main.cpp@177,48: no matching function for call to 'events::EventQueue::post_every(void (&)(), int)'
[ERROR] ./source/main.cpp: In function 'int main()':
./source/main.cpp:177:48: error: no matching function for call to 'events::EventQueue::post_every(void (&)(), int)'
eventQueue.post_every(periodicCallback, 500);
^
In file included from ./mbed-events/events.h:19:0,
from ./source/main.cpp:17:
./mbed-events/EventQueue.h:176:9: note: candidate: template<class F> int events::EventQueue::post_every(int, F)
int post_every(int ms, F f) {
^
./mbed-events/EventQueue.h:176:9: note: template argument deduction/substitution failed:
./source/main.cpp:177:48: note: cannot convert 'periodicCallback' (type 'void()') to type 'int'
eventQueue.post_every(periodicCallback, 500);
^
In file included from ./mbed-events/events.h:19:0,
from ./source/main.cpp:17:
./mbed-events/EventQueue.h:190:9: note: candidate: template<class F, class A0> int events::EventQueue::post_every(int, F, A0)
int post_every(int ms, F f, A0 a0) {
^
./mbed-events/EventQueue.h:190:9: note: template argument deduction/substitution failed:
./source/main.cpp:177:48: note: cannot convert 'periodicCallback' (type 'void()') to type 'int'
eventQueue.post_every(periodicCallback, 500);
^
In file included from ./mbed-events/events.h:19:0,
from ./source/main.cpp:17:
./mbed-events/EventQueue.h:195:9: note: candidate: template<class F, class A0, class A1> int events::EventQueue::post_every(int, F, A0, A1)
int post_every(int ms, F f, A0 a0, A1 a1) {
^
./mbed-events/EventQueue.h:195:9: note: template argument deduction/substitution failed:
./source/main.cpp:177:48: note: cannot convert 'periodicCallback' (type 'void()') to type 'int'
eventQueue.post_every(periodicCallback, 500);
^
In file included from ./mbed-events/events.h:19:0,
from ./source/main.cpp:17:
./mbed-events/EventQueue.h:200:9: note: candidate: template<class F, class A0, class A1, class A2> int events::EventQueue::post_every(int, F, A0, A1, A2)
int post_every(int ms, F f, A0 a0, A1 a1, A2 a2) {
^
./mbed-events/EventQueue.h:200:9: note: template argument deduction/substitution failed:
./source/main.cpp:177:48: note: cannot convert 'periodicCallback' (type 'void()') to type 'int'
eventQueue.post_every(periodicCallback, 500);
^
In file included from ./mbed-events/events.h:19:0,
from ./source/main.cpp:17:
./mbed-events/EventQueue.h:205:9: note: candidate: template<class F, class A0, class A1, class A2, class A3> int events::EventQueue::post_every(int, F, A0, A1, A2, A3)
int post_every(int ms, F f, A0 a0, A1 a1, A2 a2, A3 a3) {
^
./mbed-events/EventQueue.h:205:9: note: template argument deduction/substitution failed:
./source/main.cpp:177:48: note: cannot convert 'periodicCallback' (type 'void()') to type 'int'
eventQueue.post_every(periodicCallback, 500);
^
In file included from ./mbed-events/events.h:19:0,
from ./source/main.cpp:17:
./mbed-events/EventQueue.h:210:9: note: candidate: template<class F, class A0, class A1, class A2, class A3, class A4> int events::EventQueue::post_every(int, F, A0, A1, A2, A3, A4)
int post_every(int ms, F f, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4) {
^
./mbed-events/EventQueue.h:210:9: note: template argument deduction/substitution failed:
./source/main.cpp:177:48: note: cannot convert 'periodicCallback' (type 'void()') to type 'int'
eventQueue.post_every(periodicCallback, 500);
^
[mbed] ERROR: "python" returned error code 1.
[mbed] ERROR: Command "python -u /Users/barsza01/devel/mbed/mbed-os-example-ble/BLE_LEDBlinker/mbed-os/tools/make.py -t GCC_ARM -m NUCLEO_F401RE --source . --build ./.build/NUCLEO_F401RE/GCC_ARM" in "/Users/barsza01/devel/mbed/mbed-os-example-ble/BLE_LEDBlinker"
---
I tried importing the new BLE example using the mbed online compiler but I received an error:
Error: Cannot open source input file "ble/BLE.h": No such file or directory in "source/main.cpp", Line: 19, Col: 22
Is this because of the compiler? I change the target into nRF52-DK and it worked fine. Thank you
When exported uvision5 project is compiled, I got following link errors.
linking...
.\BUILD\BLE_EddystoneService.axf: Error: L6366E: analogin.o attributes are not compatible with the provided attributes .
Object analogin.o contains Build Attributes that are incompatible with the provided attributes.
Tag_FP_arch = VFPv4 instructions were permitted, but only citing registers D0-D15 (=6)
Tag_ABI_HardFP_use = This code should execute on the single-precision variant derived from Tag_FP_arch (=1)
Tag_FP_HP_extension = Use of the optional half-precision extension to VFPv3/Advanced SIMDv1 was permitted (=1)
(snip)
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 22982 information, 0 warning and 5745 error messages.
".\BUILD\BLE_EddystoneService.axf" - 5745 Error(s), 75 Warning(s).
Target not created.
Build Time Elapsed: 00:01:05
Full log output is here.
mbed-os-example-ble_error_log.txt
$ git clone -b oob_test_mbed-os-5.4 https://github.com/ARMmbed/mbed-os-example-ble
$ cd mbed-os-example-ble\BLE_EddystoneService
$ mbed deploy
$ mbed export -m NRF52_DK -i uvision5
Open BLE_EddystoneService.uvprojx
and build the project.
NordicSemiconductor.nRF_DeviceFamilyPack.8.3.2
The device does not show up when it has been built in IAR Embedded Workbench, after being exported from mbed-CLI.
Version: https://github.com/ARMmbed/mbed-os-example-ble/tree/mbed-os-5.1.0-rc3
OS: Mac 10.11.6
Toolchain: GCC_ARM
Target: NUCLEO_F401RE + ST BLUE NRG
Test: Button
Compile: main.cpp
[Error] main.cpp@24,20: 'BUTTON1' was not declared in this scope
[ERROR] ./source/main.cpp:24:20: error: 'BUTTON1' was not declared in this scope
InterruptIn button(BUTTON1);
^
[mbed] ERROR: "python" returned error code 1.
[mbed] ERROR: Command "python -u /Users/barsza01/devel/mbed/mbed-os-example-ble/BLE_Button/mbed-os/tools/make.py -t GCC_ARM -m NUCLEO_F401RE --source . --build ./.build/NUCLEO_F401RE/GCC_ARM" in "/Users/barsza01/devel/mbed/mbed-os-example-ble/BLE_Button"
Hi,
1, I tried to use mbed cli to compile the examples. I can compile successfully.
2, Because many developers are more familiar with the online compiler. https://developer.mbed.org/compiler
I try to import the mbed-os-example-ble to the online compiler(Import From URL) and succeed.
3, click compile. It will try to compile all the ble examples and compile failed with the BLE_Button. It shows:
Identifier "BLE_BUTTON_PIN_NAME" is undefined "InterruptIn button(BLE_BUTTON_PIN_NAME);"
4, Another question about the online compiler is:
With mbed cli, I can "cd BLE_HeartRate", then "mbed compile -t GCC_ARM -m K64F".
But in online compiler, I did not see the option to only compile one example like BLE_HeartRate. Any idea?
Thanks,
Nick
Hi
The NRF 52 DK (PCA 10040) s132 board does not work using ARM Mbed environment. The BLE_Battery_Level example sets the device to advertise as BATTERY_LEVEL but when I try to connect to it using my Samsung Galaxy 8+, it just disconnects and the device is not discover-able again. The device works with KEIL examples with latest SDK 15/16. The ARM Mbed uses SDK 11 and firmware 2.0 whereas the latest firmware (SDK 15 v5 works fine). Would it be possible to update the SDK for the ARM Mbed environment for NRF52 DK ?
Thanks
Chandra
$ git clone -b oob_test_mbed-os-5.4 https://github.com/ARMmbed/mbed-os-example-ble
$ cd mbed-os-example-ble\BLE_URIBeacon
$ mbed deploy
$ mbed compile -m NRF52_DK -t ARM
(snip)
[Error] main.cpp@96,0: #20: identifier "DFUService" is undefined
[Error] main.cpp@96,0: #20: identifier "dfu" is undefined
[Error] main.cpp@96,0: #79: expected a type specifier
[ERROR] "./mbed-os/platform/toolchain.h", line 23: Warning: #1215-D: #warning directive: toolchain.h has been replaced by mbed_toolchain.h, please update to mbed_toolchain.h [since mbed-os-5.3]
".\source\main.cpp", line 96: Error: #20: identifier "DFUService" is undefined
".\source\main.cpp", line 96: Error: #20: identifier "dfu" is undefined
".\source\main.cpp", line 96: Error: #79: expected a type specifier
.\source\main.cpp: 1 warning, 3 errors
[mbed] ERROR: "python" returned error code 1.
[mbed] ERROR: Command "python -u C:\Users\toywat01\Documents\mbed\oob\mbed-os-example-ble\BLE_URIBeacon\mbed-os\tools\make.py -t ARM -m nrf52_dk --source . --build .\BUILD\nrf52_dk\ARM" in "C:\Users\toywat01\Documents\mbed\oob\mbed-os-example-ble\BLE_URIBeacon"
mbed ls
BLE_URIBeacon (None)
|- mbed-os (3a27568a505b)
`- shields\TARGET_ST_BLUENRG (a5d5d0b55839)
I got same compile error by IAR and GCC_ARM toolchain.
Steps to reproduce:
Compiles fine, but at link time, fails due to FLASH overflow.
C:\Ashok\mbed_CLI\v5_4_OoB\mbed-os-example-ble\BLE_EddystoneService>mbed export -i make_gcc_arm -m nRF51_DK
c:\python27\lib\site-packages\fuzzywuzzy\fuzz.py:35: UserWarning: Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning
warnings.warn('Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning')
Scan: .
Scan: FEATURE_BLE
Scan: FEATURE_COMMON_PAL
Scan: FEATURE_LWIP
Scan: FEATURE_UVISOR
<snip>
C:\Ashok\mbed_CLI\v5_4_OoB\mbed-os-example-ble\BLE_EddystoneService>make clean
rmdir /S /Q "BUILD"
C:\Ashok\mbed_CLI\v5_4_OoB\mbed-os-example-ble\BLE_EddystoneService>make
<snip>
"Compile: main.cpp"
In file included from .././mbed-os/platform/platform.h:28:0,
from .././mbed-os/features/filesystem/mbed_filesystem.h:23,
from .././mbed-os/mbed.h:51,
from ../source/main.cpp:19:
.././mbed-os/platform/toolchain.h:23:2: warning: #warning toolchain.h has been replaced by mbed_toolchain.h, please update to mbed_toolchain.h [since mbed-os-5.3] [-Wcpp]
#warning toolchain.h has been replaced by mbed_toolchain.h, please update to mbed_toolchain.h [since mbed-os-5.3]
^
"link: BLE_EddystoneService.elf"
c:/program files (x86)/gnu tools arm embedded/5.4 2016q2/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: BLE_EddystoneService.elf section `.text' will not fit in region `FLASH'
c:/program files (x86)/gnu tools arm embedded/5.4 2016q2/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 17088 bytes
collect2.exe: error: ld returned 1 exit status
make[1]: *** [BLE_EddystoneService.elf] Error 1
make: *** [all] Error 2
When compiling NUCLEO_F746ZG with the ST shield using GCC_ARM, ARM, and IAR toolchains, it fails to compile with different errors.
[Error] main.cpp@22,20: 'BUTTON1' was not declared in this scope
[ERROR] .\source\main.cpp:22:20: error: 'BUTTON1' was not declared in this scope
InterruptIn button(BUTTON1);
^
[mbed] ERROR: "python" returned error code 1.
[mbed] ERROR: Command "python -u C:\Work\OOB\mbed-os-example-ble\BLE_GAPButton\mbed-os\tools\make.py -t GCC_ARM -m NUCLEO_F746ZG --source . --build .\.build\NUCLEO_F746ZG\GCC_ARM" in "C:\Work\OOB\mbed-os-example-ble\BLE_GAPButton"
[Error] main.cpp@22,0: #20: identifier "BUTTON1" is undefined
[Warning] main.cpp@197,0: #111-D: statement is unreachable
[ERROR] "./mbed-os/features/FEATURE_BLE/ble/deprecate.h", line 26: Warning: #1-D: last line of file ends without a newline
".\source\main.cpp", line 22: Error: #20: identifier "BUTTON1" is undefined
".\source\main.cpp", line 197: Warning: #111-D: statement is unreachable
.\source\main.cpp: 2 warnings, 1 error
[mbed] ERROR: "python" returned error code 1.
[mbed] ERROR: Command "python -u C:\Work\OOB\mbed-os-example-ble\BLE_GAPButton\mbed-os\tools\make.py -t ARM -m NUCLEO_F746ZG --source . --build .\.build\NUCLEO_F746ZG\ARM" in "C:\Work\OOB\mbed-os-example-ble\BLE_GAPButton"
[ERROR] Command line error: in "--cpu Cortex-M7":
Invalid processor type: Cortex-M7
[mbed] ERROR: "python" returned error code 1.
[mbed] ERROR: Command "python -u C:\Work\OOB\mbed-os-example-ble\BLE_GAPButton\mbed-os\tools\make.py -t IAR -m NUCLEO_F746ZG --source . --build .\.build\NUCLEO_F746ZG\IAR" in "C:\Work\OOB\mbed-os-example-ble\BLE_GAPButton"
Error: Cannot open source input file "nrf.h": No such file or directory in "extras/BLE_Thermometer/mbed-os.lib/targets/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF52832/device/cmsis.h", Line: 21, Col: 18
Version: https://github.com/ARMmbed/mbed-os-example-ble/tree/mbed-os-5.1.0-rc3
OS: Mac 10.11.6
Toolchain: GCC_ARM
Target: NUCLEO_F401RE + ST BLUE NRG
Test: BLE_EddystoneObserver
My beacon is using BLE_EddystoneService (mbed-os-5.1.0-rc3) on nRF51_DK board and is being detected by my phone. But NUCLEO_F401RE flashed with Observer is not printing anything on serial (confirmed that serial connection works fine).
I just tried the HR example using a ST F401 board IBD05A1 peripheral board.
From the CLI, it seems to work fine which is nice.
When I export to uVision 5 and rebuild it however, (i) it does not work and (ii) I notice the LED is flashing faster.
Any ideas?
Installed "Physical Web" application from google apps. Current version is 0.2.1. Looks like it migth not support configuration edit interface anymore or there is some problem that since it does not appear. It also crashed several times on my Samsung J5 when making the scan when mbed device was on. After the crashes it sometimes displayed the mbed OS URL.
Will need to rename the repo too as per internal email.
Using mbed-os-5.0.1-rc1 tag beacon demo works fine using Android (nRF Master Control Panel), but on iOS is not being detected as iBeacon. Both LightBlue and nRF Connect detect and show it as nRF5x without any more information.
Trying to run example applications BLE_LED
and BLE_LEDBlinker
for 5.8 OOB testing using mbed-os-5.8.0-oob
branch with suggested mbed-os branch https://github.com/ARMmbed/mbed-os/#d1ba1089a31ffab6b6a8887092b3d1fcc7c23b72
Connecting to the serial port of the device shows the correct output (BLE_LED in this case):
DEVICE MAC ADDRESS: e8:10:a0:6c:32:af
Connecting to the running device fails on NRF52_DK, however the same examples with the same configurations succeeds when running on an NRF51_DK.
I wrote my code following the same lines as the examples here.
When tested on a new coin cell battery, in an hour or so, the coin cell battery is completely drained up and the BLE connection becomes unstable.
I would like to know if the code here is power optimized or is there scope for improvement?
The following post describes that ble.waitForEvent()
puts the ble into sleep in between events.. But we are not using it anywhere in the examples. Is it taken care of in other API's?
If there is a room for improvement, may be it is a good idea to write a fully power efficient BLE example which will act as reference to writing low power applications.
Use flash loader(s)
option.Use command line options
and add the following content: --drv_vector_table_base=0x0
.Hi
Test APP is nRF Connect for Mobile (https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp&hl=zh_TW)
EVB: Nordic nRF52-DK (https://os.mbed.com/platforms/Nordic-nRF52-DK/)
Use the mbed compiler
step:
result:
CONNECTING ... -> DISCONVERING ... -> DISCONNECTED
update:
The old sample code(BLE_Thermometer) can connected, but if I update the mbed folder the issue will reproduce
[email protected]
Thanks
Fred
Detected by OOB test RC#1
X:\BLE_BatteryLevel>mbed compile -m NUCLEO_F401RE -t IAR
Building project BLE_BatteryLevel (NUCLEO_F401RE, IAR)
Scan: .
Scan: FEATURE_BLE
Scan: FEATURE_UVISOR
Scan: mbed
Scan: env
Compile: events.c
[ERROR]
return equeue_cancel(q, id);
^
"X:\BLE_BatteryLevel\mbed-events\events-c\events.c",282 Error[Pe118]: a void function may not return a value
[mbed] ERROR: "python" returned error code 1.
[mbed] ERROR: Command "python -u X:\BLE_BatteryLevel\mbed-os\tools\make.py -t IAR -m NUCLEO_F401RE --source . --build .\.build\NUCLEO_F401RE\IAR" in "X:\BLE_BatteryLevel"
My IAR EWARM version is 7.70.1.
Pressing the buttons doesn't change the value in the advertisement, but the device can be seen in the nRF Connect app
Command: mbed compile -m NUCLEO_F429ZI -t GCC_ARM
Error information:
[ERROR] In file included from .\source\EddystoneService.cpp:17:0:
.\source\EddystoneService.h:21:21: fatal error: ble/BLE.h: No such file or directory
#include "ble/BLE.h"
The power consumption of these examples seems to be in the range of a few milliamps which suggests that the processor doesn't go to any low power mode. The answer to this question suggested that low power operation will be default in the next release but it doesn't seem to be the case. Just updating the documentation with some advice about how to lower power usage would be helpful too.
(workspace) C:\Development>mbed import mbed-os-example-ble
[mbed] Importing program "mbed-os-example-ble" from "https://github.com/ARMmbed/mbed-os-example-ble/" at latest revision in the current branch
[mbed] WARNING: Cannot find the mbed tools directory in "C:\Development\mbed-os-example-ble"
---
(workspace) C:\Development>mbed --version
0.8.2
When I apply debug.json only fail. release and develop profile are good.
Toolchain is GCC_ARM.
That is gcc-arm-none-eabi-7-2017-q4-major.
I tried.
cd BLE_LED
mbed compile --target RBLAB_BLENANO2 --toolchain GCC_ARM --profile ./mbed-os/tools/profiles/debug.json
result is.
[Error] sleep.c@74,1: unrecognizable insn:
[ERROR] ./mbed-os/targets/TARGET_NORDIC/TARGET_NRF5/sleep.c: In function 'hal_sleep':
./mbed-os/targets/TARGET_NORDIC/TARGET_NRF5/sleep.c:74:1: error: unrecognizable insn:
}
^
(insn 16 15 17 2 (unspec_volatile [
(mem/c:SI (plus:SI (reg/f:SI 105 virtual-stack-vars)
(const_int -4 [0xfffffffffffffffc])) [3 fpscr+0 S4 A32])
] VUNSPEC_SET_FPSCR) "./mbed-os/cmsis/TARGET_CORTEX_M/cmsis_gcc.h":734 -1
(nil))
./mbed-os/targets/TARGET_NORDIC/TARGET_NRF5/sleep.c:74:1: internal compiler error: in extract_insn, at recog.c:2311
libbacktrace could not find executable to open
Please submit a full bug report,
Some changes were made in mbed-events etc: ARMmbed/mbed-events#7, ARMmbed/mbed-events#5. Source of examples (main.cpp) were not update. Therefore examples even do not build. Is someone trying to resolve this? If not - I can do that.
The eventQueue definition in the various BLE examples is too small:
static EventQueue eventQueue(
/* event count */ 10 * /* event size */ 32
);
Shouldn't the event size should use the EVENTS_EVENT_SIZE define (which is currently 52 bytes)?
When exported IAR project is debugged, I got following error dialog.
$ git clone -b oob_test_mbed-os-5.4 https://github.com/ARMmbed/mbed-os-example-ble
$ cd mbed-os-example-ble\BLE_EddystoneService
$ mbed deploy
$ mbed export -m NRF52_DK -i iar
Open BLE_EddystoneService.eww
and build the project.
Start debbugging by press [Download and Debug] button.
BLE_EddystoneService example does not work as expected.
Steps:
Clone repo, update to mbed-os-5.5.0-rc2-oob branch.
cd BLE_EddystoneService
and mbed compile -t ARM -m arm_beetle_soc
Flash BLE_EddystoneService.bin
to target.
Reset and run.
Start nRF Connect app
Scan device and connect to the EDDISTONE CONFIG device
Open Data part and write 0x0161726d00 value
Read the Value in Data, but it is empty (expected Value: https://www.arm.com
)
Disconnect from device, and scan again
Eddystone service is up, but the URL is www.mbed.com, not www.arm.com
SHA's:
BLE_EddystoneService (None)
|- mbed-os (162f80099d94)
`- shields\TARGET_ST_BLUENRG (6670a4495aaf)
Note: Same issue found on both GCC_ARM and IAR build.
Related to : #37
command: >>mbed export -m NRF52_DK -i make_gcc_arm
>>make
Error message:
"link: BLE_Beacon.elf"
'arm-none-eabi-objcopy' -O binary BLE_Beacon.elf BLE_Beacon.bin
'arm-none-eabi-objcopy' -O ihex BLE_Beacon.elf BLE_Beacon.hex
"NOTE: the srec_cat binary is required to be present in your PATH. Please see http://srecord.sourceforge.net/ for more information."
srec_cat .././mbed-os/targets/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF52832/sdk/softdevice/s132/hex/s132_nrf52_2.0.0_softdevice.hex -intel BLE_Beacon.hex -intel -o BLE_Beacon-comb
ined.hex -intel --line-length=44
process_begin: CreateProcess(NULL, srec_cat .././mbed-os/targets/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF52832/sdk/softdevice/s132/hex/s132_nrf52_2.0.0_softdevice.hex -intel BLE_Be
acon.hex -intel -o BLE_Beacon-combined.hex -intel --line-length=44, ...) failed.
make (e=2): The system cannot find the file specified.
make[1]: *** [BLE_Beacon-combined.hex] Error 2
make: *** [all] Error 2
Beacon URL cannot be changed with Beetle with Android "nRF Master Control Panel" . With NUCLEO-F401RE and nRF-51dk URL does change.
With working boards "nRF Master Control Panel" configuration interface "Data" sections shows "Value: https:://www.mbed.com" or whatever is configured.
With Beetle when "Data" is read is shows empty value field "Value: "
Also in programs main display URL remains as mbed.com and is not changed to arm.com.
Happend with both online compiler and when compiling locally with ARM compliler.
Reported by @alphatronicstva - Mbed Cloud customer.
Internal Ref: IOTPAN-60
Background Information
Mbed OS 5.7.5
Description
Custom designed hardware, based on the STM32 F429ZI, with an SPBTLE-RF0 module soldered directly on the board. They have successfully ported this to work with their board.
Using the BLE Heart Rate monitoring application: https://github.com/ARMmbed/mbed-os-example-ble/blob/master/BLE_HeartRate reporting frequent disconnects and instability.
Connects sometimes, very unstable and disconnects after some time automatically.
100% reproducibility from the customer.
In main.cpp for BLE_Button we use BLE_BUTTON_PIN_NAME
. I see in mbed_app.json that we have something there, but I don't think the macro name is correct.
https://github.com/ARMmbed/mbed-os-example-ble/blob/master/BLE_Button/mbed_app.json
Steps:
Output on console:
CMSIS-RTOS error: Stack underflow (status: 0x1, task ID: 0x20003714, task name: )
CMSIS-RTOS error: Stack underflow (status: 0x1, task ID: 0x20003714, task name: )
SHA's:
mbed-os-example-ble (fc79579)
|- BLE_EddystoneService\mbed-os (162f80099d94)
|- BLE_EddystoneService\shields\TARGET_ST_BLUENRG (6670a4495aaf)
It however works perfectly fine with DEBUG profile.
mbed compile -t ARM -m nRF52840_DK --profile DEBUG
Edit: Issue also seen with GCC:
CMSIS-RTOS error: Stack underflow (status: 0x1, task ID: 0x200043D8, task name: (null))
And IAR:
CMSIS-RTOS error: Stack underflow (status: 0x1, task ID: 0x20009138, task name: )
Steps to reproduce:
Result:
The target enters config mode and exits after 60 sec but beacon cannot be detected on app.
Detailed description:
Using a generic BLE scanner app, the beacon is first detected in config mode (after reset). After 60 seconds or so, the beacon still is detected in config mode. The Physical web app does not detect any nearby beacons even after >120 sec
Edit: Issue also seen with GCC and IAR compilers.
When running the demo on nRF52-DK, using the Android Physical Web app, the app crashes while trying to configure the beacon.
The examples in this repo take advantage of most of the features provided by the BLE API. However, I don't see any that are using the securityManager()
in a similar fashion as in the old BLE teams example here (https://os.mbed.com/teams/Bluetooth-Low-Energy/code/BLE_SecureHeartRate/file/e8dfe1c97c71/main.cpp/).
Is the securityManager()
no longer used in a direct way as in the example above?
I compile BLE_BatteryLevel example for target NUMAKER_PFM_NUC472 but get a error.
The root cause is the NUC472 supports H/W SHA and need to include mbedtls header. Due to the mbedtls/* definition in file .mbedignore, the H/W SHA code cannot find the header and encounters an error. Please remove the mbedtls/* definition to fix this issue.
Below is the compile error message.
......
Scan: mbed
Scan: env
Compile [ 73.6%]: sha1_alt.c
[ERROR] .\mbed-os\targets\TARGET_NUVOTON\TARGET_NUC472\crypto\sha\sha1_alt.c:21:28: fatal error: mbedtls/config.h: No such file or directory
compilation terminated.
[mbed] ERROR: "python" returned error code 1.
[mbed] ERROR: Command "python -u C:\Users\cczhang\mbed\mbed-os-example-ble\BLE_BatteryLevel\mbed-os\tools\make.py -t GCC_ARM -m NUMAKER_PFM_NUC472 --source . --build .\BUILD\NUMAKER_PFM_NUC472\GCC_ARM" in "C:\Users\cczhang\mbed\mbed-os-example-ble\BLE_BatteryLevel"
If you clone this repo from git, then cd into a sub folder like BLE_Beacon. The mbed-cli command 'mbed ls' results in the following warning message, with a bad suggestion.
xxx@xxx-VirtualBox:~/Documents/Projects/mbed-os-example-ble/BLE_Beacon$ mbed ls
[mbed] WARNING: Program "BLE_Beacon" in "/home/xxx/Documents/Projects/mbed-os-example-ble/BLE_Beacon" does not use source control management.
[mbed] WARNING: To fix this you should use "mbed new ." in the root of your program.
On the BLE_Thermometer: cannot find where it set the Notify, but it is Notify. If you want to use the nRF ToolBox we need an "Indicate" to follow the thermometer BLE specification. Do not find a clue on mbed where to change this and how to call the class to set this Indicate :-(
Can somebody help me?
Hi,
i compile example from BLE_Beacon example for HRM1017 board under mbed-cli and online compiler.
But only this messages on link
Link: BLE_Beacon
Error: L6406E: No space in execution regions with .ANY selector matching libspace.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching retarget.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching stdio_streams.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching stdio_streams.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching stdio_streams.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching btle.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching ble_conn_params.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching rt_Task.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching equeue_mbed.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching pstorage.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching rt_List.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching pstorage.o(.data).
Error: L6406E: No space in execution regions with .ANY selector matching RTX_Conf_CM.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching FileBase.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching BLE.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching RTX_Conf_CM.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching us_ticker.o(.data).
Error: L6406E: No space in execution regions with .ANY selector matching pwmout_api.o(.data).
Error: L6406E: No space in execution regions with .ANY selector matching softdevice_handler.o(.data).
Error: L6406E: No space in execution regions with .ANY selector matching RTX_Conf_CM.o(.data).
Error: L6406E: No space in execution regions with .ANY selector matching serial_api.o(.data).
Error: L6406E: No space in execution regions with .ANY selector matching device_manager_peripheral.o(.data).
Error: L6406E: No space in execution regions with .ANY selector matching fds.o(fs_data).
Error: L6406E: No space in execution regions with .ANY selector matching RTX_Conf_CM.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching RTX_Conf_CM.o(.data).
Error: L6406E: No space in execution regions with .ANY selector matching rt_CMSIS.o(.bss).
Error: L6406E: No space in execution regions with .ANY selector matching rt_CMSIS.o(.data).
Error: L6406E: No space in execution regions with .ANY selector matching BLE.o(.data).
Error: L6406E: No space in execution regions with .ANY selector matching nordic_critical.o(.data).
...
Can you help to resolve this issue ?
Thanks
Hi,
I am new to the BLE stuff. I would like to use the STM BLE module for some tests. I found this sample https://developer.mbed.org/teams/ST/code/BLE_HeartRate_IDB0XA1/ but the sample usese the old mbed os?
Is this repository the right starting point for the new mbed-os and BLE. Is it possible that this examples also work with the X-NUCLEO-IDB05A1 shield?
many thanks
cheers
mathias
Already reported this once in the mbed OS codebase, here's another concrete example of this happening.
The problem is that, with the nRF51-DK hooked up to my computer, if I don't connect to and open the serial port exposed as /dev/ttyACM0
, whatever software is running on the DK board will just hang. It seems like the Nordic serial port code locks up because it always expects some hardware flow control of some sort, so that if I don't have minicom
running, it doesn't work. Also, if I run minicom
then exit from it, the DK board will keep running for a while, then eventually hangs.
The Nordic serial port code simply does not work properly. Where, in the HAL (pun intended), do I fix that?
Here's a video of this happening.
The video shows the code example from my fork here, which is running:
minicom
open.minicom
, the board starts printing "Alive." again.minicom
, the board eventually hangs again.I cannot see device in nRF Connect app.
mbed update mbed-os-5.1.0-rc4
andmbed compile -m K64F -t ARM
When exporting using the IAR, GCC_ARM, and uvision toolchain, the nRF52-DK is reported as not being suported:
$ mbed export -m NRF52_DK -i IAR
Failed:
* NRF52_DK::iar
Sorry, the target NRF52_DK is not currently supported on the iar toolchain.
Please refer to <a href='/handbook/Exporting-to-offline-toolchains' target='_blank'>Exporting to offline toolchains</a> for more information.
The nRF51 board is unresponsive for the BLE_Beacon
example on the mbed-os-5.7.0-oob
branch.
The board doesn't print anything on the serial port and the device doesn't appear on the Nordic mobile app. I have this problem with the three compilers
I monitor the serial port at 9600b/s and at 115200b/s - it doesn't help
I updated the firmware of the board - it doesn't help
I deleted and imported again the example repository - it doesn't help
Do you have any suggestions what to do in order to make this example working?
Thanks and regards,
George
Hi,
I would like to port a custom bootloader which uses UART actually. So is there any UART Service Example around like this one here: https://developer.mbed.org/teams/Bluetooth-Low-Energy/code/BLE_UARTConsole/ or here https://developer.mbed.org/teams/Bluetooth-Low-Energy/wiki/UART-access-over-BLE
Sorry I am new to BLE and the new mbed-os, I am always wondering which one is for the old and which one is for the new mbed-os.
Which service uses the UART service? I do not found any information of this service here. https://www.bluetooth.com/specifications/adopted-specifications#gattspec
Or is there any better Service I should use for a Bootloader?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.