OpenEVSE – Open Source J1772 EVSE (“Charging Station”) for Electric Vehicles

Last year, I purchased a Nissan Leaf, which is an all electric vehicle (EV). Although the Leaf comes with an included L1 EVSE (“trickle charger”), which connects to a regular 120V wall outlet, it takes way too long to charge the car. The more practical solution is to purchase and install a J1772 L2 EVSE which is equivalent to the commercial charging stations you see in public parking lots. The problem is the cost. J1772 L2 EVSE’s cost a couple of thousand dollars; the quote I got from Aerovironment, Nissan’s chosen installer was about $4000 including installation. Considering that modern EV’s using the J1772 standard have the charger built-in to the car, and that a J1772 EVSE is no more than a smart safety interlock plug for connecting the car to the wall, I thought the cost was pretty outrageous.

I obtained a copy of the SAE J1772-2010 standard, and after a few hours of perusing it, realized that a J1772 EVSE could be implemented with an Arduino, a few parts, and a relay at the fraction of the cost of the commercial products.  Furthermore, that the circuitry is so simple and compact that it could be built into a small case that fits into your hand, and can easily be thrown into your trunk, rather than the giant monstrosities like GE’s WattStation.

I started to design my own EVSE around an AVR MCU, but soon discovered that Chris Howell had had exactly the same idea, and posted about his Weekend EVSE project on the MyNissanLeaf forums.  Chris had already made major progress on the project, so I thought, why reinvent the wheel?  I contacted Chris, and we decided to team up to develop an inexpensive, portable L1/L2 J1772 EVSE. Chris is a wizard with PCB layout, and has shrunken the board down to smaller than an Arduino over several revisions. It’s truly a sight to behold how tiny and simple it is after seeing the giant messy hackorama that’s being funded by the DOE, the $5000 Blink EVSE, which is just an amalgam of OFF THE SHELF DEVICES IN THEIR ORIGINAL CASES: http://www.mynissanleaf.com/viewtopic.php?f=26&t=5664 . One thing that I find annoying about commercial EVSE’s is that they often waste too much power in standby mode. Nissan’s included EVSE draws about 3W in standby, which doesn’t sound like much, but the question is WHY? Vampire power wastes about 10% of the energy used by a typical residential household. I’ve heard that the Blink wastes more than 50W when it’s doing nothing. Not only that, many of the commercial offerings (including Nissan’s included L1 EVSE) aren’t even 100% J1772 compliant!

After many hours of tweaking and testing, we designed a 100% J1772 compliant dual mode L1/L2 EVSE.
This DIY EVSE has worked flawlessly charging my Leaf ever since last summer:

The actual EVSE logic board is the tiny PCB at the top with the 3 LED’s attached to it.  The switching power supply is on the bottom right, and a 30A relay is on the bottom left.  A CT in the upper right is used to detect ground faults.

For a portable unit to throw in my trunk, I need adjustable current, so I’ve implemented a 1-button menu interface using a common HD44780-compatible 16×2 LCD, connected to an Adafruit LCD backpack, which greatly reduces the pin count required for interfacing to it. I’m currently using it in i2c mode.

Note how small the controller PCB is now … Chris is a PCB layout ninja … yes, that’s a complete implementation of a J1772 EVSE on that tiny board.  Now, go back to the Blink EVSE link I listed above, and see how huge and complex the circuits are in the commercial offerings THAT AREN’T EVEN 100% compliant to the standard!

This time, instead of going into the expensive box I bought for the first EVSE, it’s going to live in a $5 NEMA wiring box from my local hardware store. I think this box will be a lot more durable against getting dropped and thrown around than my fancy $18 NEMA box.

Hardware hackers, what are you waiting for?  Join in on the fun.  We’ve open sourced the design as OpenEVSE:  http://code.google.com/p/open-evse/. Now, you can build your own fully hackable, customizable EVSE!

DISCLAIMER:  Don’t jump into this project unless you have a thorough understanding of the precautions which must be taken when dealing with high voltages and currents.  It’s quite easy to electrocute yourself and DIE if you don’t know what you’re doing.

