BX3105 bootloader gets corrupted


I have the BX3105 connected as in the attached picture. Now I have had two modules the bootloader seems to get corrupted (see below). Any idea what might be causing this? What are the voltage levels in the GPIO0 and GPIO2 pins?


Hi @Repa,

As far as I search in the Product Technical Specification documentation:

For BX3105 (non-Ethernet SKUs) the GPIO(0) voltage level is VDD_PADS_BB (from 2.7 to 3.6V)

For BX3105 (Ethernet SKUs) the GPIO(0) voltage level is VDD_PADS_BB (from 2.7 to 3.6V) and GPIO(2) is VGPIO (3.3V).

You can refer to the Pin Description section on page 52 at the following link: https://source.sierrawireless.com/resources/airprime/hardware_specs_user_guides/airprime_bx310x---product-technical-specification/#sthash.hPDA6IXD.dpbs

Regarding the bootloader getting corrupted, please describe in detail the steps you took leading up to the issue.



thank you for the answer!

What I did:

  1. The module was alone on the board, EN was tied high. The module replied to AT commands ok.
  2. An MCU was added to the board EN was controlled by the MCU, initial value is low. The module didn’t respond to AT commands any more.

GPIO0 and GPIO2 are tied together on the board. The measured voltage level is something odd, it definitely isn’t 3.3 volts, which is the global supply.


replaced the module, disconnected GPIO0 and GPIO2 and tied EN to high. The device seems to boot into bootloader download mode:

7\r\n\r\nrst:0x1 (POWERON_RESET),boot:0x23 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))\r\nwaiting for download\r\n

The voltage of GPIO2 floats around 1.3 volts. If I tie GPIO2 with 4.7kohms to Vcc, I get the flash read err message as above.

What is happening here?

Hi @Repa,

According to the steps you are doing, I understand you are using BX3105 with your custom board is that correct?

Can you try these steps on Sierra’s BX3105 board to see if it can get into bootloader mode?

  • Power off module.
  • Set GPIO27 high. This can be achieved by using a jumper between GPIO27 pin and ‘PADS’ pin.
  • Open the bootloader tool (e.g. Hercules tool), select the port that matches your module (e.g. COM17) and press the reset button on the module.

This is the output you should get, notice the last list with “WSIH”. This means the bootloader is in the correct mode.

configsip: 0, SPIWP:0xee
mode:DIO, clock div:2
entry 0x40078c2c



yes, this is a custom board. When pulling GPIO27 high I get pretty much the same as above:

ets Jun 8 2016 00:22:57

flash read err, 1000
ets_main.c 371

To me it seems that there really either there is no pullup for GPIO2 in the module or it is way too big in order to keep the pin in a correct state. If I add a 10 kohm pullup (as seems to be on the development board) then the GPIO2 voltage level is correct (high). To me it seems that without the external pullup the device goes to bootloader update mode, and in this state the bootloader may get corrupt depending what happens with the UART input.

Looking at the data sheet, it seems that the bootloader can be reprogrammed. How to do that?


Hi @Repa,

From what you said, I understand that you are having problems with your custom board. If that is the case then please check your schematic carefully.
Have you tried these steps I mentioned above with Sierra’s BX3105 board to see if you can get into bootloader mode?
Can you specify which part of the data sheet says “the bootloader can be reprogrammed” so that I can assist you further?