DIY Open EVSE V4.23

Construction and cir­cuit infor­ma­tion for the DIY Open EVSE V4.23 elec­tric vehi­cle charg­ing sys­tem.

Open EVSE V4.23 circuit board
Open EVSE V4.23 cir­cuit board Version 4.23 for elec­tric vehi­cle charg­ing using the SAE J1772 stan­dard

The DIY Open EVSE cir­cuit board Version 4.23 is used for elec­tric vehi­cle charg­ing using the J1772 stan­dard. It is an Open-source hard­ware project which uses the GNU General Public License and is based on the orig­i­nal designs by Chris Howell and Lincomatic.
For the his­to­ry of the DIY Open EVSE Project, and board changes from the orig­i­nal V1. See my pre­vi­ous post - The DIY Open EVSE Project

DIY Open EVSE Version 4.23 test setup in charging mode
DIY Open EVSE Version 4.23 test set­up in charg­ing mode

The DIY Open EVSE ver­sion 4.23 is my lat­est thru-hole board ver­sion of the Open EVSE charg­ing sys­tem. It incor­po­rates the cur­rent safe­ty fea­tures of the sur­face mount com­po­nent ver­sions of the board. It is pow­ered by a 12 volt 5 watt DC pow­er sup­ply, and gen­er­ates and reg­u­lates +5, +/-15, and +/-12 volts DC on the board. The micro­proces­sor IC1, is an 8‑bit ATMEGA 328‑P.

OSH-Park Render of DIY Open EVSE 4.23 circuit board top
OSH-Park Render of DIY Open EVSE 4.23 cir­cuit board top
DIY Open EVSE 4.23 Board Eagle CAD board layout
DIY Open EVSE 4.23 Board Eagle CAD board lay­out

There are 6 main sec­tions of the cir­cuit:

  • Power
  • Microprocessor
  • Pilot
  • Safety checks
  • Relay con­trol
  • Auxiliary cir­cuits
DIYOpenEVSE Schematic for Version 4.23
DIY Open EVSE Schematic for Version 4.23

The Power sec­tion con­sists of a 5 volt buck switch­ing reg­u­la­tor, with a lin­ear reg­u­la­tor option foot­print, an iso­lat­ed +15/-15 volt DC-DC con­vert­er, and +12/-12 volt lin­ear reg­u­la­tor for the Pilot sup­ply.

DIY Open EVSE 4.23 5 Volt power section schematic
DIY Open EVSE 4.23 5 Volt pow­er sec­tion schemat­ic

The 5 volt buck switch­ing reg­u­la­tor is based on a MAX5033‑5 high-effi­cien­cy, step-down DC-DC con­vert­er. This pulse-width mod­u­lat­ed (PWM) con­vert­er oper­ates at a fixed 125 kHz switch­ing fre­quen­cy at heavy loads, and auto­mat­i­cal­ly switch­es to puls­eskip­ping mode to pro­vide low qui­es­cent cur­rent and high effi­cien­cy at light loads, and deliv­ers up to 500mA out­put cur­rent.
A cost-sav­ing option for the 5 volt sec­tion is to replace the MAX5033‑5 with a 78L05Z lin­ear reg­u­la­tor (IC9 option­al) and only pop­u­late (C27 option­al), C16, and C17 in this sec­tion. If the MAX5033‑5 is used, do not pop­u­late IC9 or C27.

DIY Open EVSE 4.23 Isolated power section schematic
DIY Open EVSE 4.23 Isolated pow­er sec­tion schemat­ic

The iso­lat­ed +15/-15 DC-DC con­vert­er is a Murata 1 watt MEV1D1215SC in a SIP 7 pack­age with 3kVDC gal­van­ic iso­la­tion. This sup­plies pow­er for the DG419CJ switch IC2 and the +12/-12 volt lin­ear reg­u­la­tors IC3/IC8. The out­puts of the +15/-15 iso­lat­ed sup­ply are fil­tered using the man­u­fac­tur­er rec­om­mend­ed LC fil­ter of 47 uH (L1, L2) and 1 uF (C6, C7) and also include a min­i­mum load resis­tor of 3.74K ohms (R3, R4).
The +12/-12 reg­u­la­tors IC3/IC8 sup­ply sta­ble pow­er to the Pilot switch IC2 and are 78L12Z pos­i­tive and 79L12 neg­a­tive lin­ear reg­u­la­tors, both in a TO92 pack­age.

