This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Having very short range with custom board

Hello everyone,

I got an issue with the custom board nRF52832 (Raytac BLE module) as I only achieve very short distance between the BLE device and Android app without data loss. This distance is about 50 cm. The RSSI I noticed is below -70dBm.

With same code, it perfectly ran on nRF52 DK and the range I tested without data loss is about 5 meters. 

I tried to increase TX power as the following code ( using sd_ble_gap_tx_power_set()). However, it didn't improve much. Is there any suggestion in this case?

static void advertising_init(void)
{
    uint32_t               err_code;
    ble_advdata_t          advdata;
    ble_advdata_t          scanrsp;
    ble_adv_modes_config_t options;
		int8_t tx_power_level = 4;

    // Build advertising data struct to pass into @ref ble_advertising_init.
    memset(&advdata, 0, sizeof(advdata));
    advdata.name_type          = BLE_ADVDATA_FULL_NAME;
    advdata.include_appearance = false;
    advdata.flags              = BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE;
		advdata.p_tx_power_level   = &tx_power_level;
			
		sd_ble_gap_tx_power_set(tx_power_level);
	
    memset(&scanrsp, 0, sizeof(scanrsp));
    scanrsp.uuids_complete.uuid_cnt = sizeof(m_adv_uuids) / sizeof(m_adv_uuids[0]);
    scanrsp.uuids_complete.p_uuids  = m_adv_uuids;

    memset(&options, 0, sizeof(options));
    options.ble_adv_fast_enabled  = true;
    options.ble_adv_fast_interval = APP_ADV_INTERVAL;
    options.ble_adv_fast_timeout  = APP_ADV_TIMEOUT_IN_SECONDS;

    err_code = ble_advertising_init(&advdata, &scanrsp, &options, on_adv_evt, NULL);
    APP_ERROR_CHECK(err_code);

    ble_advertising_conn_cfg_tag_set(CONN_CFG_TAG);
}

Thanks!

Parents Reply
  • You have the module in the middle of the board, in almost every case I've EVER seen you want it with the antenna at the edge. It's impossible to tell from the attachments if you have a ground keepout area beneath and as far to either side of the antenna as possible again as recommended in the documentation (sections 2.3 and 2.4). That doesn't actually say anywhere it should be at board edge but the pictures rather show that. You have components right next to the antenna and I'm guessing you have none, or nowhere near enough ground keepout on the top and/or bottom layer. Without following that, the antenna isn't going to work basically at all. 

Children
Related