This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HM-10 (CC2541 used) low power mode

Other Parts Discussed in Thread: CC2541, CC2640, CC2541DK-MINI

Hi All,

I am using a HM-10 module ( https://www.fasttech.com/product/1292002-ti-cc2540-cc2541-bluetooth-4-0-ble-2540-2541  which has a CC2541 mcu, both external crystals, passive components and antenna). I have downloaded SimpleBLEPeripheral code to HM-10. 

I made the following changes in the code as suggested in AN092 (http://www.ti.com/lit/an/swra347a/swra347a.pdf) to go to power saving modes. 

1. To eliminate the periodic event from the application, commented out the following line of source code from the SimpleBLEPeripheral_ProcessEvent function in the file simpleBLEPeripheral.c:

// osal_start_timerEx( simpleBLEPeripheral_TaskID, PERIODIC_EVT, PERIODIC_EVT_PERIOD );

2. In SimpleBLEPeripheral_Init function, the variable initial_advertising_enable was set to TRUE instead of FALSE, as such:

uint8 initial_advertising_enable = TRUE;

I put an ammeter to measure the current of the HM-10 module. It should go to PM2 or PM3 mode automatically as POWER_SAVING symbol has been defined. 

However, the current is always around 8mA, which means it is not going to PM2 or PM3 mode. 

I changed DEFAULT_DESIRED_MAX_CONN_INTERVAL, DEFAULT_DESIRED_MIN_CONN_INTERVAL, DEFAULT_DESIRED_CONN_TIMEOUT to different values, however I see no change in current consumption, it always around 8mA.

I connected with the HM-10 with an Android phone "BLE Scanner" app, and current is always around 8mA.

Can you please suggest how can I go to PM2 or PM3 mode? If it goes to PM2 or PM3 mode, then my plan is to wake the device up by external interrupt.

Thanks in advance. 

  • Hello Tareq,

    Which SimpleBLEPeripheral project configuration did you use? Did you disable the LCD if it was defined? Did you take scope plots of the current use?

    Regarding HM-10, this module is not manufactured by TI and here have been known to be clones on the market. I would suggest you use the CC2541-MINIDK if you need to make precise power measurements as specified by the app note.

    Also, the LAUNCHXL-CC2650 may be a better platform low power development on the CC2640 wireless MCU.

    Best wishes
  • Hi JXS, 

    Thanks for your quick and informative reply.

    I am using CC2541DK-MINI Keyfob configuration, the library version is BLE-CC254x-1.4.1.43908b. 

    The HAL_LCD is set as FALSE in the preprocessor tab.

    I have used current sensor for logging data in PC and found that the current is always around 8mA.

    The HM-10 has CC2541 chip and I found its ADC, AC, Digital PORTS, UART etc working as usual. However, the power mode is the problem. It is not going to PM2 or PM3. 

    I experimented with the code:

    halSleep (0) ;

    and found that the current goes to 0.33mA, however it does not wake up on external interrupts (except reset).

    Thanks for suggesting the new alternatives, however I have already made my design PCBs and invested money on CC2541. I could use raw CC2541 chip and other passive parts without using the HM-10 module, however it makes the PCB design task more complicated.

    Any more idea on how to solve the power mode problem?  

    Thanks in advance.

  • Did you disable the HAL LED an Key definitions in the project settings?

    Best wishes