The Problem
Melting plastics in your home, even PLA, could be harmful to your health. Here are some research articles:
- https://www.sciencedirect.com/science/article/pii/S1352231013005086
- https://www.engineering.com/3DPrinting/3DPrintingArticles/ArticleID/18080/3D-Printing-Health-Risks-Identified-by-UL-and-Georgia-Tech.aspx
- https://new.engineering.com/story/ul-sets-3d-printing-emission-standard
- https://new.engineering.com/story/picking-the-right-3d-printing-material-with-optimatter
- https://www.researchgate.net/profile/Tomasz_Baran/publication/313413700_Is_3D_printing_safe_Analysis_of_the_thermal_treatment_of_thermoplastics_ABS_PLA_PET_and_nylon/links/5cd887df458515712ea67850/Is-3D-printing-safe-Analysis-of-the-thermal-treatment-of-thermoplastics-ABS-PLA-PET-and-nylon.pdf
- https://pubs.acs.org/doi/pdf/10.1021/acs.est.5b04983
- http://www.ehs.ufl.edu/programs/os/3d-printer-policy/
- https://www.ehs.pitt.edu/sites/default/files/docs/03-0253Dprinters.pdf
- https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4917922/
- https://3dprintingindustry.com/news/niosh-publishes-health-safety-advice3d-printing-with-filaments-and-metal-powders-171569/
- https://all3dp.com/2/3d-printer-filter-air-filter-3d-printer-hepa-filter/
- Nederman - Solutions for dust and fume extraction in a 3D printing work environment
Tl;dr: it may be bad, more research is needed. No scaremongering, just science.
While we wait for additional research, an easy way to enable OctoPrint users to monitor air quality around their printer would:
- Make it possible to test the current attempts at DIY ventilation solutions. It seems most people who have attempted to do something about the potential health risks, including the creators, are dangerously and wrongly assuming that if it looks like a filter it'll do the job
- Reduce the health risk of 3D printing at home
- Help the community learn which filaments and brands present the highest/lowest risks
- Increase awareness of potential health risks, and potentially research funding as a consequence
- Increase interest and development of DIY enclosures and filtration systems
- Encourage filament companies to actively work to reduce potentially harmful emissions
Personally, as I live in a flat/apartment, we don't have the space to stay out of the room all day, and I always got headaches when printing with PLA+ in the office (our small second bedroom), so my printing is on hold until I can continue safely.
Help Wanted...
I'm a Product Manager with some UX experience. I'm not a developer (I'm really at university-level coding), but I'm having a go, see the GitHub repository. Contributions from people who know what they're doing would be much appreciated!
Current Plugins
Octoprint-SDS011 is a great start, it's complicated to install, has limited functionality, and doesn't use the best value (accuracy vs cost) sensor. I wasn't able to find any others.
Particulate Matter Sensor
The hardware should balance cost, accuracy, size and ease of acquisition to reduce the barrier for getting this set up. I'd suggest starting with a single sensor that balances these attributes, and add more in the future. At a minimum, the sensor should output measurements for 1.0 μm, 2.5 μm and 10 μm particles.
Options:
HoneyWell HPM HPMA115C0-003 and -004
- https://www.honeywellscportal.com/honeywell-sensing-hpm-series-particle-sensors-datasheet-32322550-e-en.pdf
- Factory calibrated, but relatively expensive and harder to use
Plantower PMS5003
- Well regarded in other projects and scientific experiments.
Plantower PMS5003ST
- Also includes formaldehyde, temperature and humidity sensors, but rarely mentioned online - no experiments, very few public projects, and if one sensor fails, it cannot be replaced individually.
Plantower PMS7003
- Similar to the PMS5003 but half the size
Plantower PMSA003
- Seems to be newer and smaller than the PMS7003. Hard to tell from the (untranslated) comparison table
- http://www.plantower.com/Templates/panteng/images/xxb.jpg
- Available on AliExpress for $18.90
SDS011
- Doesn't seem to be as accurate as the other options.
SDS021
- Doesn't seem to be as accurate as the other options.
SGP30
- Board only, no case with fan/duct to provide continuous air flow across sensor.
So far, I think the Plantower PMSA003 is the one to go with, at least initially. This should be connected via USB to aid in support for various OctoPrint capable devices and for multiple sensors per OctoPrint device. The two best tools I've found for interacting with this sensor (and others) are PyPMS and plantower.
Longer term, it would be helpful to support a variety of sensors.
Questions:
- Humidity can affect the sensor reading, and consequently the humidity should also be measured and compensated for. How?
Humidity Sensor
Pending research...
BME680 ??
VOCs Sensor
Pending research...
BME680
MQ-135
SGP40
Serial UART to USB Adaptors
Some information about what these do and the various options can be found here: https://www.sjoerdlangkemper.nl/2019/03/20/usb-to-serial-uart/
The FT232R seems to be the most popular. It's easily available cheaply from AliExpress for ~$1.50 and doesn't require drivers to be installed on a number of compatible platforms. If needed, PyFTDI provides an all-Python driver.
I think it's reasonable to remain adaptor-agnostic in this project, expecting users to either follow the hardware recommendations to purchase the above, which is very affordable, or install the drivers required for their chosen alternative.
Requirements
- Must always be as easy as possible to install and configure
- Python 3 for compatibility with OctoPrint 1.4 onwards
MVP
- What are the particulate matter measurements inside my enclosure/print area?
- What are the particulate matter measurements outside of my enclosure/print area?
- How do my measurements compare to my baseline when there is no 3D printing activity?
- Where do my measurements sit in the particulate matter guidelines?
MVP+1
- What are the VOC measurements inside my enclosure/print area?
- What are the VOC measurements outside of my enclosure/print area?
- How do my measurements compare to my baseline when there is no 3D printing activity?
- Where do my measurements sit compared to guidelines?
MVP+2
- What were the readings over time?
MVP+3
- Use standby mode of sensor intelligently between readings to ensure longevity of parts, as they tend to have a stated lifetime before readings lose accuracy
MVP+4
- Compensate sensor readings for humidity.
Post-MVP
- Investigate options for monetisation (the basic functionality in the MVP, however, should always be free)
- How do my filaments compare for safety?
- Support more sensor models
- Support more Serial UART to USB chips
- Help buyers identify relatively safe and unsafe filament
- Notify me when it's safe to enter the room/open my enclosure
- Warn me when it is unsafe to be in the room/open the enclosure
Next Steps
- Build the fundamentals of serial device management in an OctoPrint plugin (WIP, see GitHub repo)
- Start working through the MVP requirements
- Design a simple sensor to UART adapter cable and get a supplier to manufacturer it
- Design 3D printed parts to hold the sensor(s) and adapter(s)
- Research into applicable VOCs and appropriate hardware
- Choose the best suited humidity sensor
Reference Projects
The following projects use various sensors. I've been collecting these as references for interacting with the sensors.
https://opensource.com/article/18/3/how-measure-particulate-matter-raspberry-pi
https://dustsensor.net/
https://github.com/anoochit/pm25_pms7003
https://github.com/arendst/Tasmota/wiki/Sensors-Supported-by-Tasmota
https://github.com/rpanfili/airQualityMeter
https://www.thingiverse.com/thing:2320020
https://all3dp.com/4/smart-diy-3d-printer-emission-monitor-collects-harmful-volatile-organic-compound-data-at-home/
https://hackernoon.com/how-to-measure-particulate-matter-with-a-raspberry-pi-75faa470ec35
https://learn.adafruit.com/pm25-air-quality-sensor/python-and-circuitpython
https://learn.adafruit.com/remote-iot-environmental-sensor
https://forum.mysensors.org/topic/6404/next-generation-dust-sensor-for-mysensors
https://www.rigacci.org/wiki/doku.php/doc/appunti/hardware/raspberrypi_air
https://www.balena.io/blog/build-an-environment-and-air-quality-monitor-with-raspberry-pi/
https://cassiopeia.hk/laserdust/
https://github.com/teusH/MySense/blob/f164229c49e73947e9549a855a486cfd27c5c98d/docs/pms7003.md
https://www.letscontrolit.com/wiki/index.php/PMSx003
https://github.com/pawitp/android-pmsx003
https://www.hackster.io/kutluhan-aktar/raspberry-pi-adjustable-air-quality-detector-running-on-gui-b7fb75
AirManagerV2 recirculating air filter for 3d printing enclosure
High-performance particulate matter including nanoscale particle removal by a self-powered air filter
Build a Laser Cutter Fume Extractor
A More Complete Air Quality Monitor
The following use sensors in OctoPrint for other purposes and may be helpful: