cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB beacon reading

BPrac.1
Associate II

My question is about STM32WB series. I have documentation and examples, but it's still not so good. Its very complicated topic(for me).

I want to build simple tiangulation navi system based on BLE signal strength.

Yes, i have example for STM32WB, but its working as a beacon, not beacon reader.

  1. I can't even change the advertising frequency. I found two topics, where people had same problem, but nobody helped them.

  1. Whitch example will be the best for beacon scanning?
4 REPLIES 4
Remi QUINTIN
ST Employee

So you look for a beacon reader application similar to a sniffer.

I will check if we have such application for the WB.

To demonstrate our beacon application, we are using the beacon reader app running on a mobile. 

Remi QUINTIN
ST Employee

Ok I can provide you an example for a beacon reader application.

This application was developed by one of our engineers. It is based on the p2pclient application and scans all devices around and displays the RSSI for detected devices.

On the UART port (ST-Link), the output format per line is timestamp; db_address ;RSSI\n

Pressing SW1 button starts the scanning phase.

Pressing SW2 button activate a filter on BD addr 02:80:e1:xx:xx:xx as this filter is not activated at startup.

You can copy the attached project in the WB FW package at the same level as the p2pClient project from which this application is derived.

MWild.4
Associate II

What do I need to change to be able to scan for eddystone/iBeacon? I'm sending them from an other STM32WB with the Beacon example and I can see them on the mobile app but not in the UART log from the BLE_p2pClient_scanner code.

I've tried to modify the tool by replacing the function: aci_gap_start_general_discovery_proc(SCAN_P, SCAN_L, PUBLIC_ADDR, 1); with aci_gap_start_general_connection_establish_proc(0x00, SCAN_P, SCAN_L, PUBLIC_ADDR, 0x00, 0x00); but with no changes in result.

Any ideas?

MWild.4
Associate II

I just found the mistake. In the routine where you filter the messages app_ble.c (case HCI_LE_ADVERTISING_REPORT_SUBEVT_CODE) you have to change the filter for the event type (origin: (event_type == ADV_IND) to: (event_type == ADV_NONCONN_IND) ) if you like to scan for beacons.