DIY Open EVSE 4.23 ATMEGA 328-P Processor section schematic
DIY Open EVSE 4.23 ATMEGA 328‑P Processor sec­tion schemat­ic

The micro­proces­sor is a Microchip (Atmel) 8‑bit AVR RISC-based micro­con­troller with 32KB ISP flash mem­o­ry, 1024B EEPROM, and 2KB SRAM. It fea­tures 23 gen­er­al pur­pose I/O lines, inter­nal and exter­nal inter­rupts, ser­i­al pro­gram­ma­ble USART, a byte-ori­ent­ed 2‑wire ser­i­al inter­face, SPI ser­i­al port, and a 6‑channel 10-bit A/D con­vert­er. The board uses the 28 pin DIP pack­age of the IC. All pins on the IC are used with the excep­tion of ADC3 which is con­nect­ed to the option­al SPI inter­face head­er pin SPI.
Analog cir­cuit volt­ages for AMP_READ, PP_READ, and PilotVoltage are read by the 10-bit ADC on ADC0 thru 2. The GFC (Ground Fault Circuit) is sensed on INT0, and GFCI_TEST on AIN1 sup­plies cur­rent for the GFC test cir­cuit. DC and AC relays are con­trolled by out­puts AIN1, ICP, and OC1A. The 4 pin dis­play head­er labeled LCD using an I2C inter­face has Ground, 5VDC, and micro­proces­sor SCL, SDA con­nec­tions. Output OC1B sup­plies the 1,000 Hz PWM sig­nal to IC2 pin 6 for Pilot sig­nal con­trol.

DIY Open EVSE 4.23 Pilot signal communications section schematic
DIY Open EVSE 4.23 Pilot sig­nal com­mu­ni­ca­tions sec­tion schemat­ic

The Pilot cir­cuit is used to coor­di­nate charg­ing lev­el between the car and the charg­er as well as oth­er infor­ma­tion. The pilot sig­nal gen­er­at­ed by the EVSE is a 1 kHz square wave at ±12 volts and is used to detect the pres­ence of the vehi­cle, com­mu­ni­cate the max­i­mum allow­able charg­ing cur­rent, and con­trol charg­ing.
The Pilot cir­cuit is com­prised of a Maxim DG419CJ+ (IC2), TVS pro­tec­tion device, lim­it­ing resis­tor R1 1K ohm 1%, volt­age divider and bias­ing resis­tors R5, R6, R7, and decou­pling capac­i­tors. The DG419CJ+ is a mono­lith­ic ana­log sin­gle pole/­dou­ble-throw (SPDT) switch with one nor­mal­ly closed switch and one nor­mal­ly open switch. Switching times are less than 175ns max for tON and less than 145ns max for tOFF. The divider and bias resis­tor cir­cuit scales the Pilot sig­nal to 0–5 volts and is read by the micro­proces­sor ADC1 input.

DIY Open EVSE 4.23 Ground Fault Circuit section schematic
DIY Open EVSE 4.23 Ground Fault Circuit sec­tion schemat­ic

Safety Checks:
The GFC (Ground Fault Circuit) is com­prised of a LM358 op-amp IC4, an exter­nal cur­rent sense coil, bur­den resis­tor R17, and addi­tion­al resis­tors capac­i­tors, and diodes to make a peak detec­tor and com­para­tor cir­cuit. The out­put GFCI_INT is con­nect­ed to micro­proces­sor pin INT0 and goes high when a Ground Fault is detect­ed. Resistor R24 con­nects to pin 3 of the GFCI con­nec­tor and lim­its the cur­rent sup­plied by micro­proces­sor pin AIN0(PD6), it is used for test­ing the Ground Fault cir­cuit. GFCI con­nec­tor pin 3 con­nects exter­nal­ly with a mul­ti-turn (5 turns) coil wrapped around the cur­rent sense coil that returns to ground.

