feathersdk.robot.battery_system Module¶
- class feathersdk.robot.battery_system.BatterySystem¶
Bases:
SteppableSystemBase class for battery monitoring and power event management.
- add_power_event_listener(listener)¶
Add a power event listener.
- Parameters:
listener (PowerEventListener) – Listener to receive power event notifications
- get_battery_voltage()¶
Get current battery voltage.
- Returns:
Battery voltage in volts
- Return type:
float
- last_powered_up_time()¶
Get the last time the system was powered up.
- Returns:
Timestamp of last power-up event
- Return type:
float
- notify_power_event_listeners(event: PowerEvent)¶
Notify all registered listeners of a power event.
- Parameters:
event (PowerEvent) – The power event to notify listeners about
- remove_power_event_listener(listener)¶
Remove a power event listener.
- Parameters:
listener (PowerEventListener) – Listener to remove
- class feathersdk.robot.battery_system.DualBatterySystem(config: dict = {})¶
Bases:
BatterySystemBattery system implementation for dual battery configuration with I2C monitoring.
- ADS1115_ADDR = 72¶
- CONFIG_REG = 1¶
- CONV_REG = 0¶
- ESTOP_VOLTAGE_THRESHOLD = 45¶
- I2C_DEV_BUS = 1¶
- __init__(config: dict = {})¶
Initialize dual battery system.
- Parameters:
config (dict) – Configuration dictionary with optional keys: - rated_voltage: Battery rated voltage in volts (default: 48) - capacity_amp_hours: Battery capacity in amp-hours (default: 50) - num_batteries: Number of batteries (default: 2)
- Raises:
Exception – If battery monitoring is not healthy
- get_battery_voltage()¶
Get current battery voltage from I2C ADC.
Reads voltage from ADS1115 ADC via I2C and applies scaling factors.
- Returns:
Battery voltage in volts
- Return type:
float
- get_estimated_battery_percentage()¶
- is_estop_pressed()¶
Check if emergency stop is pressed based on battery voltage.
- Returns:
True if battery voltage is below ESTOP threshold, False otherwise
- Return type:
bool
- last_powered_up_time()¶
Get the last time the system was powered up.
Returns the maximum of current boot time and last estop release time.
- Returns:
Timestamp of last power-up event
- Return type:
float
- update_power_state()¶
Update power state from system state file.
Reads power state from JSON file and updates internal state variables.
- Raises:
Exception – If battery monitoring is not healthy
- class feathersdk.robot.battery_system.DualBatterySystemPico¶
Bases:
objectBattery system implementation for dual battery configuration with Pico monitoring.
- close()¶
Close the serial port when done.
- get_battery_voltage()¶
Get current battery voltage from Pico.
- class feathersdk.robot.battery_system.PowerEvent(*values)¶
Bases:
EnumPower system events.
- POWER_OFF = 1¶
- POWER_RESTORED = 2¶
- class feathersdk.robot.battery_system.PowerEventListener¶
Bases:
ABCAbstract base class for power event listeners.
- abstractmethod on_power_event(event: PowerEvent)¶
Handle power event notification.
- Parameters:
event (PowerEvent) – The power event that occurred
- feathersdk.robot.battery_system.binary_search_max_above(value, list)¶
- feathersdk.robot.battery_system.find_pico_port()¶
Find the Raspberry Pi Pico port.
- feathersdk.robot.battery_system.i2c_read(bus, addr, reg, length)¶
Read data from I2C device register.
- Parameters:
bus – SMBus instance
addr – I2C device address
reg – Register address to read from
length – Number of bytes to read
- Returns:
List of bytes read from the register
- Return type:
list
- feathersdk.robot.battery_system.i2c_write(bus, addr, data)¶
Write data to I2C device.
- Parameters:
bus – SMBus instance
addr – I2C device address
data – Data bytes to write