-
Notifications
You must be signed in to change notification settings - Fork 656
Description
With the number of open-source hardware boards increasing around the newer TI chips, I think the time has come to agree on and standardise the BSL and RF Switch control pins (for -P parts) as otherwise @Koenkk's firmware repository is going to end up with very many variants of the same thing that is undoubtedly going to confuse new users trying to pick the right firmware for their boards.
This is a summary of the current situation and a proposal to try and lock these down for the future to reduce firmware support complexity for everyone involved going forward. From "what firmware do I pick" to "I accidentally disabled BSL by flashing the wrong firmware", there are a scale of user issues we might have to deal with as both hardware and software developers...
BSL
The beauty of BSL (the ROM serial bootloader) is that unless it is disabled in CCFG, it allows you to burn new firmware to your devices over serial without needing an external programmer. One caveat: Given than an external pin is involved in this special boot mode, you can accidentally "disable" BSL by picking a firmware image that moves the BSL trigger to a different physical pin than what your board might have.
Unfortunately TI documentation is confusing and has errors (see here and here).
Looking at the boards in the wild and ones I am currently working on as @electrolama projects, here's a summary of the current situation:
On CC2652R/RB, DIO_13 is the BSL backdoor enable pin used:
- TI LAUNCHXL-CC26X2R1 (BTN1)
- @electrolama zzh
- @slaesh cc2652rb usb dev stick
- (anything else, please comment below)
On CC1352P/CC2652P, this pin appears to be DIO_15:
- Launchpad LAUNCHXL-CC1352P-2 (BTN1)
- @electrolama zoe2, zzhp and zzhp-lite
- @mercenaruss Zigbeer E79 Stick
- (anything else, please comment below)
Proposal: Let's lock this down and use DIO_13 for CC2652R/RB and DIO_15 for CC1352P/CC2652P as the BSL backdoor enable pin for any hardware that is aiming to make use of this repository for firmware support.
"Auto-BSL"
On boards with USB-UART adapters that expose the extra control signals, following arrangement is used on some of the boards noted above:
- Computer side DTR - WMCU BSL pin
- Computer side RTS - WMCU RESET
Purpose of this is to get the device into BSL mode by cleverly toggling these pins in a special sequence so that automatic firmware updates could be done with, say, zigbee2mqtt without the need to unplug the coordinator board used.
Proposal: Let's lock this down and use the DTR-BSL/RTS-RESET mapping for any hardware that is aiming to make use of this repository for firmware support.
RF Switch pins for -P devices
This is a complex issue without an easy answer/proposal.
On -P devices, RF switches are used to switch between different RF paths. See this and this for the nitty gritty.
For example, this is how LAUNCHXL-CC1352P-2 deals with it:
Popular module maker Ebyte has two modules, E72 (CC2652P):
...and E79 (CC1352P):
On @electrolama zzhp (CC2652P):
So already we have a variety of pins being used for RF Switch control with some clashes. For instance, zzhp DIO_6 is the inverse of the Ebyte switch control (from what I can gather, I am waiting on a shipment of Ebyte modules to verify this). If that is indeed the case, I am happy to modify zzhp design so that the control signal matches the behaviour of Ebyte modules (so they can share the same firmware).
Generalising this is not going to work as nicely as the BSL proposal, for now at least for the @electrolama boards I am working on I am going to mimic Ebyte modules as they appear to be used by other designs as well.
Perhaps we can solve this by having a Launchpad firmware and "everything else" that utilises DIO_5 and DIO_6, @Koenkk?
A standard LED
DIO_7 is a common LED pin on the open-source boards, active high (Pin state 1 or high: LED On). Perhaps it can be the standard LED for features like #202 ?
Comments and additions welcome!
Please tag/add/mention any hardware developers/projects that might be working on similar hardware.




