Monday, April 13th 2020

Newbie Ventilator Manufacturers Turn to Raspberry Pi as the Brains of Their Life-saving Devices

The unprecedented demand for ventilators in the wake of the COVID-19 pandemic, has pushed many firms from various industries to re-tool their production-lines to make them. A big chunk of these makeshift ventilator manufacturers are from the automobile and aerospace industries. A ventilator isn't as simple a device as it sounds. It's not a mechanized ambu bag. It is an intelligent device that assists in respiration by precisely combining oxygen and ambient air specific to the patient's needs, and assists them in expiration. This requires a microprocessor-based control. Established biomedical equipment manufacturers use their own ASIC-based electronics for their ventilators; but the likes of General Motors don't have time to develop custom electronics. Enter the immensely versatile Raspberry Pi.

By leveraging Arm-based SBCs (single-board computers) such as Raspberry Pi, with its plethora of modern- and legacy I/O options, makeshift ventilator manufacturers are able to quickly design functional devices. All they have to do is write code for it. Even the cheapest $5 Pi Zero board with its GPIO interface suffices to run embedded Linux and code that runs the ventilator's hardware. Eben Upton, CEO and Founder of Raspberry Pi, says that demand for the Pi Zero is at an all-time high. The company manufactured over 192,000 units of the SBC in Q1-2020, and plans to scale up production to 250,000 per quarter, going forward. The Pi Zero features a Broadcom BCM2835 single-core Arm SoC and 512 MB of RAM, with a microSD slot for storage. That's plenty of brains to run a ventilator and save lives.
Raspberry Pi Zero
Source: Tom's Hardware
Add your own comment

15 Comments on Newbie Ventilator Manufacturers Turn to Raspberry Pi as the Brains of Their Life-saving Devices

#1
hat
Enthusiast
That's pretty cool, actually. That's all it takes to run a machine that can save lives. I wonder if RPi can also replace other expensive custom SoCs for specific applications.
Posted on Reply
#2
Patriot
hatThat's pretty cool, actually. That's all it takes to run a machine that can save lives. I wonder if RPi can also replace other expensive custom SoCs for specific applications.
I wouldn't trust a pi for these applications outside a pandemic.
Posted on Reply
#3
notb
hatThat's pretty cool, actually. That's all it takes to run a machine that can save lives. I wonder if RPi can also replace other expensive custom SoCs for specific applications.
IMO not that cool. Respirators would normally be run by rock-stable simple curcuits. Just like most industrial equipment.

Cheap single-board computers (SBC) are excellent for ad-hoc tasks and PoCs. And for learning. But they're too complicated to replace simpler chips and not robust enough for high availability systems...

We're a little pushed to the wall right now, so an RPi-powered respirator is better than none. But in long run we'll be back to custom electronics for sure.
Posted on Reply
#4
Ferrum Master
Rpi is not suited for this task.

It seems people do not get what military/medical grade means these days.

PIC or AVR is enough. Bullet proof code with no memory leaks made from stable compiler and brute C or ASM code.

I cannot say that RPI's put in weather station can live without being reset. You cannot do a reset while someone is being ventilated.

Actually the Italian Arduino learning platform is much better suited alternative... plebs just like working with higher level HW and code language... there's no respect for that.

Considering the amount of time making a simple pump motor driver with two sensors a simple LCD and serial output? The speed is the same as on RPI. Because basically RPI always ends up in code troubles, stability issues. The board design is prone to many problems. During hang it even corrupts data on the only memory medium. It is good for learning, but outside that... no... don't mix up things. If I imagine myself being asked to make such thing on RPI, I would reply simply that I have no intentions to be a killer. Considering the experience with RPI platform, the probability would be certainly high.

MEGA32 is more than enough for this... there is even no need for Cortex-M. Actually the logic and more safe precaution is to split into several CPU's, machine, sensor, screen and a supervisor for them all, to ensure, if some of those pieces end up bad an alert would be made. We are talking about life here... RPI's sigh...
Posted on Reply
#5
notb
Ferrum MasterI cannot say that RPI's put in weather station can live without being reset. You cannot do a reset while someone is being ventilated.
Actually you can because, given how unstable RPi can be, these ventilators hopefully have redundant circuits...

