8 years, 9 months ago.

Board stops working properly after a while when usign BLE code

I was doing some test with the Tiny BLE and using the "Seeed_Tiny_BLE_Get_Started" program I discovered that after 5 or 10 minutes, depends each time, the board stops reading the MPU6050 data and the main loop stops working properly, start to work to slow or stops completly, but the button interrupt work properly.

I create my own program to read the MPU data and this works properly during some hours, and then when I add the BLE the same problem apears again.

How can I solve this? It looks like a memory overflow but I'm not good with the programing and don't know how to resolve it.


Question relating to:

The Tiny BLE is a Bluetooth Low Energy development board designed with low energy consumption and small size in mind. Features include BLE, CMSIS DAP, current measuring and motion detection.

I saw the same problem. It seems to be related to the I2C bus: After press SW2, the system reboots and the Serial port prints: Initialising the nRF51822, scl: 1, sda: 0, i2c bus is not released. Either the nrf51822 or the mpu6050 has something wrong and causes the I2C bus to hang. I will update to the latest Tiny BLE firmware code and see if this still happens.

posted by Bibo Yang 22 Jul 2015

Hi, Has any progress been made on this?

posted by Naum N 11 Aug 2015

Hi, I met the same problem. Could you share how you solve this problem?

posted by Darren Huang 01 Nov 2015

1 Answer

8 years, 3 months ago.

It seems that I2C communication between MPU6050 and nRF51822 is interrupted by BLE stack interrupts, which causes MPU6050 pulls I2C's SDA down and stops working.

The function - check_i2c_bus() in the Seeed_Tiny_BLE_Get_Started program is a try to recover I2C communication.