Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -474,6 +474,7 @@ lib/<component>/
- **I2C helpers**: use private snake_case methods `_read_reg()`, `_write_reg()` for register access.
- **Device identification**: `device_id()` — returns the device/WHO_AM_I register value. All I2C drivers with an ID register must implement this method.
- **Reset methods**: `reset()` for hardware reset (pin toggle), `soft_reset()` for software reset (register write), `reboot()` for memory reboot (reload trimming).
- **Power methods**: `power_on()` / `power_off()`. All drivers must implement both.

### Linting

Expand Down
10 changes: 5 additions & 5 deletions lib/apds9960/apds9960/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def set_mode(self, mode, enable=True):
def enable_light_sensor(self, interrupts=True):
self.set_ambient_light_gain(APDS9960_DEFAULT_AGAIN)
self.set_ambient_light_int_enable(interrupts)
self.enable_power()
self.power_on()
self.set_mode(APDS9960_MODE_AMBIENT_LIGHT, True)

# stop the light sensor
Expand All @@ -124,7 +124,7 @@ def enable_proximity_sensor(self, interrupts=True):
self.set_proximity_gain(APDS9960_DEFAULT_PGAIN)
self.set_led_drive(APDS9960_DEFAULT_LDRIVE)
self.set_proximity_int_enable(interrupts)
self.enable_power()
self.power_on()
self.set_mode(APDS9960_MODE_PROXIMITY, True)

# stop the proximity sensor
Expand All @@ -140,7 +140,7 @@ def enable_gesture_sensor(self, interrupts=True):
self.set_led_boost(APDS9960_LED_BOOST_300)
self.set_gesture_int_enable(interrupts)
self.set_gesture_mode(True)
self.enable_power()
self.power_on()
self.set_mode(APDS9960_MODE_WAIT, True)
self.set_mode(APDS9960_MODE_PROXIMITY, True)
self.set_mode(APDS9960_MODE_GESTURE, True)
Expand Down Expand Up @@ -213,10 +213,10 @@ def read_gesture(self):
return motion

# turn the APDS-9960 on
def enable_power(self):
def power_on(self):
self.set_mode(APDS9960_MODE_POWER, True)

def disable_power(self):
def power_off(self):
# turn the APDS-9960 off
self.set_mode(APDS9960_MODE_POWER, False)