27 thoughts on “OpenEVSE – Open Source J1772 EVSE (“Charging Station”) for Electric Vehicles”

  1. hey really nice…none of the commercial units Ive seen annunciate with the lcd…how much code space availble??Enough to use the new 3 color backpacked 2×16 lcd and get rid of the red,grn,blu led altogether…nice programming..kp couch

  2. Hell
    I’m so glad you did this .I think for though who have work electronics and that kind of power it well save us, them a lot ..and be fun too..I like idea of the display and that one can set the current levels too..I guess too with right power supply it should both on 120 VAC and 208~240 VAC. keeping it small is good so don’t take up space in the car. and well allow one carry it any , and be able to any course power that can be had?

    do you have any PCB and program CPU ( with button for program current programing) ??

    I did see where one could get on the open web site.

    P.S. I have converter some of old Avcon to J-1772 . so I have worked the HV AC
    Thanks
    ken

  3. You’ve used a 30A relay, when the specification states 80A, and doesn’t seem to have paid any attention to the safety aspects of 240V at 80A (19,200W).

    Also, the proper equipment does current limiting – How are you controlling 19.2kW with an AVR – through the I/O pins?!

    Anyway, forgetting all that – dont switch anything else on if charging from your house
    – because the whole house is rated at around 80A!!!!!!!

    Ps. I can “recharge” my car in about two minutes anywhere in the country, and get a 500 mile range on that!! Beat that!!

    1. 1) You need to do your homework and read the J1772 spec. The maximum current output is dependent on the pilot signal. Mine is configured to output 16A max, which is far below the max rating of the relay
      2) Maybe you need to learn a bit about electric circuits. Do you know why relays were invented?
      3) The OpenEVSE design implements all safety features in the J1772, including parts of the spec that are ignored in certain commercial offerings (e.g. diode check)
      4) Most modern houses have 200A service. My old house, built in the 50’s even has 100A service. 16A isn’t a big deal with a dedicated circuit.

      I’m sure your wallet loves it when you empty it at the gas station, while I’m charging my car at home for free from the sun hitting my roof.

  4. Right putting my figures to 1 side – Your circuit should be rated at a max rating -NOT rely on software to inform it anyway!!!!!

    You either dont drive far or have a vast solar array lols – the figures just dont match 2KW peak = average 10% performance = 5kWh all day long =

    6.6Hp for an hour – which sugest you can drive approx 6 minutes a day lols from solar panels!!!!

    How many kWh are you getting a day then genious????
    Your figures just dont match –

    PS. Yep keeping my car!!!! Your’s is just a toy

  5. * genius lols
    PS. I’m a software/hardware engineer with some 20 years experience with automotive engineering along with my colleague who also designs circuits for a living – what do you do?

    May I suggest at very least you put this project in a grounded metal box? At least making it fireproof.

    I will carry out further research with this article and publish findings on my own blog. Certainly with the practicalities of an electric vehicle at its current stage of evolution (which is pretty ridiculous).

  6. If the EVSE’s must be encased in metal, then tell why me most UL approved commercial home EVSE’s are in plastic cases, including the portable EVSE which came with my car. While you’re at it, look at the spec sheets of the relays and wiring in them, and see if they can handle 80A. While you’re at it, you better call all of the building departments in LA, and tell them what idiots they are for requiring only 30A wiring for an EVSE rated at 16A. I’m sure you’re also more knowledgeable than all of the engineers who wrote and approved the SAE-J1772-2010 specification, since you have been an automotive engineer for 20 years, working with 12V circuits.

    As for your calculations regarding solar panels, and EV energy usage, again your math is erroneous. I really don’t understand your hostility towards EV’s and solar power. My solar array is a modest, consisting of 17x250W panels. You are quite welcome to monitor its daily output here: https://enlighten.enphaseenergy.com/public/systems/BwnV25755. My EV used 5.5 kWh for a 25 mi commute yesterday. My solar panels generated 24.7kWh, so there was ample energy left over to take a big bite out of my electric bill for the rest of my house.

    While I agree that the EV industry is only in its infancy, early adopters must dive in so that economies of scale may be reached, and major automakers will be nudged into investing in more R&D. Hopefully, battery chemistries will emerge in the next few years which will extend the range and lower the cost.

    Perhaps your skepticism is due to a misunderstanding of current EV offerings. I own 3 vehicles, two of which run on gasoline. My EV is the car that we use exclusively for trips with round trip distance ~70 miles. I would not advise a household which owns only 1 car to buy one, but for my purposes, it is quite practical, and saves me the hassle of waiting in line at gas stations. Also, I like that fact that it doesn’t need most of the regular maintenance of ICE-powered autos, e.g. oil changes, tune-ups, etc. While the $$/mile for fuel cost and maintenance is very low, the battery pack will cost a fortune to replace when the time comes. I am hopeful that when it’s time to replace the battery that strides in the industry will have already reduced the cost and increased the capacity. On the other hand, the BMW which my EV replaced depreciated more than the entire cost of my EV during its lifetime, so I don’t really mind too much if the car is worth very little at the end of 10 years.

    If you have something constructive to say, I’m all ears. Otherwise, please take your heckling back to your own blog. You are welcome to rant all you want against EV’s, green energy, etc. on your own turf. But for your own sake, and the sake of your readers, it would be wise to do some more research first. I have wasted far too much time answering your childish taunts here, and do not wish to continue this conversation.

  7. lincomatic, Wonderful design and implementation!

    I recently bought a Leaf. Even before seeing this site, after looking at the specs and the functionality of the charger that came with the Leaf, EVSE, and after having a Bllink station installed (this
    was a free install under some clean air encouragement program), I had come to the conclusion it should have been implemented in just about the size you had done!! Of course charging stations like the Blink is designed for more than the Leaf. The Leaf has almost all of the charginng smarts built into the car; but others dont. Yet Nissan’s own charger is way too big, that is because it is done by a car company and not an electronics company 🙂 Besides, if they make it as small as yours, unless they have Apple’s marketing clout, they wont be able to charge an arm and a leg.

    Chacko

    1. Actually, Nissan’s EVSE is built by Panasonic.. when looked inside I was surprised that’s the best they could do. And it ticks me off that the Blink draws ~50W when doing nothing, while the Pansonic draws 4W. OpenEVSE draws <1W when idling. The Blink is a hackorama of off the shelf parts IN THEIR CASES. I didn't qualify for one due to my zip code, unfortunately, which is why I started looking into building my own.

      1. Perhaps they have modified the hardware or revised the sw. My Blink charger (5 weeks old), takes about 10-15 w on idle, much less than most people have observed. I did repeat the measurements many times; one person unplugging / plugging the charger while another looking at the electric meter and noting the change in w on the digital electric meter. When I called up the Blink customer support, even they assumed the idle power consumption was higher. So that has been a bit of a puzzle.

        Another topic: Where can I see the complete schematic of your new charger? Which relay did you use? Are part numbers for the box etc available?

        1. Hmm. It’s good to know that Blink is revising their design. I was pretty angry that the DOE was using our tax dollars to fund that hackorama. Just follow the link for OpenEVSE above for complete information on building your own.

  8. lincomatic,

    My question about connection to CanBus was not related to the product that does not have to connect to the CanBus (such as the Lev2 charger) 🙂 I have seen posts from you about picking off signals from CanBus for other purposes. So how/where from is the CanBus connection made?

  9. Excellent work lincomatic. I plan on building an Open EVSE as soon as the boards are back in stock.

    Well done on shutting that troll STEVE up too! Nicely done. Dipshits like that probably can’t even spell EVSE!

  10. Congratulations on the new firmware for the Open EVSE – It’s really GREAT to be able to user select charge rates with the simple push of a button!

    IMO, what’s needed next are some timing choices – When to begin charging, how long to charge, etc. I don’t know enough about programming to know if the hardware needed to support this is already there, but it would be great if we could set the EVSE to charge for 3 hours, or 3.5 hours, etc. It would also be really great if we could tell it to begin charging at 1 AM for example . . . . if that cannot be done, maybe tell it to begin charging X number of hours from now

    At any rate, thank you so much for all of the work you have already done to get things as far as they are now – Your programming skills and Chris’s work with the boards makes for an excellent team and we are all indebted to both of you

    Don

    1. Yes, there are a lot of features I would like to add, but unfortunately, it is hard to find the time. I am also interested in the idea of a charge timer in the EVSE, rather than the car, wireless control of the EVSE, and linking it to LeafCAN wirelessly, so that you can set custom charge levels, like 90%, for instance, instead of just 80%/100%. One potential problem is that we’ve nearly exhausted the RAM in the 328P. New features might need to wait for new hardware.

      1. If there’s not much RAM left to program, I guess the single most important feature I’d like to see implemented is a way for us to automatically shut off the charger so I could limit my charges to 80% or so – The iMiEV cannot do this without using it’s incredibly clunky remote control. I know how long it takes for me to get an 80% recharge, so being able to tell the charger to turn off after a set amount of time would be a big convenience to me. What I’m doing now is noting the start time and then running out to the garage to manually pull the plug 3.5 hours later . . . . when I don’t forget 😉

    1. Well, several things

      For one, it seems not to ‘like’ any other EVSE except for the one that came with the car or one that Mitsu recommends you buy. Most other commercially available EVSEs, along with my Open EVSE and my OEM EVSE upgraded by Phil at EVSE Upgrade.com cause it to do all sorts of funky things (it refuses to work and gives you errors and alarms). There’s a thread about this on MyiMiEV.com. Mitsubishi’s reply is that we should ONLY use an ‘approved’ EVSE and an upgraded OEM one isn’t approved . . . . neither is the OpenEVSE I use daily

      So . . . . I never mess with the remote and do my charging manually, which is why I wish the OpenEVSE had a countdown timer to shut it off – Set it for 3 or 3.5 hours (or whatever) and forget it. Maybe one day . . . . I understand you have plenty of other irons in the fire 😉

      Thanks!

      Don

  11. Hello lincomatic!

    Thank you for your work. I built an EVSE with the Arduino UNO Board an made some changes in your code. I am also working on the auto switchoff function. Therefore I have a question. Which state accords to that when the battery is fully loaded?

    Thanks
    Walter

    1. There’s no way to tell if the battery is charged or not. The vehicle will just go back to State B when it’s done.

  12. Rather than unplug the EVSE at the proper time, you can get a Water Heater Timer to turn it off for you. Intermatic makes one rated 240V/30A, found on epay.

  13. Hi:
    Excellent work from you and Chris; I built the Open EVSE from Chris’s first generation board for my Leaf ,#669, and it is working great. I’ve will update my EVSE sometime in the future and would like to add the additional features. Right now my EVSE would only satisfy the staunchest minimalist.

Leave a Reply to lincomaticCancel reply