But honestly, having used RPi for some time now, I wouldn't even want to run a home NAS/backup solution on one.
My RPi is currently used for 24/7 web scraping, but I'll probably retire it and go back to the free Google Cloud VM.
I'm not saying it's bad or something. It's exactly what I'd expect from a Linux PC. It's perfectly fine as long as you use well tested software and nothing goes wrong. And it quickly falls apart when there's a problem.

Still, RPi is really nice for non-production stuff. I know it's extensively used at my faculty (physics) for teaching, prototyping and even for cheap experiments.

As for ventilators, you can find the largest manufacturers here:
en.wikipedia.org/wiki/Ventilator
Lately we hear that, for example, car makers started making them.
If I had a choice, I'd prefer to be put under something from Getinge (a company I've never heard of before COVID-19) than from Mercedes. But - depending where you live - we are near or past the limits of "having a choice" part...
Posted on Reply
#6
Aquinus
Resident Wat-man
Ferrum MasterRpi is not suited for this task.
I actually think it's too much for the task. There are some small things you could do to make a RPi more stable, but really, not all that much. I would be far more concerned about software on the RPi, particularly if we're talking about running Linux in addition to whatever software is running on it. If they're treating it as an embedded system like an Arduino where they're writing C and booting the software as an ELF file directly, then from a software standpoint, it would probably be just as simple as the real thing. It gets far more complicated if you're talking about using something like Linux as an OS though because that changes things like latency characteristics of the code due to scheduling and kernel overhead.
notbActually you can because, given how unstable RPi can be, these ventilators hopefully have redundant circuits...
Now, is that instability of the Pi or the software driving the Pi? Got to be careful with that one. An Arduino can be just as unstable if you write garbage code for it.
Posted on Reply
#7
hat
Enthusiast
Well, I didn't see that coming. I didn't realize the RPi was unreliable like that.
Posted on Reply
#8
notb
hatWell, I didn't see that coming. I didn't realize the RPi was unreliable like that.
It's not unreliable. :) It's as stable as most PCs. There are conflicts, there are software errors and so on.
OS can handle them and restart the problematic services. But it takes time.

You only have to think about the consequences.

So, your computer lost connection to the WiFi (you know the router is fine - other devices at home work fine).
It's thinking, thinking... and a minute later it works again. Shit happens.

So, your computer lost connection to the ventilator motors.
It's thinking, thinking... and a minute later you have a corpse.
AquinusNow, is that instability of the Pi or the software driving the Pi? Got to be careful with that one. An Arduino can be just as unstable if you write garbage code for it.
Well of course. But I'm under the impression that RPi's are being used precisely because they're easy to program on top of Linux. Not unlike the reason why they got so popular in the first place. :)

If they're using ELF, they may as well use a industry-standard microcontroller - easier to get and probably still more robust.
Cheaper too, although it doesn't really make a difference in an expensive device like a ventilator. :)
Posted on Reply
#9
Ferrum Master
AquinusAn Arduino can be just as unstable if you write garbage code for it.
At least it is one single piece of code where you are the governor, not a collection of binaries on top your code resides, too many vairables. Also prototyping on arduino makes a single MCU where in parallel you think of the actual PCB with proper powering and interfacing. It is the same Atmega in the end. I am not a fan of Ardiuno IDE tho. I usually chose different approach making a beta HW board and then tailoring the code on different platforms and not vice versa. It is such a robust platform actually... no wonders there... also the libraries driving peripherals have proven themselves more than decades, so we can assume they are really safe.

