Answer
As per section 6: Hardware Integration Suggestion s, of the BL652 Datasheet : nAutoRUN pin (SIO_02) needs to be externally held high or low to select between the two BL652 operating modes at power-up: Self-contained Run mode (nAutoRUN pin held at 0V) Interactive / development mode (nAutoRUN pin held at VCC). Make provision to allow operation in the required mode. Add jumper to allow nAutoRUN pin to be held high or low (BL652 has internal 13K pull-down by default) OR driven by host GPIO. BL652 modules are shipped from production with smart BASIC runtime engine FW, all SIO pins (with default function of DIO) are mostly digital inputs (see Pin Definitions Table2). Remember to change the direction SIO pin (in your smart BASIC application script) if that particular pin is wired to a device that expects to be driven by the BL652 SIO pin configured as an output. Also, these SIO pins have the internal pull-up or pull-down resistor-enabled by default in firmware (see Pin Definitions Table 2). This was done to avoid floating inputs, which can cause current consumption in low power modes (e.g. StandbyDoze) to drift with time. You can disable the PULL-UP or Pull-down through their smartBASIC application. nRESET pin (active low) Hardware reset. Wire out to push button or drive by host. By default module is out of reset when power applied to VCC pins SIO_02 is an input, set with internal pull-down (in FW). Refer to latest firmware release documentation on how SIO_02 is used for Over the Air smartBASIC application download feature . If this feature is required for production then, SIO_02 pin has to be pulled high externally to enable the feature. Decide if this feature is required in production. When SIO_02 is high, ensure nAutoRun is NOT high at same time; otherwise you cannot load the smartBASIC application script. Therefore the nAutorun pin has to be held high to enter Interactive Command mode, which responds to AT commands in UwTerminalX. Without this, the module will not boot into the correct mode. Additinoally, if you wish to implement $autorun$ applications, you will need to provision a jumper to pull nAutoRUN low to enter self-contained run mode. It should not be left floating.