Expand Down
6 changes: 3 additions & 3 deletions lib/bq27441/bq27441/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def __init__(
self.gpout_pin = gpout_pin
self.capacity_mAh = capacity_mAh
self.configure_gpout_input()
self.power_up()
self.power_on()

def configure_gpout_input(self):
if self.gpout_pin:
Expand All @@ -100,7 +100,7 @@ def configure_gpout_output(self):
if self.gpout_pin:
self.gpout = Pin(self.gpout_pin, mode=Pin.OUT)

def power_up(self):
def power_on(self):
"""Wake up fuel gauge ic if in shutdown mode"""
self.disable_shutdown_mode()
sleep_ms(10)
Expand All @@ -109,7 +109,7 @@ def power_up(self):
except Exception:
raise

def power_down(self):
def power_off(self):
"""Put fuel gauge ic in shutdown mode by sending shutdown i2c cmd"""
self.enter_shutdown_mode()

Expand Down
2 changes: 1 addition & 1 deletion lib/ism330dl/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ Returns:
## Power Down

```python
imu.power_down()
imu.power_off()
```

Stops accelerometer and gyroscope.
Expand Down
6 changes: 5 additions & 1 deletion lib/ism330dl/ism330dl/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,10 @@ def status(self):
# Power
# --------------------------------------------------

def power_down(self):
def power_off(self):
self._write_u8(REG_CTRL1_XL, 0)
self._write_u8(REG_CTRL2_G, 0)

def power_on(self):
Comment thread
nedseb marked this conversation as resolved.
self.configure_accel(self._accel_odr, self._accel_scale)
self.configure_gyro(self._gyro_odr, self._gyro_scale)
2 changes: 1 addition & 1 deletion lib/lis2mdl/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ print("Register dump:", regs)
| `heading_flat_only()` | Flat compass heading |
| `heading_with_tilt_compensation()` | Tilt-corrected heading |
| `read_temperature_c()` | Read relative temperature |
| `power_down()` / `wake()` | Power management |
| `power_on()` / `power_off()` | Power management |
| `soft_reset()` / `reboot()` | Sensor reset functions |

---
Expand Down
10 changes: 5 additions & 5 deletions lib/lis2mdl/examples/magnet_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,7 @@ def test_power_modes(dev):
ok = True

# Wake in continuous
dev.wake("continuous")
dev.power_on("continuous")
r = dev.read_reg(LIS2MDL_CFG_REG_A)
md = _bits(r, 1, 0)
print(
Expand All @@ -530,7 +530,7 @@ def test_power_modes(dev):
ok &= md == 0b00

# Wake in single
dev.wake("single")
dev.power_on("single")
r = dev.read_reg(LIS2MDL_CFG_REG_A)
md = _bits(r, 1, 0)
print(
Expand All @@ -542,11 +542,11 @@ def test_power_modes(dev):
ok &= md == 0b01

# Power down
dev.power_down()
dev.power_off()
r = dev.read_reg(LIS2MDL_CFG_REG_A)
md = _bits(r, 1, 0)
print(
"power_down() => MD=",
"power_off() => MD=",
md,
"expected 0b11 =>",
"OK" if md == 0b11 else "FAIL",
Expand All @@ -561,7 +561,7 @@ def test_power_modes(dev):
ok &= dev.is_idle()

# Back to continuous
dev.wake("continuous")
dev.power_on("continuous")
r = dev.read_reg(LIS2MDL_CFG_REG_A)
md = _bits(r, 1, 0)
print(
Expand Down
6 changes: 3 additions & 3 deletions lib/lis2mdl/lis2mdl/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -584,14 +584,14 @@ def get_mode(self) -> str:
md = r & 0b11
return {0b00: "continuous", 0b01: "single", 0b11: "idle"}.get(md, "idle")

def power_down(self):
def power_off(self):
"""Switches to IDLE mode (low power)."""
r = self._read_reg(LIS2MDL_CFG_REG_A)
r = (r & ~0b11) | 0b11 # MD1..0 = 11
self._write_reg(LIS2MDL_CFG_REG_A, r)

def wake(self, mode: str = "continuous"):
"""Wakes the sensor: 'continuous' (default) or 'single'."""
def power_on(self, mode: str = "continuous"):
"""Power on the sensor: 'continuous' (default) or 'single'."""
md = {"continuous": 0b00, "single": 0b01}.get(mode, 0b00)
r = self._read_reg(LIS2MDL_CFG_REG_A)
r = (r & ~0b11) | md
Expand Down
7 changes: 7 additions & 0 deletions lib/mcp23009e/mcp23009e/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,13 @@ def reset(self):
self.reset_pin.value(1)
sleep_ms(10)

def power_off(self):
self.reset_pin.value(0)

def power_on(self):
self.reset_pin.value(1)
sleep_ms(10)

def _soft_reset(self):
"""Réinitialise le composant avec les valeurs par défaut"""
# Configuration par défaut : toutes les pins en entrée
Expand Down
10 changes: 5 additions & 5 deletions lib/ssd1327/ssd1327/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def __init__(self, width=128, height=128):
# 96x96 32
# 128x128 0

self.poweron()
self.power_on()
self.init_display()

def init_display(self):
Expand Down Expand Up @@ -81,12 +81,12 @@ def init_display(self):
self.fill(0)
self.write_data(self.buffer)

def poweroff(self):
def power_off(self):
self.write_cmd(SET_FN_SELECT_A)
self.write_cmd(0x00) # Disable internal VDD regulator, to save power
self.write_cmd(SET_DISP)

def poweron(self):
def power_on(self):
self.write_cmd(SET_FN_SELECT_A)
self.write_cmd(0x01) # Enable internal VDD regulator
self.write_cmd(SET_DISP | 0x01)
Expand All @@ -96,12 +96,12 @@ def contrast(self, contrast):
self.write_cmd(contrast) # 0-255

def rotate(self, rotate):
self.poweroff()
self.power_off()
self.write_cmd(SET_DISP_OFFSET)
self.write_cmd(self.height if rotate else self.offset)
self.write_cmd(SET_SEG_REMAP)
self.write_cmd(0x42 if rotate else 0x51)
self.poweron()
self.power_on()

def invert(self, invert):
self.write_cmd(
Expand Down
7 changes: 7 additions & 0 deletions lib/vl53l1x/vl53l1x/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,13 @@ def reset(self):
machine.lightsleep(100)
self._write_reg(0x0000, 0x01)

def power_off(self):
self._write_reg(0x0000, 0x00)

def power_on(self):
self._write_reg(0x0000, 0x01)
machine.lightsleep(1)

def start_ranging(self):
self._write_reg(0x0087, 0x40)

Expand Down
10 changes: 10 additions & 0 deletions lib/wsen-hids/wsen_hids/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,16 @@ def set_continuous_mode(self, odr=ODR_1_HZ):
ctrl1 |= odr
self._write_reg(REG_CTRL_1, ctrl1)

def power_off(self):
ctrl1 = self._read_reg(REG_CTRL_1)
ctrl1 &= ~CTRL_1_PD
self._write_reg(REG_CTRL_1, ctrl1)

def power_on(self):
ctrl1 = self._read_reg(REG_CTRL_1)
ctrl1 |= CTRL_1_PD
self._write_reg(REG_CTRL_1, ctrl1)

def enable_heater(self, enabled=True):
value = CTRL_2_HEATER if enabled else 0
self._update_reg(REG_CTRL_2, CTRL_2_HEATER, value)
Expand Down
4 changes: 2 additions & 2 deletions lib/wsen-pads/examples/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ def test_continuous_mode(sensor, odr, label, wait_s=2):

sleep(0.5)

sensor.power_down()
sensor.power_off()

if ok:
print_pass("Continuous mode - {}".format(label))
Expand Down Expand Up @@ -239,7 +239,7 @@ def test_status_flags(sensor):
print("temperature_available() =", t_avail)
print("is_ready() =", ready)

sensor.power_down()
sensor.power_off()

if p_avail or t_avail or ready:
print_pass("STATUS helper methods")
Expand Down
12 changes: 8 additions & 4 deletions lib/wsen-pads/wsen_pads/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ def _configure_default(self):
- low-noise disabled
- low-pass filter disabled
"""
self.power_down()
self.power_off()

# Enable automatic register address increment.
self._update_reg(REG_CTRL_2, CTRL2_IF_ADD_INC, CTRL2_IF_ADD_INC)
Expand Down Expand Up @@ -180,10 +180,14 @@ def is_ready(self):
# Power and reset control
# ---------------------------------------------------------------------

def power_down(self):
def power_off(self):
"""Put the device in power-down mode by setting ODR = 000."""
self._update_reg(REG_CTRL_1, CTRL1_ODR_MASK, ODR_POWER_DOWN << CTRL1_ODR_SHIFT)

def power_on(self, odr=ODR_1_HZ):
"""Resume continuous measurement at the given ODR."""
self.set_continuous(odr=odr)

Comment thread
nedseb marked this conversation as resolved.
def soft_reset(self):
"""
Trigger a software reset.
Expand Down Expand Up @@ -311,7 +315,7 @@ def trigger_one_shot(self, low_noise=False):
Parameters:
low_noise: False for low-power mode, True for low-noise mode
"""
self.power_down()
self.power_off()

# LOW_NOISE_EN must only be changed while in power-down mode.
if low_noise:
Expand Down Expand Up @@ -375,7 +379,7 @@ def set_continuous(
raise ValueError("Low-noise mode is not available at 100 Hz or 200 Hz")

# Enter power-down before changing LOW_NOISE_EN as required by the sensor.
self.power_down()
self.power_off()

# Configure low-noise mode and auto-increment.
ctrl2_value = CTRL2_IF_ADD_INC
Expand Down
2 changes: 1 addition & 1 deletion tests/scenarios/apds9960.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ tests:
- name: "Auto-enable restores power for light read"
action: script
script: |
dev.disable_power()
dev.power_off()
i2c.clear_write_log()
dev.read_red_light()
log = i2c.get_write_log()
Expand Down
2 changes: 1 addition & 1 deletion tests/scenarios/bq27441.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ i2c:

# Register values for mock tests
# BQ27441 uses 2-byte little-endian registers read via struct.unpack("<h")
# The constructor calls power_up() -> set_capacity() -> writeExtendedData()
# The constructor calls power_on() -> set_capacity() -> writeExtendedData()
# which enters config mode (needs CFGUPMODE flag in FLAGS register).
mock_registers:
# CONTROL (0x00): status word (unsealed, INITCOMP set)
Expand Down
6 changes: 3 additions & 3 deletions tests/scenarios/hts221.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,15 @@ tests:
expect_not_none: true
mode: [mock, hardware]

- name: "Auto-trigger temperature after poweroff"
- name: "Auto-trigger temperature after power_off"
action: call
setup:
- method: power_off
method: temperature
expect_not_none: true
mode: [mock]

- name: "Auto-trigger humidity after poweroff"
- name: "Auto-trigger humidity after power_off"
action: call
setup:
- method: power_off
Expand Down Expand Up @@ -173,7 +173,7 @@ tests:
expect_true: true
mode: [mock]

- name: "Auto-trigger after poweroff"
- name: "Auto-trigger after power_off"
action: hardware_script
script: |
from machine import I2C
Expand Down
Loading
Loading