4 Replies Latest reply on Nov 25, 2014 6:38 PM by jcardona

    How to recover BCM20736S on custom board?

    userc_3543

      So I think I may have bricked my BCM20736S with a bad firmware upgrade, and I'm wondering if I can run the recovery process on it without having access to the SDA pin?

       

      What happened, was I was writing a script to increment the DLConfigBD_ADDRBase each time before it uploads. However, I changed the BTP file to have a new address, and accidentally did not build a new hex file with CGS, so ChipLoad uploaded the OLD hex file with the OLD address but used the NEW BLE address in the BTP file. Not sure if that's what did it, but the chip stopped working after that; it doesn't even show up as a USB device any more.

       

      So is there a way to run a recovery on the chip? I only have access to the HCI TX/RX pins, and the RESET pin on the module. The hardware quick start guide mentions having to press a button on the tag which I don't have. Any ideas on how to get around this, or is that chip just bricked forever?

        • 1. Re: How to recover BCM20736S on custom board?
          MichaelF_56

          Does the board have any external pull ups on either SDA or SCL? If yes, apply a short across the pull up resistor to recover the bricked board.

           

          You seem to imply in the post that you does not have access to the SCL/SDA lines, so I’m guessing that the part is buried somewhere within the design.


          I’m guessing that there is no way to resolve this outside of accessing the HW (i.e. through SW).

           

          I need to ask around to verify.

          • 2. Re: How to recover BCM20736S on custom board?
            MichaelF_56

            I described the issue to the development team and they confirmed that the firmware is probably not running or is in the weeds, so there really is no software solution.

             

            On the hardware side, they thought that maybe you should check to see if RXd is connected and driven high (just connect to Vio), then power cycle and wait a couple of seconds. At this point, see if it will respond to download/recover from the SDK (or try using the MBT tool from the new SDK to send a reset command). If this does not work, SDA to GND during boot is really the only solution.

            • 3. Re: How to recover BCM20736S on custom board?
              jcardona

              Hi mwf_mmfae,

               

              We've got exactly the same problem as @odbol in one of our boards: bricked and no access to SDA.  Since we cannot modify our boards, can you provide some advice on how to avoid bricking the board in the first place?  In particular, I am not clear on how downloading new app firmware, even if faulty, can affect/destroy the firmware that is loaded in download mode (i.e. on RX high + RESET).  Aren't those two different firmware images?  Or is the "download mode firmware" also included in the app firmware?  What would be the best documentation for the different boot stages?

               

              Thanks!

               

              Javier

              • 4. Re: How to recover BCM20736S on custom board?
                jcardona

                Hi we just unbricked following these instructions and noticed that there was an error in this answer:

                 

                > If this does not work, SDA to GND during boot is really the only solution.

                 

                ... should say

                 

                > If this does not work, SDA to VDD during boot is really the only solution.

                 

                It is still a mystery to me why it is so easy to brick these boards.  Why reset + asserted RX doesn't just ignore the EEPROM and enter download mode?  That would provide a more pleasant programming experience rather than having to recover everytime there is a faulty firmware...

                 

                Cheers,

                 

                Javier