DIY Open EVSE 4.23 L1/L2 Relay Sense section schematic
DIY Open EVSE 4.23 L1/L2 Relay Sense sec­tion schemat­ic

The L1/L2 sense cir­cuit is used to deter­mine the pres­ence of AC volt­ages on the relay out­put ter­mi­nals. It is com­prised of two (IC5, IC6) MID400 opti­cal­ly iso­lat­ed AC line-to-log­ic inter­face devices for mon­i­tor­ing ON or OFF sta­tus of an AC input. Resistors R12, R13 are for input cur­rent lim­it­ing and keep the MID400 in sat­u­rat­ed mode when volt­age is present. The firmware in the micro­proces­sor per­forms a safe­ty check on start­up by clos­ing the relay/relays and deter­mines whether 120 or 240 volt pow­er is being sup­plied to the EVSE using the L1/L2 sense cir­cuit, and then opens the relay for a stuck relay check and ver­i­fies no volt­age present.

DIY Open EVSE 4.23 DC Relays Output section schematic
DIY Open EVSE 4.23 DC Relays Output sec­tion schemat­ic
DIY Open EVSE 4.23 AC SSR Output sec­tion schemat­ic

The Relay Output cir­cuits include 2 tran­sis­tor dri­ven DC 12 volt out­puts and 1 sol­id state relay dri­ven AC out­put cir­cuit. DC_RLY1 is con­trolled by micro­proces­sor out­put AIN1(PD7), and DC_RLY2 by out­put ICP(PB0). The micro­proces­sor out­puts, each dri­ve a 2N2222A tran­sis­tor thru a 330 ohm cur­rent lim­it­ing resis­tor. Both DC cir­cuits include a 1N4148 diode for reverse EMF pro­tec­tion from the relay coil and typ­i­cal­ly are capa­ble of 500 mA loads.
The AC out­put is con­trolled by micro­proces­sor pin OC1A(PB1) thru 330 ohm resis­tor R8. Depending on the SSR part num­ber installed, the 8 pin dip ver­sion will typ­i­cal­ly sup­port up to 600 VAC and 0.6 to 1.2 amp loads. It is rec­om­mend­ed to install a surge absorp­tion cir­cuit (Snubber cir­cuit) at the AC relay coil, based on the man­u­fac­tures rec­om­men­da­tion.

DIY Open EVSE 4.23 Current sense section schematic
DIY Open EVSE 4.23 Current sense sec­tion schemat­ic
DIY Open EVSE 4.23 PP_Read section schematic
DIY Open EVSE 4.23 PP_Read sec­tion schemat­ic

Auxiliary cir­cuits include a cur­rent sen­sor cir­cuit and Proximity pilot (PP) cir­cuit.
The cur­rent sen­sor uses an exter­nal cur­rent trans­former (CR8450-1K-T7QC) rat­ed at 100 amps. Resistor R27 is the bur­den resis­tor that con­verts the cur­rent from the CT to a volt­age sup­plied to the micro­proces­sor ana­log input ADC0(PC0). Resistors R25, R26 and capac­i­tor C28 form a volt­age divider to pro­vide 2.5 volts DC to bias the pos­i­tive and neg­a­tive AC sig­nal from the CT, to a pos­i­tive range that the ADC can mea­sure.
The PP_READ cir­cuit is for detect­ing prox­im­i­ty pilot (plug present), and con­nects to the micro­proces­sor pin ADC2(PC2).

DIY Open EVSE 4.2X Single Relay connection diagram

Sample DIY Open EVSE 4.2X Single Relay con­nec­tion dia­gramBOM for ver­sion 4.2 sev­er­al small changes between 4.2 and 4.23 include the AC relay, cur­rent input, PP_READ, L1/L2 sense, 2nd DC relay out­put, and GFCI test.

Eagle CAD files for DIY Open EVSE 4.23

OSH-Park DIY Open EVSE 4.23 Project page.

