Every device needs specific amount of power to operate. In real time the power consumption is more than expected. Power management is more important factor and common factor to optimize the power. Most of the power will used by displays as well as external peripherals in unwanted time.
Manufacture design the vehicle such way that to reduce the power usage in all states,
- When driver/ rider is not there in vehicle for last 5 to 10 minutes the vehicle will go to sleep until the any user interaction.
- Display will go OFF if there is no user interaction and exit from when user interaction.
- Sometime shutdowns the vehicle mandatory for saving the battery life if it goes below threshold level. Vehicle exit from OFF once Battery level will go above the threshold level.
- There will be external MCU or internal MCU always ON with low power state needs to start/wakeup the main Processor to start the Vehicle.
How wakeup will work
Once Vehicle goes to sleep because of following reason the MCU will start work on low power state to wake up the Vehicle for user input, CAN message and OTA update.
- User Input – touch the handles or key detection.
- CAN Message – Key detection, Seat Occupancy, Open the doors and GYRO or Magneto Meter
- OTA update – For update the Operating System.
Power source is depending upon the environment. Now a days hardware or main head unit comes with two mode dc power and battery. DC power will help for development purpose which will not require Battery. But Battery is the final production level. So, in this case we should monitor the battery power level.
There are so many way to reduce the battery usage in Vehicle,
- In high speed or defined threshold level the display will make off or sleep
- Vehicle ON for long time without any user interaction make it low power state
In Android Automotive Power management will implemented in the following layer
- Power Management driver
- It is low level driver which will control the device power state like suspend and wake up.
- Initial development developer will use the following command to make device as suspend and wakeup
# Suspend to RAM
echo mem > /sys/power/state
# Suspend to Idle
echo freeze > /sys/power/state
# Suspend to Disk
echo disk > /sys/power/state
- Car Power Management Service , this is the service will run automatically once car service start.
- This is the upper layer and will help to control suspend and wakeup the device which will triggered by Car Service as well as CAN packets from MCU and also these services will handle the power state of Vehicle.