I am interested in knowing how Cypress BLE mesh client applications (both for windows and smartphone), communicate with the nodes.
In particular, do they use GATT bearer (to connect to the proxy nodes) or do they use Advertising bearer to send a message to all of the nodes through advertising?
however, it seems that the IOS application uses the GATT bearer but I don't know about the windows and Android applications.
Thanks a lotShow Less
I was trying to send files from board(imx6) to phone(android) via bluetooth
obexftp -b <mac_addr> -p filename (file in board)
But I was not able get that file in phone. When I installed ES file explorer it was found with junk filename. Similarly, while receiving file using
obexftp -b <mac_addr> -g filename(phone-filename)
I was not able to find files in board.
Whether obex.service is needed for obexftp to run? Do /usr/libexec/bluetooth/obexd file has to be present for the above process?Show Less
I'm testing cypress mesh solution the below environment.
-. KIT : CYBT-213043-MESH
-. IDE : ModusToolbox 1.1
-. BT SDK 1.4
-. Code Example : Download BT SDK 1.4 example from GIT
-. Test : mesh location client / server among snip folder in code example.
About Bluetooth mesh messaging, I can see the below.
Acknowledged vs. Unacknowledged
As the name suggests, acknowledged messages require a response from the node that it is addressed to. The response confirms that the message was received and it may also return data back to the sender (e.g. in response to a GET). If a sender does not receive the expected response from a message it may resend it. Messages must be idempotent so that a message received more than once is no different than if it had only been received once.
GET, SET, STATUS
All access messages are of the three broad types of GET, SET, and STATUS.
GET messages request a state value from one or more nodes. A GET message is always acknowledged.
SET messages are used to change the value of a state. A SET message can be either acknowledged or unacknowledged.
STATUS messages are sent in response to a GET, and acknowledged SET, or may also be sent by a node independently, for example, periodically using a timer. A STATUS message is always unacknowledged. Therefore, if a node sends a GET message but never receives a STATUS return message, it may resend the GET message.
If then, In case of SET message, How do I distinguish between sending acknowledged and unacknowledged set messages?
Maybe, Is it related to the reply field of the wiced_bt_mesh_event_t structure?
For example, is it acknowledged set message if the reply field is true, or is it unacknowledged set message if the reply filed is false?
typedef struct wiced_bt_mesh_event__t
struct wiced_bt_mesh_event__t *p_next; /**< Pointer to the next event in the queue */
void *complete_callback; /**< pointer to the send complete callback */
uint16_t company_id; /**< Company ID for the Model ID */
uint16_t model_id; /**< Model ID */
uint16_t opcode; /**< Opcode of the message to be transmitted or that has been received */
uint16_t hci_opcode; /**< HCI Opcode received of the message from the MCU being processed */
uint8_t element_idx; /**< Element Index of the source or destination of the message */
uint8_t ttl; /**< Time to leave to be used when transmitting or as received from the peer */
uint16_t src; /**< Address of the source mesh node */
uint16_t dst; /**< Address of the destination mesh node */
uint16_t app_key_idx; /**< Application key index used to decrypt when message was received or which should be used to encrypt to send the message */
uint16_t num_in_group; /**< number of devices in the group list */
uint16_t *group_list; /**< If dst is a group address, this points to the array of with individual unicast addresses */
uint16_t data_len; /**< Length of data corresponding to the event */
uint8_t credential_flag;/**< Value of the Friendship Credential Flag */
uint8_t retrans_cnt; /**< Number of retransmissions for each message. Should be <= 0x7f. It is ignored using 0 value or if it is reply (reply == WICED_TRUE). */
#define RETRANSMIT_TIMER_TICK 50
uint8_t retrans_time; /**< Interval between retransmissions in 50-millisecond steps */
uint8_t reply; /**< If TRUE the reply is expected */
#define REPLY_TIMER_TICK 50
uint8_t reply_timeout; /**< Time to wait for the peer model layer acknowledgment in 50-millisecond steps */
#define TX_STATUS_COMPLETED 0
#define TX_STATUS_FAILED 1
#define TX_STATUS_ACK_RECEIVED 2
uint8_t tx_status; /**< Transmission failed or timeout occurred waiting for peer reply */
uint16_t friend_addr; /**< core sets it to friend address when calls complete_callback if segmented message has been sent and acked by the friend OnBehalfOf LPN. Otherwise it is 0 */
uint8_t send_segmented; /**< if non-0 then core uses segmentation to send that message even if it fits into unsegmented message. */
int8_t rssi; /**< RSSI of the received message */
I'm working with bluetooth mesh based product development.
I need to develop a mesh_sensor_server and a mesh_sensor_client.
sensor_server is working fine and it's publishing message at a certain interval, I took reference from mesh_sensor_server example proved with wiced studio.
Now, How to develop with mesh_sensor_client? Some guidelines will be really appreciated ?
How does sensor_client subscribes to sensor_server ?
I am testing Generic Location Server model in mesh, and have a problem communicating with 3rd party device.
The WICED_BT_MESH_LOCATION_GLOBAL/LOCAL_GET message works fine, but WICED_BT_MESH_LOCATION_GLOBAL/LOCAL_SET not working with the following messages.
company_id:ffff opcode:8225 -> Message received in SDK
location server message:2 -> Delivered to User callback : OK
company_id:ffff opcode:8226 -> Message received in SDK
location server message:5 -> Delivered to User callback : OK
company_id:ffff opcode:41 -> Message received in SDK
-> Not delivered to User callback : NG
company_id:ffff opcode:8228 -> Message received in SDK
-> Not delivered to User callback : NG
I already tried to used AppKey #1/#2 (setup key) for, but still not working.
How can I make it working with 3rd party device, and where should I start debugging about this issue?Show Less
Hi, I have got the mainapp_download.hex and minidriver.hex, how can i load the file to the CYW920819EVB-02 boad, which tool should i use?Show Less
Where can I get the demo referred in the document WICED Firmware Upgrade Library and the directory is "
There's only a folder named common under the folder ModusToolbox_1.1\libraries\bt_sdk-1.1\examples\BT-SDKShow Less
I am a student working on the kit CYW920819 EVB-02. Recently, when I was working with the kit, the carrier module got separated from the baseboard. Then i have taken the board to a PCB professional who is in requirement of the hardware files to know the connection points of the carrier module to the baseboard. He expressed that it can be done if we know the hardware design files
But the files in the enclosed attachment are not being opened
I have tried with Cadence OrCAD software,Pspice Student Version,Eagle Software(for .brd files),NI Multisim(to open .dsn files)
but the are not being opened
Please suggest me a way to open each type of individual file in the attachment and also specify the specific software to be used to open them.Show Less
I found that I needed to the following system .h files when I created an new .c file
#include "wiced_hal_gpio.h" // to read and write gpio with the GPIO APIs
#include "wiced_hal_pspi.h" // to use the SPI APIs
#include "wiced_rtos.h" // for the RTOS Delay function
#include "wiced_bt_trace.h" // for the debug UART
That made me wonder what I am missing. Is there a document or location that has all the system .h files and explains there use and / or requirements?
Mike RobertsShow Less
I want to download the firmware to the board throught hci uart and read the flash, are there any related demo code or documents, thanks.Show Less