icephyr
Hi guys,
I met a problem here and hop anyone can help. Thanks. I enable hardware control in menuconfig, build a firmware of hci_uart sample and burn the firmware into nrf52_pca10040 (nrf52832), and then connect it with my NXP board via uart, tx rx rts cts,(top menu) → Device Drivers → Serial Drivers → nRF UART nrfx driversZephyr Kernel Configuration[*] UART Port 0 Driver type (nRF UART 0) --->[*] Enable interrupt support on port 0[ ] Enable parity bit[*] Enable flow control but when I attach the ble with command hciattach, it prints time out and seems the uart cannot communicate.
So I wonder if the hardware flow control works fine with nrf52832 or zephyr ? Or maybe my way to enable hardware flow control is wrong ? By the way, is there any problems that we use software flow control instead of hardware flow control when the baudrate of uart is 1M ? Thanks if someone can give me any advice.
|
||
|
||
cmake application project architecture
Florian Fouillet <Florian.Fouillet@...>
Hi everyone,
I am currently working on the Zephyr OS with a FDRM_K64f board from NXP.
I want to create my own application using cmake as recommended by the documentation.
However I don’t want to put everything in one CMakeLists.txt. I want to break down my project into libraries (multiple CMakeLists.txt).
Do you know if there is any documentation talking about that?
My top CMakeLists looks like that:
cmake_minimum_required(VERSION 3.8.2)
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE) project(NONE)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/DataLinkLayer ${CMAKE_CURRENT_SOURCE_DIR}/build/${BOARD}/DataLinkLayer)
target_sources(app PRIVATE src/main.c)
target_link_libraries(app PRIVATE DL )
And my second CMakeLists (under the folder DataLinkLayer) looks like that:
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
add_library(DL src/DataLinkInterface.c)
target_include_directories(DL INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/Interface)
The issue is I can include the boilerplate.cmake in only one CMakeLists.txt otherwise It’s not working, But, the second CmakeLists doesn’t know the zephyr library..
I tried to add: include_directories(/home/user/zephyr/include) in the second CMakeLists but it is not enough. Do you know what should I do?
Thank you,
|
||
|
||
Re: Zephyr BLE Controller Nordic - BLE qualification process
Carles Cufi
Hi Frank,
Regarding licensing, I have no real information there, I would recommend you check with an expert. Regarding qualification, yes, the link you sent is correct. Zephyr has a qualified controller and host, and BlueZ has several qualification as someone else pointed out.
Regards,
Carles
From: devel@... <devel@...>
On Behalf Of frv
Sent: 21 November 2018 08:49 To: devel@... Subject: Re: [Zephyr-devel] Zephyr BLE Controller Nordic - BLE qualification process
[Edited Message Follows] Hi Carles,
|
||
|
||
Ble mesh stack not compatilbe with c++
#ble
#bluetoothmesh
robert.konc@...
Hi,
When could we expect that blemesh code will be usable in c++. Most header files in zephyr are compatible with c++ but not ble mesh headers. No #ifdef __cplusplus in headers. Regards, Robert
|
||
|
||
Leds_demo on nrf52840
#nrf52832
#zephyrbluetoothmesh
Akash Naidu <akashnaiduece@...>
HI All,
Recently i have started working on Zephyr RTOS to explore IPV6 over BLE.And i am totally new this. I would like to form a mesh network with PCA10059(5 boards) and PCA10040(1 boards) boards, and control the leds on boards. Now, i have been successfully established connection with nordic board and PC and was getting proper response from device(If i ping from PC). But i don't know how to control the LEDS. I have seen a demo example in "net/leds_demo", with this can we make a mesh network and control the LEDS? could you please help me to form a mesh network on IPV6 over BLE? if possible please suggest reference examples for nrf52 DK. And i am total new to IPV6 over BLE to form mesh network, so please provide suitable explanation about IPV6 over BLE to form mesh network in Zephyr RTOS. Advance in thanks. BR Akash.
|
||
|
||
Re: Looking for help with SAMD2x
Bryan O'Donoghue
On 16/11/2018 17:28, Kumar Gala wrote:
Guys,Hi, Got buried in my inbox. Happy to help. I'm currently winding down a project on the SAM21 - I was planning on looking at the USB. I don't mind running some updates/tests/reviews as needed. Here to help, let me know what's required I can make time.
|
||
|
||
Insufficient space for ccc even after unpair
dhguja@gmail.com
Hello, In the current upstream, i face the below problem with BLE and settings. I am running HID peripheral sample on nRF52832 board. I made a modification to call bt_unpair() before starting the advertisement. This ensures that unpair is called everytime i reset the device and i am able to connect to next device(since CONFIG_BT_MAX_PAIRED = 1). This is just to minimize my real application scenario to be able to connect to new host and also to reproduce this issue. 1) connect board to first android phone. device is connected and bonded. 2) Now i restart the device and also switch off BLE in the first phone. 3) connect board to second android phone. device is connected and bonded. 4) Now i restart the device and also switch off BLE in the second phone. 5) connect board to third phone. device is connected and bonded. 6) Now a warning is printed in the logs as below "<wrn> bt_gatt: bt_gatt_attr_write_ccc: No space to store CCC cfg" 7) This happens when host subscribes for HID service. CCC is not updated. This affects the ability to send data to this third host. I also saw that bt_gatt_clear_ccc() is called inside bt_unpair(). Hence i made sure to call so that i will have clear space for the new host i want to connect to. But still i get this warning everytime on the third host i want to connect. Is this a bug or should i call a different API than bt_unpair() to clear the space for the new host i want to connect to? Dhananjay GJ
|
||
|
||
Re: HCI Host Not enough space in buffer
#hci
Hi,
On 23 Nov 2018, at 20.37, abaska@intermatic.com wrote:Basically the code is assuming that the packet is valid, but the buffer sizes have simply been defined too small to fit the packet. In such a case discarding the rx.remaining bytes would be the correct thing since then the driver skips a valid but too long packet. In the case that you’re getting corrupt data (starting in the middle of a packet) it’s all a guessing game. You could discard everything indicated, like it does now, or try again with the next byte (in which case you’ll be repeating this until you get something that makes sense). Since the code needs to read (i.e. jump forward) at least the H4 + ACL/event headers, you don’t have any guarantee that you’ll ever hit a clean packet boundary. I’m not sure there’s any correct answer in how the host should behave, since either way this is an unreliable setup: you should ideally design your device so that you can force a reset of the controller (e.g. by power-cycling it) so that you know you start off in a known state. Johan
|
||
|
||
HCI Host Not enough space in buffer
#hci
@abaska
Hi,
I have a HCI host and controller setup. When the host starts, and the controller had already been running, it sometimes begins reading in the middle of a HCI message from the controller. It reads the wrong HCI message type and length. This causes the buffer to completely fill where it errors out in h4.c, read_payload(), BT_ERR("Not enough space in buffer"). After this the host application does not recover and a power cycle is needed. I found a quick fix for this is to remove a line in h4.c read_payload(). I think it was meant to discard the rest of a message data if the buffer is full, but it looks like its assuming rx.remaining is valid. In this case, rx.remaining is invalid because it read the wrong byte as the length when it jumped into the middle of a HCI message. if (rx.remaining > net_buf_tailroom(rx.buf)) {
BT_ERR("Not enough space in buffer");
//rx.discard = rx.remaining; // fixes issue. it was discarding thousands of bytes
reset_rx();
return;
} I don't know what other consequences this quick fix will have. Is there a better way to fix this issue? Maybe check the message validity before it fills up the buffer? Thanks
|
||
|
||
Re: Extracting iBeacon Advertisement Packets
Luiz Augusto von Dentz
Hi Martin,
toggle quoted messageShow quoted text
There is an API to help parsing advertisements: https://github.com/zephyrproject-rtos/zephyr/blob/master/include/bluetooth/bluetooth.h#L480 It will call the callback given for each data type found, for instance the sample on the site has flags + manufacturer data, you probably are only interested in the second. You can also parse the UUID using: https://github.com/zephyrproject-rtos/zephyr/blob/master/include/bluetooth/uuid.h#L48
On Thu, Nov 22, 2018 at 12:50 AM Martin <ma@jgs-wg.de> wrote:
--
Luiz Augusto von Dentz
|
||
|
||
Re: How to flash static mac address into zephyr ?
#nrf52832
frv
Sorry Joe, I will no longer this.
Thanks for reporting it. Frank
|
||
|
||
Re: How to flash static mac address into zephyr ?
#nrf52832
Johannes Hutter
btw, Frank: Are you editing your messages over the web interface? It really scrambles up the threads on the mailing list and it's hard to tell what was edited.
On Thu, Nov 22, 2018 at 10:03 AM icephyr <sxzxchen@...> wrote: Thanks you guys, it helps a lot. I think this will solve my problem, I will have a try then. --
|
||
|
||
Re: How to flash static mac address into zephyr ?
#nrf52832
icephyr
Thanks you guys, it helps a lot. I think this will solve my problem, I will have a try then.
|
||
|
||
Re: How to flash static mac address into zephyr ?
#nrf52832
Johannes Hutter
Just for your information: There is a PR that adds UICR support to the nrfx flash driver: https://github.com/zephyrproject-rtos/zephyr/pull/11410 Best Regards Joe
On Thu, Nov 22, 2018 at 9:55 AM frv <F.Vieren@...> wrote:
--
|
||
|
||
Re: How to flash static mac address into zephyr ?
#nrf52832
Hi icephyr,
I'm far from a Zephyr BLE expert, but I had this process in mind what could be a solution. As Nordic doesn't store a public BLE device address in flash I would try to implement the following steps:
Best regards, Frank
|
||
|
||
How to flash static mac address into zephyr ?
#nrf52832
icephyr
Hi guys,
I met a problem and hope someone can help me here. I want to use nrf52832 as a tag device and can locate it by its mac address, so I have to flash pre-assigned static address into nrf52832 running zephyr project, since nrf chip don't have a pre-assigned mac address. I wonder if there is any method to implement this function ? Thanks a lot if anyone can help.
|
||
|
||
Re: Extracting iBeacon Advertisement Packets
Martin <ma@...>
Sorry, I was copying the wrong code..
toggle quoted messageShow quoted text
int i; //print adv. packet for(i=0;i<buf->len;i++) { printk("%d %02X\n",i, buf->data[i]); } //print major printk("maj: %d\n",((buf->data[25] & 0xff) * 0x100 + (buf->data[26] & 0xff) )); Am Mi., 21. Nov. 2018 um 18:12 Uhr schrieb Martin <ma@jgs-wg.de>:
|
||
|
||
Re: Extracting iBeacon Advertisement Packets
Martin <ma@...>
Well, simple enough.
toggle quoted messageShow quoted text
int i; for(i=0; i<5; i++) { printf("i%d\n", i+1); } prints the advertisement packet's bytes in decimals and includes the UUID acc. to the kontakt.io article. Hope this helps anyone... Martin Am Mi., 21. Nov. 2018 um 17:56 Uhr schrieb Martin <ma@jgs-wg.de>:
|
||
|
||
Extracting iBeacon Advertisement Packets
Martin <ma@...>
Hi,
I am quite new to Zephyr and want to extract iBeacon Advertisement Packets. I already have access to them as a net_buf_simple structure, but I want to read the major and minor for example. I realize that I have to probably read some certain bytes out of net_buf_simple (according to https://support.kontakt.io/hc/en-gb/articles/201492492-Advertising-packet-structure). Can someone point me to a direction (function) to do this? Thanks, Martin
|
||
|
||
Re: Zephyr BLE Controller Nordic - BLE qualification process
frv
Hi Luiz Augusto von Dentz,
Thank you very much for your reply. This should give me sufficient direction to go further. The idea for our BLE central oriented platform (two boards solution) is to run on the BLE Host board Linux and thus depending on BlueZ. The BLE controller runs on a Nordic board Zephyr (HCI_UART). Both boards will be bridged via a HCI uart(h4) transport layer. Our BLE peripheral oriented platform might be a pure single board Nordic BLE Host Controller approach depending on Nordic's SoftDevice for the BLE stack. Best regards, Frank
|
||
|