Hardware + Firmware

Safety mask

A powered respirator has to deliver the same airflow on its last shift as its first. We built the control loop that holds it there, the wear tracking that tells the wearer when the filter is spent, and the battery and charging software around both.

STM32BLDC controlSafety-critical

The challenge

The fan has to work harder as the filter loads, and if it quietly stops keeping up, the wearer has no way of knowing. That makes the airflow loop the part of the product everything else hangs off. The client was moving off a PIC platform at the same time, so the control loop, the battery system and the filter tracking all had to be built fresh on STM32.

Client

Arbin Safety

Timeline

2024 to now

Team

Erwin (lead) + Bob

Role

Firmware, motor control, battery

How we built it

01

Constant flow control

A closed loop on the fan that holds 160 l/min across the life of the filter, starting around 8,400 rpm on a clean one and climbing as it loads.

02

Motor driver bring-up

The BLDC driver wants 100 microseconds between I2C bytes and the ST peripheral won't pace them, so we dropped the bus to 10 kHz. We also worked around the errata that says you can't read registers while the motor spins.

03

Filter wear tracking

Ten wear states, worked out from the rpm needed to hold flow. At the dirtiest state the buzzer goes every five minutes, then continuously after fifteen if nobody has changed the filter.