Hi Rohith
I had a few clarifying questions and suggestions regarding the issue you are currently facing:
Just to confirm, are you building your final application using Simplicity Studio or via OpenThread Github? This is because BRD4167a is currently not supported in GitHub. Accordingly, if you are trying to make this work via GitHub, a good first step might be to get it working on 2.4 GHz before proceeding to 868 MHz.
If you are building your application using Simplicity Studio, refer to the guidelines in Section 2 of this document: https://www.silabs.com/documents/public/application-notes/an1350-openthread-single-band-proprietary-sub-ghz.pdf
1. Based on your details, it appears like, you have used 4158A for the project generation step. Is this correct?
2. While using BRD4158A for project generation seems like an okay workaround as it uses the same EFR32MG13 part, the radio board you are finally going to work with is BRD4167A, so there could be board specific headers/options that may be missing. A good intermediate step would be to generate, build and flash the image on BRD4167A with default options (no configuration changes) and check if you can bring up a Thread network on 2.4 GHz before proceeding to sub-GHz. Can you confirm if this works?
3. To enable operation on sub-GHz, once the project is generated you will need to enable the “Proprietary Sub-GHz Support (2GFSK in 915 MHz)” configuration option (as indicated in step 5), even though you are trying to make this work with 868 MHz. This step essentially enables the RADIO_CONFIG_SUBGHZ_SUPPORT macro in config/sl_openthread_subghz_config.h file to be able to work with a proprietary PHY.
4. Next, replace the PHY_IEEE802154_915MHZ_2GFSK_EFR32XG13.c with your proprietary PHY i.e. the generated rail_config.c file for BRD4167A with 868MHz, 500kbps,2GFSK modulation 125K as done previously.
Note: The proprietary radio PHY supports 2-byte PHR by default. Accordingly, please make sure that this is taken into consideration when generating the PHY. If you are using a 1-byte PHR, update PHY_HEADER_SIZE in radio.c to use a value of 1 instead of 2.
5. Finally, update the following configurations defined in openthread-core-efr32-config.h to align with your designed PHY.
OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MIN
OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MAX
OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_CHANNEL_MASK
Please note that the above suggestions are just guidelines. OpenThread support for 868MHz band on EFR32MG13 has not been tested officially. Good luck!
Thanks
Sagar.
--
You received this message because you are subscribed to a topic in the Google Groups "openthread-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openthread-users/EMcCu8B0Rms/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openthread-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/0abcca0e-36d5-4c23-8c53-8989341f2786n%40googlegroups.com.
Hi Rohith
Thank you for writing back. This definitely gives me more clarity on your workflow.
In regards to your point number 2, when you say that “Thread on 915 MHz is also working fine” - this does not seem correct. BRD4167A is a 2400/868 MHz 10 dBm Dual Band Radio Board, and so (as per my understanding) should not be operating in the 915 MHz band.
If you are looking at the packet traces in Studio to conclude this, then this is because of the RAIL PTI setting. When working with the Proprietary Sub-GHz PHY option in OpenThread, the radio.c code currently sets the PTI configuration to RAIL_IEEE802154_PTI_RADIO_CONFIG_915MHZ_R23_NA_EXT, giving an impression that the node is operating on the 915 MHz band which may not be the case.
status = RAIL_IEEE802154_SetPtiRadioConfig(gRailHandle, RAIL_IEEE802154_PTI_RADIO_CONFIG_915MHZ_R23_NA_EXT);
Since this is a custom PHY for 868 MHz (currently not supported), I don’t believe there is a standard PTI setting you can use. You could use the value of 0x9C for a custom 2-byte PHR PHY.
If you have enabled the Proprietary Sub-GHz PHY configuration and are able to form a network with multiple nodes using the same channel, you probably have it working on the 868 MHz. That being said, manually editing a rail_config.c file is not a good idea. Changing things like RAIL_ChannelConfigEntry_t baseFrequency might appear to work but that seems unreliable and unsupportable. The correct approach would be to generate a custom PHY (like you are attempting) for the required configurations and use a Spectrum Analyzer to validate your findings.
In regards to your point 3, at an onset, I am not sure why the radio configurator-generated one wouldn't work unless its packet structure isn't compatible. It would be difficult to determine the cause of failure simply based on eyeballing the generated file or diffing register values. Can you provide more details on your custom PHY generation process / the inputs to the radio configurator?
ThanksTo view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/1f0109e5-8d40-4a44-80de-57f6f0b9372dn%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/aab312e9-abd8-4954-b052-3f86385035fan%40googlegroups.com.
Hi Rohith,
I had a further discussion with the team in this regard.
The base_profile configuration available with the railtest project, is a starting point for users to design their own custom PHY and is not supported by the OpenThread radio code as implemented today. The PHY_IEEE802154_915MHZ_2FSK_EFR32XG13.c shipped with the GSDK, uses several additional configurations compared to the base profile in railtest, and hence the generated[] arrays differ. As the Sub-GHz support with OpenThread was an alpha feature, using a Proprietary PHY, we may not be able to share these configuration settings at this point.
That being said since you are trying to get this feature to work on 868 MHz, the team was able to generate a PHY for EFR32MG13 on 868 MHz with same configuration settings that were used when generating the PHY for EFR32MG13 on 915 MHz shipped with the GSDK (attached with this email). Again, please note that the PHY has been generated for experimental purposes and has not been exhaustively tested.
In regards to your new question - to get this feature working on the OTBR, like mentioned in the documentation:
For the RCP, you will need to enable the Proprietary Sub-GHz Support configuration option and make sure that the OPENTHREAD_CONFIG_PLATFORM_RADIO_PROPRIETARY_XX configuration options in openthread-core-efr32-config.h file are correctly updated.
On the host, you will need to rebuild the BR image with the radio configuration options listed in the table on page 5 of https://www.silabs.com/documents/public/application-notes/an1350-openthread-single-band-proprietary-sub-ghz.pdf
One way to do that is by updating the CMakeLists.txt file, and running the build command as indicated in the following PR: https://github.com/openthread/ot-br-posix/pull/892
Please note that, when working with OTBR, it is strongly recommended to use the host code and a compatible RCP from the same SDK. Trying to make an OT BR image from GitHub work with an RCP build using Simplicity Studio is NOT a supported workflow, not tested, and beyond the scope for support in case you hit any issues.
ThanksYou received this message because you are subscribed to the Google Groups "openthread-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openthread-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/59eaf550-41a6-4076-88dd-6477163715fan%40googlegroups.com.
If you are referring to mesh local addresses, then you cannot, as these are derived from the device's EUI. If you are referring to Global Unicast Addresses, then yes, there is an option to manually set this by the application
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/2401a5af-71a1-4ce3-a8fa-cc62fb0f552dn%40googlegroups.com.
Hi Adrien,
Running two thread instances, in theory, should be possible. However, this area hasn’t been explored much and so I may not be able to comment on its limitations. Your concern around RAM size seems like a legitimate concern.
That being said, trying to extend this theory for dual-band support will definitely need additional considerations. For starters, the OpenThread Platform Abstraction Layer (radio code) as implemented today supports a single PHY. Supporting two PHYs (2.4 GHz and Sub-GHz) will require the use of two RAIL handles configured for the appropriate PHY and the RAIL multi-protocol library support. While this can be done, with a single radio the two PHYs will have to be time-shared i.e. the single radio trying to operate on 2.4 GHz and sub-GHz. There will be additional challenges that may have to be tackled at the higher layers - for instance, the node’s behavior in the network, its availability on a certain band, packet losses, and so on. Unfortunately, there is no Thread specification around this topic, at this point.
I hope this reply provides some insight into your question.