RAK4631 reduce power consumption in normal power mode

Please include the following information, in order for us to help you as effectively as possible.

  • What product do you wish to discuss? RAK4631

  • What firmware are you using? VSCode/PlatformIO/Arduino BSP

  • Computer OS? Windows

Good morning,

I trying to reduce as much as possible the power consumption in the RAK4631 operating in normal power mode. In RF, I am using only the

The idea is turn off all things that they are not necessary, for example:

  1. Bluetooth: I didn´t find that library to find the turn off command.
  2. I2C2: I think that it could be a Wire.end for I2C, but I don´t know what it is.
  3. SPi2: turn it off
  4. UART: what it is not necessary
  5. Wifi (I am not sure that RAK4631 has Wifi, because nRF52840 has Wifi).
  6. All things that you can suggest.

Could you help me?

Claudio

(1) Adafruit BlueFruit library has no function to shut down BLE. Best you can do is stop advertising.
(2) Wire.end()
(3) SPI.end()
(4) Serialx.end() (for each Serial port initialized. Not sure if it works on USB port (Serial)
(5) The nRF52840 does not have WiFi
(6) Don’t use the loop to wait for events, use semaphores, timers and interrupts to handle events.

  1. (1) Adafruit BlueFruit library has no function to shut down BLE. Best you can do is stop advertising.
    I didn´t find this Adafruit BlueFruit library in the PlatformIO. Where I could find it?
  2. Wire.end():
    I need to keep I2C1 on. What is the I2C2 address?
  3. SPI.end():
    I need to keep SPI1 on. What is the SPI2 address?
  4. Serialx.end() (for each Serial port initialized. Not sure if it works on USB port (Serial).
    ok
  5. (5) The nRF52840 does not have WiFi
    ok
  6. (6) Don’t use the loop to wait for events, use semaphores, timers and interrupts to handle events.
    ok

Regards,

Claudio

(1) Bluefruit.Advertising.start(timeout); Set timeout to e.g. 1 second and it will stop advertising after 1 second. After that the BLE power consumption is close to zero (can’t really measure it)

(2) Wire.begin == I2C2

(3) You have only one SPI available for external usage, so it is just SPI.end().

Thank you by your support

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.