I wanted to use the network analyzer to debug my BLE sessions. I opened a thread in the Simplicity Studio forum (https://www.silabs.com/community/software/simplicity-studio/forum.topic.html/network_analyzertut-Bsj6) and they sent me this way. I've also seen this other, related post (https://www.silabs.com/community/wireless/bluetooth/forum.topic.html/network_analyzerin-Hw6C) but it was left unanswered. I read the help in SS, but it seems I'm not clever enough to figure out how to get it working. I start a session, but I see no events at all.
Is there a tutorial somewhere to start with bluetooth debugging with the serial protocol? I see that there is no way to get a sniffer for BT, but I'm OK with just the traffic my dev kit sees
So you clicked "Connect" and then "Start capture" and saw nothing in the Network Analyzer?
Which demo did you flash to the device? Did you use a Demo or you created a Software Example project?
Did you use debugger or BGTool while trying to get the packet trace?
I've adapted the SPP_over_BLE example to SDK 220.127.116.11, and that's what I'm using. I've noticed that if the debugger is connected, the adapter shows as locked, and I disconnect it before starting the capture.
I have debug log enabled, so I can see that there's BT activity, but I can't set this thing to work and I don't have even the slightest idea on where to start from, as I haven't been able to find a how-to or tutorial anywhere, and the help seems to be more oriented to Thread or Zigbee or something like that, and the screenshots don't look like my screen at all.
Do you use VCOM for sending the debug logs to the computer? It can be an issue as well.
Please try the following first:
You should see the advertisement packets sent out by the board.
No, I redirect to the LEUART, as I have some debug logging libraries that I like to use.
I tried with an empty project, but I can't see any BT activity.
To clarify, I'm using my dev board (PCB4001) to program and debug my own board, based on the EFR32BG1P233. Is that a problem? Does it only work with modules on the dev kit? Do I have to wire something else to my board in order to get the trace?
Ahh I see. If you program an external board, then you should use the Mini Simplicity connector for programming, which includes the PTI pins.
The PTI pins need to be connected to use Network Analyzer.
Yes! that was it. I did not wire the PTI pins from the programmer.
In any case, I'm checking all the documentation that I have, but I see no reference to the PTI pins. How do I determine what are the PTI pins on my custom design? I'm using the 48 pin qfn EFR32BG1P233F256GM48, and I, for the life of me, can't find any info about it. I tried with the HW configurator for the BT SDK v2.4.2, and there is no reference to it either.
I'm trying to load an example for the WSKT, as I read in another post that is a good starting point to cut and paste code. I see some config and I will try it, but maybe it should be more clearly exposed. It could be great material for one of the papers of your knowledge base!
Thanks for the feedback! I think the basic idea was, that PTI is mostly used in the development phase while using radio boards on WSTK. On these boards the pins are set so that it instantly works with the WSTK. But you are absolutely right, it should be better documented how to use it on your custom board. It's definitely worth a KBA.
I'll try to summarize it here:
1) the PTI pins must be connected to the WSTK, practically using the Mini Simplicity connector. If you look at its documentation (https://www.silabs.com/documents/public/application-notes/an958-mcu-stk-wstk-guide.pdf), then you will see that the PTI pins are connected to the FRC (frame controller) pins of the EFR32
2) If you open the datasheet of the EFR32BG1 part, you will see that the FRC can use different pins as output, there are a number of options:
You can route the FRC to any of these pins, you can choose based on your custom board design.
The default settings are set in the hal-config-board.h header file in your project.
Currently, you always have to select a Silicon Labs radio board when creating a new project, even if you use a custom board. Logically you should choose a board that contains the same part that you use. You can use the default settings of this board on your custom board as well, or you can change them according to your needs.
I hope this makes sense. Let me know if anything is not clear.
Sorry for the delay in replying, I didn't find time to work on this one. I managed to hack something together. The setup is slightly different as I'm currently working with SDK v2.4.2 and things are stored in different files, but I moved it to PB12 and PB13. I can capture data now.
My problem is that I can't capture log output at the same time. I'm using the LEUART at pins PA5 and PB11. Is there something in the PTI that prevents using the LEUART or those pins? I noticed that there's a 3rd pin inited (DCLK) and I moved it to PB14 to avoid conflicts (by default is set as PB11, which I use for the LEUART).
Do you send the data of LEUART to the WSTK or do you have an external UART-USB converter?