45 Replies to “DIY Open EVSE V4.23”

  1. Hi,

    I’m about to start build your 4.23 board.
    can you please giv some pros and cons of your ver­sion vs the openEvse one

    Thank You

    1. Hi,
      The com­mer­cial ver­sion basi­cal­ly requires no sol­der­ing, while the DIY OpenEVSE requires lots of thru hole sol­der­ing.
      Commercial ver­sion is most­ly com­prised of SMD parts, while the DIY OpenEVSE uses all thru-hole sol­dered parts.

      Greg (Barbouri)

      1. Hi Greg, great project — did you con­sid­er sim­i­lar thing but with 1206 size SMD com­po­nents? Would be still easy to sol­der — the board would be lit­tle small­er I sup­pose. Do you know KiCad? I might make such PCB one day but would need some guid­ance by more advanced PCB design­er 🙂

  2. Apparently I did not explain myself clear­ly.
    There are dif­fer­ences in cir­cuit design, for exam­ple you use a 12 volt sup­pli­er and apply two con­ver­sion options to 5 volts.
    There are also dif­fer­ences in the pilot cir­cuit.
    Can you please explain the rea­son for the dif­fer­ence from the com­mer­cial ver­sion?

  3. Hi,

    I’m plan­ning on get­ting my first elec­tric car next year.
    I’m search­ing for a portable EVSE at rea­son­able cost, most­ly to charge the car away from home, from indus­tri­al or car­a­van sock­ets, if a charg­ing sta­tion is far. The com­mer­cial ones are shame­less­ly expen­sive. I used to tin­ker with elec­tron­ics and I have friends who are in the busi­ness, so I want to try build­ing one.

    Could your design be used with a 3‑phase, 240/400V, 32A source (Europe)?

    How can I get the MCU firmware?

    Very nice PCB, at least in the pho­tos.

    Thank you.

    1. Hi Szilárd,
      The cir­cuit board would need to be mod­i­fied to work with 3‑phase pow­er.
      One extra input in the volt­age mon­i­tor­ing sec­tion and upgrade to sup­port 400V.
      Firmware is avail­able from: GitHub Open-EVSE
      Greg (Barbouri)

  4. My Second 4.23 build so first of all Thank you Greg -)
    If my unit is L1 240v with one relay, do i have to imple­ment all relay and AC_Test cir­cuits?
    I may use this time AC_Relay, so can i skeep the 12V relay cir­cuit?

    1. Technically 240 VAC is L2. You should only need the relay and test cir­cuits for the mode you are using, as long as the unit can­not acci­den­tal­ly be used in an unsup­port­ed mode.
      I have always used a DPST relay and all required test cir­cuits to sup­port both modes of oper­a­tion.

      Greg (Barbouri)

    1. It is a 2 lay­er board of 3.34 x 2.55 inch­es (84.9 x 64.8 mm).
      Ground lay­er is on both top and bot­tom lay­ers, except for the high volt­age AC sec­tion.

      Greg (Barbouri)

  5. I recent­ly bought a Rolec brand­ed evse that seems to be pow­ered by a knock off openevse board. Its labelled as Rolec ver 1.2 from 2013 and is built into 2 halves to fit into a DIN style enclo­sure with 12 con­nec­tions on each side. But it has many of the same chips as the openevse 4.0 type hard­ware. I would like to see if the firmware is based on openevse and hope­ful­ly upgrade it to include new­er fea­tures like a dis­play and wifi. I found the github repo but is the offi­cial board not open source any more? It seems like devel­op­ment has slowed or stopped. How can i con­nect up to the ser­i­al inter­face and see if this board is run­ning a ver­sion of openevse and which one? I can send pics if that would help.

    1. Hi Robb,
      From a quick look at the Rolec board, it does­n’t look like it has the I2C dis­play or ser­i­al port bro­ken out on the board.
      You could reverse engi­neer the board and add the con­nec­tions along with mod­i­fy­ing the firmware, but it would most like­ly be eas­i­er to just pur­chase an “OpenEVSE v4 — Universal EVSE Controller” board to upgrade your exist­ing sys­tem.
      Another option is to build one of the open source DIY OpenEVSE V4.23 boards.

      Greg (Barbouri)

    1. Hi Yoav,
      Yes, that capac­i­tor should work. Or you could also go with a PLF1A470MDL4 47µF 10V Aluminum Polymer capac­i­tor, that has an even low­er ESR of 25 mOhm.
      I would rec­om­mend after design changes to the pow­er sup­ply, test­ing the cir­cuit before pop­u­lat­ing the rest of the board with a sim­u­lat­ed load.
      Power supply section load test.

      Greg (Barbouri)

    1. It is pos­si­ble that it could be due to changes in the 4.8 firmware, but then it would loose all back­ward com­pat­i­bil­i­ty with all the exist­ing sys­tems.
      I would try an old­er firmware to see if the prob­lem still exists, and if it does then its most like­ly a hard­ware prob­lem.

      Greg (Barbouri)

      1. I want­ed to update that ver­sion 4.8 works fine, the prob­lem was one of the resis­tors — I used the wrong val­ue …

        I think you should add a descrip­tion for AC relay wiring, I would be hap­py to send a pho­to as an exam­ple.

  6. Hello!
    How do I wire a Type 1 plug with a switch on the latch? I mea­sured the resis­tance, open latch = 480 ohm, closed latch = 150 ohm. The plug is not yet crimped, I just want­ed to make sure before crimp­ing. I was plan­ning crimp­ing one of the wires going from the latch switch to PE pin, and the oth­er wire ging from the switch to PP pin. Do I need to con­nect the PP pin to the PP slot on the EVSE too? Sorry fom my bro­ken eng­lish.

    1. Hi,
      The only thing I can think that would cause that type of fail­ure would be a fault on the pri­ma­ry side of the volt­age detec­tor IC‑5.
      I noticed that you are only using one volt­age detec­tor IC. I am assum­ing that you are using it in L1 charg­ing mode at 120 VAC?
      The resis­tor is rat­ed at 350 volts and 0.6 watts, so it should with­stand con­tin­u­ous use at 120 volts.

      Greg (Barbouri)

        1. Hi Yoav,
          That’s why the resis­tor failed. I am sur­prised it last­ed a year.
          The sense cir­cuit is designed for a split-phase 240 VAC sup­ply which sup­plies 120 VAC from each phase to ground and 240 VAC across phas­es.
          Each volt­age sense IC (MID400) only sees a poten­tial of 120 VAC to ground. With 220 VAC across a sin­gle IC the resis­tor was dis­si­pat­ing 1.7 watts.
          A good start­ing point for a replace­ment resis­tor would be a ROX1SJ56K 56K ohm 1 watt mount­ed above the cir­cuit board for addi­tion­al air­flow.

          Greg (Barbouri)

          1. Thanks Greg,
            I think to take the oppor­tu­ni­ty and add 1N4004 rec­ti­fi­er diode to the cir­cuit.
            Maybe sol­der­ing the side of the cath­ode to one side of the resis­tor and then to the board.

  7. Greg -
    I noticed in your diy openevse v4.2 schemat­ic that the dis­play / rtc board breaks out 4 push­but­tons (one select, three options) — but these do not appear in v4.23 schemat­ics.
    Is there any sup­port in the openevse v4 (or v5) firmware for dis­crete push­but­ton inputs to enable/disable the charg­er and select cur­rent lev­els, so that I could use exter­nal relay con­tact clo­sures to con­trol the charg­er?
    Thx -

    1. Hi Steve,
      The push­but­tons are part of the OpenEVSE Display V 4.2 board and are includ­ed in its schemat­ics.
      The firmware as far as I know only sup­ports the select but­ton. I have bro­ken out the addi­tion­al I/O pins for those who are inter­est­ed in mod­i­fy­ing the exist­ing firmware.
      The option­al pins can be either pro­grammed as inputs or out­puts, depend­ing on the need.
      https://oshpark.com/shared_projects/J6RW88kf
      Display42 EagleCAD files

      Greg (Barbouri)

  8. Hello,
    I want to make some space for AC / DC con­vert­er (RECOM RAC04-12SGB) on the PCB.
    Since I use only AC_RLY DC_RLY cir­cuits will not be pop­u­lat­ed.
    Another idea I have is to switch to ATMEGA328P-AU-ND. The prob­lem is that I do not have enough expe­ri­ence and I’m not sure which AVR crys­tal and SMD capac­i­tors are appro­pri­ate.

    If all goes well in the next ver­sion I will try and switch to MEA1D0515SC for the +/- 15V and 5V pow­er sup­ply

    Thanks
    Yoav

  9. So if I want­ed to use dif­fer­ent CT coil can I cal­i­brate it by chang­ing just R27 val­ue? I got some inex­pen­sive 100A/20mA coils from China as exact same ones used here are hard­ly avail­able in my area.

  10. I live in Europe and we have 240V every­where so L1/L2 charg­ing to be hon­est does­n’t exist and auto-detec­tion is waste of resources — can I get rid of MID400 com­plete­ly (so far I see it would be only need­ed for ground self test — maybe just 1 of them is enough?)

    I also don’t use AC coils based relays so I under­stand that AQH213 and it’s resis­tor are not need­ed for board to run just fine?

    1. Hi Emce,
      The MID400 volt­age detec­tors are part of the safe­ty cir­cuit, and also can be used for L1/L2 detec­tion.
      Their main safe­ty pur­pose is for stuck relay detec­tion. Both sen­sors are required for nor­mal 240V oper­a­tion.
      The AQH213 is option­al and was only added to sup­port the cur­rent firmware at the time.

      Greg (Barbouri)

      1. Hi Greg,

        I’m not 100% sure but I think openevse 5.x works with just one MID400. Do you have any plans for THT ver­sion of OpenEvse 5.x?

        Regards

        1. Hi Emce,
          If you do decide to go with the sin­gle MID400 cir­cuit, see the com­ments from “Yoav Levy” above and how to imple­ment.
          I do not cur­rent­ly have any plans for future ver­sions of the DIY OpenEVSE board.

          Greg (Barbouri)

    1. Hi Emce,
      You should be able to use 3.6K ohm resis­tors which are E24 Standard Resistor Series 5% type.
      If those are not avail­able you could try a 3.3K ohm 10% E12 series.
      These are the min­i­mum load resis­tors for the Murata 1 watt MEV1D1215SC iso­lat­ed pow­er sup­ply.

      Greg (Barbouri)

  11. Is some­thing wrong with my board because I’m always get­ting diode check error? Even when con­nect­ed to the car or EVSE sim­u­la­tor.

    1. Hi Emce,
      The first thing I would check is the ground con­nec­tions inside the EVSE unit.
      Does it start charg­ing with the “Diode Check” set­ting dis­abled?

      Greg (Barbouri)

  12. Also I did con­nect every­thing as on your pre­vi­ous post pic­ture (about his­to­ry of evse ver­sions). Ground seems to be ok as ground test does­n’t com­plain at all and it was when ground was not con­nect­ed.

  13. Hi Barbouri. I can’t under­stand how do you mea­sure Input AC volt­age? As I under­stand your soft­ware cal­cu­lates Watts and Wh. I can see the cur­rent trans­former, but any­thing for the volt­age. As I under­stand from the MID400 doc­u­men­ta­tion, it can only detect AC pres­ence, but not ampli­tude.

    1. Hi Roman,
      The sys­tem guess­es at the volt­age depend­ing on whether it is charg­ing on L1 or L2 and uses a volt­age con­stant set in firmware.
      It would be pos­si­ble to recom­pile the firmware for a dif­fer­ent volt­age con­stant.
      There have been sev­er­al users of the com­mer­cial ver­sion of the openevse who have mod­i­fied their sys­tems to read AC volt­age.
      Here is a link to one of the bet­ter doc­u­ment­ed mod­i­fi­ca­tions to a com­mer­cial V4 board:
      V4 volt­age input mod­i­fi­ca­tion

      A3 is brought out to a pin next to the dis­play con­nec­tor on the DIY 4.23 and lat­er boards.

      Greg (Barbouri)

Leave a Reply

Your email address will not be published. Required fields are marked *