Access to the inactive union members is an undefined behavior. `column.whole = (1 << height) - 1;` -- 'whole' is active member here, `fillArea(OLED_WIDTH - 1, 0, 1, 8, column.strips[0]);` -- but the 'strips' member accessed here. Same issue: https://gitlab.com/libeigen/eigen/-/issues/2898
Drivers
Drivers are the classes used to represent physical hardware on the board in a more abstract way, that are more complex than just an IO
- OLED Display
- Accelerometers
- Button handling logic
- Tip thermo response modelling
All drivers should be written with minimal hardware assumptions, and defer hardware related logic to the BSP folder where possible