I have also seen these MCU's die after few years of usage tho. So using parallel approach splitting tasks to each function is the most safe approach. They are also cheap and widely available, while RPI actually often exhibits shortage.
Posted on Reply
#10
Aquinus
Resident Wat-man
notbeasier to get and probably still more robust.
I think that's probably an assumption with regard to how easy it is to get. It's not like those components are part of GM's supply chain either. Also, if it's the actual biomedical companies that produce the ventilators who made these circuits, then it's hard to get this hardware to where you need it since those companies are producing these components for themselves, not for others. So the extra stock probably isn't there, nor is there a supply chain to connects these companies. Just saying.
btarunrEstablished biomedical equipment manufacturers use their own ASIC-based electronics for their ventilators; but the likes of General Motors don't have time to develop custom electronics.
Posted on Reply
#11
Ferrum Master
notbMy RPi is currently used for 24/7 web scraping, but I'll probably retire it and go back to the free Google Cloud VM.
I'm not saying it's bad or something. It's exactly what I'd expect from a Linux PC. It's perfectly fine as long as you use well tested software and nothing goes wrong. And it quickly falls apart when there's a problem.Still, RPi is really nice for non-production stuff. I know it's extensively used at my faculty (physics) for teaching, prototyping and even for cheap experiments.
Well it is what it is. I've used to make Weather station with web access, to observe how fast MEMS type gas sensors do really deteriorate under normal indoor conditions, and their measurement starts to lie, with what you can kick them out of order. Because same sensors are used in climate controls for closed buildings... and there are often anomalies that is hard to explain(they actually often cease to work, the CO2 pullout despite the sensors are duplicated... well I got my answer.

It ran... with some character, it choke often on data, yet being alive, multitasking sucked and some services died the web access died... it is the Linux core bug actually. Also data corruption on long term with some memory cards was observed and that is serious thing... you never know.

It is really meant to play with GPIO actually. SPI devices and compile code and drivers for those small IoT things. And their drivers really also suck. Now RPI has different archs, some ports are swapped, the binaries never work and making them compile often is a frustration, as no documentation exists for that. Last time I used Pi few weeks ago was to flash a SPI EEPROM 25W64..., my dedicated programmer suddenly died, the time a took it once a year out of the closet and it failed. Some of the I/O ports kicked the bucket, haven't looked closer what's dead. Glad I had RPI for that. But other than that... RPI is by no means a stable machine. For NAS also naaah... get some of those abstract small BIOSTAR APU's motherboards, properly set it might kick the Synology solutions but for fraction of a price.
Posted on Reply
#12
notb
Ferrum MasterFor NAS also naaah... get some of those abstract small BIOSTAR APU's motherboards, properly set it might kick the Synology solutions but for fraction of a price.
Well actually I'm just going for a Synology device. I really need it to work. Especially since it will run the 1st tier backup for all my devices.
Just choosing between DS118 and DS218+ at this point. I would be fine with a single drive, but I'm not sure about the file number limit (100k vs 1M). And of course the latter can run simple VMs, so it would replace my RPi in that as well. :)

As for use of my RPi at that point... I honestly don't know. I obviously had huge plans and expectations, but actually I just don't have that much time for "fun projects". I need some stuff to work out of the box.
Maybe I'll build an autonomous water cannon to scare pigeons on the balcony. A pump, few motors, TensorFlow Lite, some bird-finding model - should be fun.
Basically:
hackaday.com/2018/01/26/auto-tracking-sentry-gun-gives-deer-a-super-soaking/

TensorFlow Lite actually runs surprisingly well, but as with the ventilator - I wouldn't really want it driving my car...
Posted on Reply
#13
Ferrum Master
notbMaybe I'll build an autonomous water cannon to scare pigeons on the balcony.
Maybe a cat as a plan B?

I have also looked into sentry gun. Albeit for a laser equiped mosquito killer device... it ended up into military area, needing parts tech... it needs a heck of a lot coding time for imaging, sonar, tof data, and those things are fast.

Well Bill Gates actually has ordered development of such mainstream device... to fight malaria so I canned the idea.
Posted on Reply
#14
micropage7
Ferrum MasterPIC or AVR is enough. Bullet proof code with no memory leaks made from stable compiler and brute C or ASM code
wait, there's anyone try to brute C ventilator?
Posted on Reply
#15
Ferrum Master
micropage7wait, there's anyone try to brute C ventilator?
Brute means function less language. No higher level commands that after recompiler usually means smaller binary and much faster code execution.

Coding for small MCU's is often irrational. You have to do stupid code using primitive commands and equations in order to have better speed, ram footprint etc
Posted on Reply
Add your own comment
Apr 26th, 2024 14:17 EDT change timezone

New Forum Posts

Popular Reviews

Controversial News Posts