AutoBVM
AutoBVM is an emergency resuscitator that automates an Ambu bag using motors and sensors, providing monitored ventilation and Ethernet-based remote monitoring.
What Problem Does AutoBVM Address?
During large-scale health emergencies, hospitals often face:
Severe shortages of mechanical ventilators
Deployment of temporary treatment spaces (gyms, convention centers, field hospitals)
Increased physical strain on medical staff required to manually operate Ambu bags
AutoBVM was created as a rapidly deployable, open-source emergency solution. It is intended to support trained medical professionals when standard ventilators are unavailable, following the safety guidance outlined in AAMI CR503:2020 for emergency ventilator systems.
System Architecture at a Glance
This architecture clearly separates patient-critical control logic from network communication, ensuring deterministic behavior and system safety.
Why WIZnet W5500 Is Used in AutoBVM
In AutoBVM, networking is treated as part of the safety and observability layer, not a convenience feature. The WIZnet W5500 Ethernet controller provides:
Deterministic wired Ethernet communication, essential in medical environments
Hardware TCP/IP offloading, reducing CPU load on the Arduino Due
Stable embedded HTTP connectivity for real-time monitoring
Unlike Wi-Fi, wired Ethernet minimizes unpredictable latency and interference. By offloading TCP/IP processing to the W5500, the microcontroller can focus on time-critical ventilation control tasks.
Remote Monitoring via Ethernet
The firmware uses the Ethernet2.h library to implement an embedded HTTP server on the W5500.
#include <Ethernet2.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 0, 177);
EthernetServer server(80);
void setup() {
Ethernet.begin(mac, ip);
server.begin();
}
Through a standard web browser, clinicians can remotely view:
Current airway pressure (cmH₂O)
Real-time flow values
Automatically refreshed status pages (5-second interval)
This allows multiple AutoBVM units to be monitored from a central location.
Safety-Critical Control Design
State Machine–Driven Operation
AutoBVM firmware is structured around a clear state machine:
STARTUP – Sensor and system initialization
OFF – Idle and standby
RUNNING – Normal ventilation
ALARM – Abnormal pressure or flow detected
FAULT – Critical hardware or system failure
This design prevents undefined behavior and ensures predictable responses under fault conditions.
Pressure Protection and Alarms
To comply with emergency ventilator safety expectations, the system implements layered pressure protection:
High Pressure Alarm: Immediate motor stop if airway pressure exceeds 40 cmH₂O
Low Pressure Alarm: Detection of leaks or patient disconnection
Continuing Pressure Alarm: Identification of valve or mechanical failures
All alarms are prioritized and handled in real time to protect the patient.
Pressure and Flow Measurement
Pressure sensor readings are derived from Honeywell Trustability SSC series sensors using manufacturer-provided transfer equations. Raw ADC values are converted to voltage, then to pressure units.
Differential pressure measurements are used to calculate airflow based on the Bernoulli principle, with digital filtering applied to ensure stable clinical readings.
Firmware Characteristics
MCU: Arduino Due (ARM Cortex-M3)
Development Environment: VS Code + PlatformIO
Firmware Size: ~90% Flash utilization
Debugging: Segger J-Link (JTAG) recommended
Time-critical tasks (control loop), UI updates, and Ethernet handling are scheduled independently to avoid interference and maintain real-time performance.
FAQ
Q: Is AutoBVM a replacement for a clinical ventilator?
A: No. AutoBVM is an emergency-use resuscitator intended for crisis situations when standard ventilators are unavailable.
Q: Why use Ethernet instead of Wi-Fi?
A: Medical environments require predictable, low-latency communication. Wired Ethernet with W5500 provides deterministic behavior and higher reliability.
Q: What role does W5500 play in this system?
A: It enables hardware-offloaded TCP/IP communication for remote monitoring without burdening the main controller.
Q: Can multiple devices be monitored at once?
A: Yes. Each AutoBVM unit can be assigned a unique IP address and monitored centrally via web browsers.
Original Source
GitHub Repository: https://github.com/WPI-AIM/AutoBVM
Project Website: http://autobvm.org
