I love sharing knowledge. When working in a team, I can’t help but get all the exclusive understanding I have out in the open. My value to a company isn’t in the information I know, but in my approach and ability to solve problems. On top of that, I would much rather not have to hold all that information in my head; it frees me up to do something else I love – solve problems. So how do I feel about Instructables. I think it’s great that there is a community of people who share that same passion; one of solving a problem and telling the world about it. However, I need to share something I am constantly telling my team; the internet is full of idiots. This phrase was brought to mind with a project post detailing an EV charger. The poster had seen an open source design of an EV charger (the OpenEVSE), modified it, and produced one of his own. This is one of the defining features of open source design. However in doing so, has created something life-threatening. Now I am not saying that the poster is an idiot, or the open-source design was created by an idiot. However, someone somewhere in the chain lacked knowledge. Before anyone comments, this is also knowledge that I lack.
The poster’s project detects the presence of a car, using the “pilot” signal, and switches mains across to the car – not dissimilar to commercial offerings. He claimed that his two priorities were simplicity and safety. He then detailed all the research into safety and, although claimed the he wasn’t an electrician he then said that if not done right that it could be dangerous, and that he thought that his setup was safe. He decided to implement some RCD functionality, something the EVSE also does. And in doing so, made a number of huge mistakes.
Without any understanding of what is required by law, I was able to find the following issues: 1) He is reading the imbalance of current using a microcontroller, and opening the relays if the threshold is exceeded. If the microcontroller hangs, there is nothing to open the relay. 2) He is using 2 separate relays to switch the Live and Neutral. As these are not interlinked, if the live relay welded closed, there is no protection. 3) He soldered mains wiring to the PCB instead of using a terminal block. 4) He used stranded wires in a screw terminal block without using ferrules.
With points 1 and 2, this is especially dangerous as he has presented a lot of information as to why his design is safe, but there is no consideration of failure of his design. FMEA (or Failure Mode Effect Analysis) is a great tool whereby each of the potential failure modes are looked at and solutions are proposed to mitigate that failure.
If this were a design review, again without reading BS 7671 (commonly referred to as 18th Edition), I’d recommend the following: 1) Include a hardware watchdog to check that the code is still running. I would also recommend AC-coupling the relay control to force the software to toggle the pin to keep the relay closed. Careful selection would be required to ensure that the relay still switches off within the specified time. 2) I would use two dual relays in series; each relay switching the live and neutral. I would consider adding some monitoring circuitry to the socket side to determine that the circuits are energised only when I want them to be. Now, we would need both relays to fail closed for their to be a risk to safety, and we would be able to alert the user to a failed relay. 3) Install a terminal block, preferably with rising clamp to reduce the need to ferrules. 4) Use ferrules. These protect stranded wires from damage. Care needs to be taken to ensure that the ferrules are correctly sized and not over-crimped.
Following a discussion with a good friend who has many years experience as an electrical fault investigator, he highlighted another issue with the RCD – as in it’s completely wrong. According to BS 7671, it needs to be a two pole Type B RCD (AC, rectified AC, high frequency, and DC). Obviously, I would have found this out by reading BS 7671, or even just searching UK RCD requirements for EV charging.
Sharing of information online is good, but it is all too easy for poor information to proliferate. Again, the internet is full of idiots. How do we protect against the sharing of dangerous information, and how do we protect against the sharing of out-of-date information?
First, we need to educate ourselves on our own limitations. I have never read BS 7671, but I know that it exists and that I can buy it for under £100. I read standards as part of my job, so I know that how standards work. In this instance I would’ve seen that BS 7671 had a recent amendment that calls into question the relevance to everything published prior to this. I would’ve searched around and seen that a Type B RCD was required, and thought that it were simpler to fit this inside my fuse box instead of trying to design one.
Second, we need to check with other relevant competent people. The Dunning-Kruger effect details people of low competence overestimating their own level of competence. Being a member of the IET means that I have access to other people who are likely to have a level of competence. Too many people make a mistake because they are comfortable doing something dangerous. The project above exists in the UK but was based on the OpenEVSE, a US project. National laws and standards exist for a reason. Sources of information need to be relevant and competent.
Thirdly, we need to correct our published information when we’ve been corrected, it is not enough to leave corrections in the comments. When you publish something, it is out there. If it includes advice, you need to ensure the reader is aware of the limitations of that advice. Include a date of publish, and make the reader aware that the advice may be out of date.So what do I do from here? Like I said, I love sharing information. So I’m off to Instructables to add a comment onto the original project detailing what I’ve said here, hoping that I don’t become another idiot on the internet.