# helia_edge.models.timeppg_params

Validated TimePPG architecture config and published channel presets; no backend imports.

## helia_edge.models.timeppg_params.TIMEPPG_PRESET_SOURCE

`constant` · `python`

```python
TIMEPPG_PRESET_SOURCE = 'eml-eda/q-ppg@ddf3866da6d5f9dda4da7d7884b4f1f3b809a6ba'
```

Source: `helia_edge/models/timeppg_params.py:8`

## helia_edge.models.timeppg_params.TIMEPPG_PRESETS

`constant` · `python`

```python
TIMEPPG_PRESETS: Mapping[str, TimePPGParams] = {'timeppg_big': TimePPGParams(channels=(32, 32, 63, 64, 64, 121, 122, 104, 76, 82, 61)), 'timeppg_medium': TimePPGParams(channels=(26, 17, 42, 63, 41, 26, 30, 27, 16, 45, 80)), 'timeppg_small': TimePPGParams(channels=(2, 3, 2, 13, 2, 2, 31, 4, 9, 28, 77))}
```

Source: `helia_edge/models/timeppg_params.py:34`

## helia_edge.models.timeppg_params.TimePPGParams

`class` · `python`

```python
TimePPGParams()
```

TEMPONet-derived PPG heart-rate regressor (Burrello et al., 2022).

Eleven widths in upstream order: nine convolution blocks (tcb00, tcb01,
cb0, tcb10, tcb11, cb1, tcb20, tcb21, cb2) and two regressor layers
(regr0, regr1). Dilations, kernels and strides are fixed by the
architecture. No trained weights are published upstream.

Source: `helia_edge/models/timeppg_params.py:11`

### helia_edge.models.timeppg_params.TimePPGParams.model_config

`attribute` · `python`

```python
model_config = ConfigDict(frozen=True, extra='forbid')
```

Source: `helia_edge/models/timeppg_params.py:20`

### helia_edge.models.timeppg_params.TimePPGParams.family

`attribute` · `python`

```python
family: Literal['timeppg'] = 'timeppg'
```

Source: `helia_edge/models/timeppg_params.py:22`

### helia_edge.models.timeppg_params.TimePPGParams.channels

`attribute` · `python`

```python
channels: tuple[int, ...] = (26, 17, 42, 63, 41, 26, 30, 27, 16, 45, 80)
```

Source: `helia_edge/models/timeppg_params.py:23`
