Hi Team Arduino,
I've been using Arduino for a three years in test system designs for our company. The company enjoys a lot of freedom in platform choices, but has recently decided to take on an FDA project. Our quality management system isn't completed yet but we're plowing ahead with FDA development. It's a lot like flying a plane while trying to build it at the same time.
I'd like to continue to use open-source hardware for test - specifically Arduino. If we use Arduino we have to validate it. The FDA website has a lot of discussion about how to validate items - especially off-the-shelf software and hardware. Seems like one of the prerequisites for an "easy" path to qualification of some devices and software is to point to the provider's quality management system. That is - if they are ISO 9001 or FDA certified, then that can be used as objective evidence that the software or product is of high enough quality to use. Of course there are other litmus tests that the provider has to pass, but a quality management system is the first hurdle to overcome.
Is there any objective evidence that Arduino.cc has a quality management system that is certified by an outside agency - like ISO9001? Does anyone have experience in using Arduino in an FDA environment? If so, can you please provide some insight as to how you were able to validate it's use?
On the one hand - maybe I'm just on a fool's errand. :o On the other hand - if Arduino.cc can't provide the necessary information required for FDA validation, then maybe there are some other paths. Here are some thoughts:
Use an Arduino-compatible hardware source that is ISO or FDA certified. My personal favorite is Linear Tech's Linduino.
Instead of using the Arduino IDE, use the Atmel Studio tool - they would easily pass the litmus test for ISO and FDA.
Any comments, feedback or insights would be greatly appreciated!
Do you have the link to the FDA site? (just curious)
Hi Rob,
Many thanks for replying!
Here's the general link to the FDA site:http://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?CFRPart=820
Chapter and verse are here: CFR - Code of Federal Regulations Title 21
Exact wording is located at the bottom of the page:" (i) Automated processes. When computers or automated data processing systems are used as part of production or the quality system, the manufacturer shall validate computer software for its intended use according to an established protocol. All software changes shall be validated before approval and issuance. These validation activities and results shall be documented."
Finally - the FDA provides guidance here:http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/GuidanceDocuments/ucm073778.htm
Because it's all open source, you could do your own validation. Get a contractor in for a week to write a software-validation chapter in your own ISO9000 handbook and then say that the Arduino software was checked against that. You probably need that chapter anyway, to validate the sketch that you write.
It does lock you in to using one specific version of the Arduino IDE. Version 1.6.x doesn't seem particularly stable right now - they've had 4 "x" revisions in only a few weeks. So don't do your analysis on the latest Arduino. I think the latest version 1.0.x is a good candidate, but you lose a lot of the good features added in the last 2 years.
I think it's good enough to use for life-support but I don't have to prove that in the paperwork to anyone.
MorganS:
Version 1.6.x doesn't seem particularly stable right now - they've had 4 "x" revisions in only a few weeks.
Yeah - we seem to have joined the Backwards Combatibility Version-of-the-Week club.
Hi Morgan,
QMS certification of providers is step one. A validation (inputs=outputs) would still need to be done. Although a good idea - getting my company to pay for a consultant to work on this is a non-starter.
I have a plan in mind where I'd write test scripts using the various commands and compare them to expected outputs. Just not sure how many or how comprehensive it would have to be. Like - do I need to prove out every Arduino command? Is it possible to maybe limit the testing to functions I know I'm going to use and forgo the rest?
BTW - good advice on the version to use. I've been using 1.0.1 for the past two years, so I was planning on just validating that version. But it is frustrating because the newer version IDE really does offer some much needed improvements - like library management.