openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
3.3 KiB

#!/usr/bin/env python3
import os
import time
import numpy as np
from system.hardware.tici.hardware import Tici
from system.hardware.tici.pins import GPIO
from common.gpio import gpio_init, gpio_set, gpio_export
def read_power():
with open("/sys/bus/i2c/devices/0-0040/hwmon/hwmon1/in1_input") as f:
voltage_total = int(f.read()) / 1000.
with open("/sys/bus/i2c/devices/0-0040/hwmon/hwmon1/curr1_input") as f:
current_total = int(f.read())
with open("/sys/class/power_supply/bms/voltage_now") as f:
voltage = int(f.read()) / 1e6 # volts
with open("/sys/class/power_supply/bms/current_now") as f:
current = int(f.read()) / 1e3 # ma
power_som = voltage*current
power_total = voltage_total*current_total
return power_total, power_som
def read_power_avg():
pwrs = []
for _ in range(100):
pwrs.append(read_power())
time.sleep(0.01)
power_total, power_som = np.mean([x[0] for x in pwrs]), np.mean([x[1] for x in pwrs])
return "total %7.2f mW SOM %7.2f mW" % (power_total, power_som)
if __name__ == "__main__":
gpio_export(GPIO.CAM0_AVDD_EN)
gpio_export(GPIO.CAM0_RSTN)
gpio_export(GPIO.CAM1_RSTN)
gpio_export(GPIO.CAM2_RSTN)
print("hello")
os.system('kill $(pgrep -f "manager.py")')
os.system('kill $(pgrep -f "python -m selfdrive.athena.manage_athenad")')
os.system('kill $(pgrep -f "selfdrive.athena.athenad")')
# stopping weston turns off lcd3v3
os.system("sudo service weston stop")
os.system("sudo service ModemManager stop")
print("services stopped")
t = Tici()
t.initialize_hardware()
t.set_power_save(True)
t.set_screen_brightness(0)
gpio_init(GPIO.STM_RST_N, True)
gpio_init(GPIO.HUB_RST_N, True)
gpio_init(GPIO.UBLOX_PWR_EN, True)
gpio_init(GPIO.LTE_RST_N, True)
gpio_init(GPIO.LTE_PWRKEY, True)
gpio_init(GPIO.CAM0_AVDD_EN, True)
gpio_init(GPIO.CAM0_RSTN, True)
gpio_init(GPIO.CAM1_RSTN, True)
gpio_init(GPIO.CAM2_RSTN, True)
os.system("sudo su -c 'echo 0 > /sys/kernel/debug/regulator/camera_rear_ldo/enable'") # cam 1v2 off
gpio_set(GPIO.CAM0_AVDD_EN, False) # cam 2v8 off
gpio_set(GPIO.LTE_RST_N, True) # quectel off
gpio_set(GPIO.UBLOX_PWR_EN, False) # gps off
gpio_set(GPIO.STM_RST_N, True) # panda off
gpio_set(GPIO.HUB_RST_N, False) # hub off
# cameras in reset
gpio_set(GPIO.CAM0_RSTN, False)
gpio_set(GPIO.CAM1_RSTN, False)
gpio_set(GPIO.CAM2_RSTN, False)
time.sleep(8)
print("baseline: ", read_power_avg())
gpio_set(GPIO.CAM0_AVDD_EN, True)
time.sleep(2)
print("cam avdd: ", read_power_avg())
os.system("sudo su -c 'echo 1 > /sys/kernel/debug/regulator/camera_rear_ldo/enable'")
time.sleep(2)
print("cam dvdd: ", read_power_avg())
gpio_set(GPIO.CAM0_RSTN, True)
gpio_set(GPIO.CAM1_RSTN, True)
gpio_set(GPIO.CAM2_RSTN, True)
time.sleep(2)
print("cams up: ", read_power_avg())
gpio_set(GPIO.HUB_RST_N, True)
time.sleep(2)
print("usb hub: ", read_power_avg())
gpio_set(GPIO.STM_RST_N, False)
time.sleep(5)
print("panda: ", read_power_avg())
gpio_set(GPIO.UBLOX_PWR_EN, True)
time.sleep(5)
print("gps: ", read_power_avg())
gpio_set(GPIO.LTE_RST_N, False)
time.sleep(1)
gpio_set(GPIO.LTE_PWRKEY, True)
time.sleep(1)
gpio_set(GPIO.LTE_PWRKEY, False)
time.sleep(5)
print("quectel: ", read_power_avg())