Wouldn't this at some point cause `led_ctrl_breathe.step` to overflow and wrap, possibly causing a jump in the pattern? Also, if step is signed (I didn't check), the overflow would cause step to be negative, and the `%` operator on a negative first operand can lead to a negative result. This, in turn can lead to memory access outside the bounds of `led_ctrl_breahte.value[i]`). If step is unsigned, it's not so much of a problem, but there could still be a jump in the pattern on overflow.

Could be solved by doing:

```
led_ctrl_breathe.step++;
led_ctrl_breathe.step %= led_ctrl_breathe.steps;
size_t i = led_ctrl_breathe.step;
```