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 system.

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 standard

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 layout

There are 6 main sec­tions of the circuit:

  • 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 supply.

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

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 current.
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 schematic

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 (R3R4).
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 package.

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

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 control.

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 schematic

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 charging.
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 schematic

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 schematic

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 schematic
DIY Open EVSE 4.23 AC SSR Output sec­tion schematic

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 recommendation.

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

Auxiliary cir­cuits include a cur­rent sen­sor cir­cuit and Proximity pilot (PP) circuit.
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 measure.
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.

73 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 soldering.
      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 designer 🙂

  2. Apparently I did not explain myself clearly.
    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 circuit.
    Can you please explain the rea­son for the dif­fer­ence from the com­mer­cial version?

  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 photos.

    Thank you.

    1. Hi Szilárd,
      The cir­cuit board would need to be mod­i­fied to work with 3‑phase power.
      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 circuits?
    I may use this time AC_Relay, so can i skeep the 12V relay circuit?

    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 operation.

      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 section.

      Greg (Barbouri)

  5. Apologies if I’ve missed some­thing but is there a way to man­u­al­ly set the charg­ing current?

  6. 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 system.
      Another option is to build one of the open source DIY OpenEVSE V4.23 boards.

      Greg (Barbouri)

  7. Hi,
    Can a Polymer Capacitors (KEMET A758EK336M1EAAE040) replace the Vishay tan­ta­lum for c16?

    Thank you!

    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 systems.
      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 problem.

      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 value …

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

  8. 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 english.

    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 phases.
          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 airflow.

          Greg (Barbouri)

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

  9. 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 schematics.
    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 charger?
    Thx -

    1. Hi Steve,
      The push­but­tons are part of the OpenEVSE Display V 4.2 board and are includ­ed in its schematics.
      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.
      Display42 EagleCAD files

      Greg (Barbouri)

  10. 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 populated.
    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 appropriate.

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


  11. 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.

  12. 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 detection.
      Their main safe­ty pur­pose is for stuck relay detec­tion. Both sen­sors are required for nor­mal 240V operation.
      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?


        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 implement.
          I do not cur­rent­ly have any plans for future ver­sions of the DIY OpenEVSE board.

          Greg (Barbouri)

  13. Can I replace R3 and R4 with some­thing else? BOM file says they’re 2.8k — eagle file 3.74k — both hard to get here as THT.

    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 supply.

      Greg (Barbouri)

  14. 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 simulator.

    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 disabled?

      Greg (Barbouri)

      1. So it charged with diode check set­ting dis­abled but recent­ly I got Tesla to charge and it did­n’t. So I removed board from my charg­er and here’s what I see. R1 i 999Ohm (1%) . With 12V con­nect­ed on DG419 I see: PIN1 12V, PIN2 ‑12.2 PIN3 0, PIN4 15.2V PIN5 5V, PIN6 5V, PIN7 ‑15.2V, PIN8 12.1V. When I con­nect car on PIN1 I see 0.7V but I would expect to see some neg­a­tive val­ues (my orig­i­nal openevse shows ‑2V). During this time I see 0.26V on PIN6 and 1kHz sig­nal so PWM works as expect­ed. I have also checked pilot mon­i­tor resis­tors and R7 is 199k, R6 99.4k, R5 55.2k — any idea what to check next?

  15. 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 connected.

  16. 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 amplitude.

    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 constant.
      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 voltage.
      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 modification

      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)

  17. Hello,

    Very nice work, but I’ve got a question. 

    You are read­ing the “Pilot Voltage” with an ADC input, but it is fluc­tu­at­ing all the time (just if the EV is con­nect­ed) because you’ve got the PWM sig­nal. So, how can you dis­crim­i­nate the sta­tus of the car?

    Thank you!

    1. Hi Marcin,
      The P6KE16CA is a 13.6 volt 600 watt bidi­rec­tion­al TVS Diode.
      It can be replaced with any equiv­a­lent or high­er wattage rat­ed TVS diode such as the 1.5KE16A-E3.
      The P6KE16CA is cur­rent­ly in stock at

      Greg (Barbouri)

  18. Hi Greg,
    This is a very nice­ly explained project.
    I want­ed to know whether you’ve expe­ri­enced a slow pro­cess­ing time with the atmega328 controller?
    For me the relay actu­a­tion, LCD state changes etc are tak­ing more time than usu­al (approx 5s) after the code execution.
    I’ve uploaded the default firmware from

    Thanks and Regards

    1. Hi Vasu,
      Relay and dis­play state changes hap­pen almost instant­ly with the ATmega328P.
      I have test­ed using ver­sion 4.6.0 of the firmware, but haven’t test­ed using the new­er versions.

      Greg (Barbouri)

      1. Thanks Greg for a prompt reply!

        I just tried with the old­er ver­sion — 4.6.0 and the prob­lem still exists.
        I’m using the USBasp to flash, can this also be a hard­ware issue?
        Is there a trou­bleshoot­ing method I should follow ?

        1. Hi Vasu,
          Very well could be a hard­ware issue.
          Since every­thing is work­ing, but slow, a clock / fre­quen­cy issue. Try a new ATmega328P.
          Possible improp­er fuse set­tings for the ATmega328P.
          lfuse:0xFF hfuse:0xDF efuse:0x05

          Greg (Barbouri)

  19. Hi Greg,
    I’ve used your PCB design for level2 charg­er and I’ve test­ed the PCB for gen­er­al safe­ty checks and con­trol loop. So far, every­thing is work­ing as expect­ed. Now I’m plan­ning to test the charg­er on an EV with 32A.
    Is there some­thing else I should be care­ful about, any resis­tor net­work which is cru­cial and can burnout?

    1. Hi Vasu,
      I usu­al­ly use some test resis­tors and diode on the pilot line to make sure it goes into the right modes.
      My only oth­er sug­ges­tion, would be to start out on a low­er set­ting, such as 12 amps for a few min­utes, then dis­con­nect every­thing and check the tem­per­a­ture on all the high cur­rent con­nec­tions before ramp­ing up the power.

      Greg (Barbouri)

  20. Hello Greg,
    Today I test­ed the charg­er on an elec­tric vehi­cle. I had set the cur­rent at 6A for safe charging.
    For ini­tial 2–3 sec­onds the car sta­tus changed to charg­ing, then I got an error on LCD stat­ing ‘ser­vice required- over­cur­rent 102A’ and the relay tripped. I was sur­prised to see a bizarre cur­rent of 102A as the Max load was only 7.5KW at 220–240V.
    Any sug­ges­tions for trou­bleshoot­ing this?

    1. Hi Vasu,
      Check the min­i­mum charge cur­rent for the vehi­cle you are charg­ing. Some have a 10–16 amp min­i­mum charge level.
      Next, I would check the cur­rent sen­sor on the DIY Open EVSE. There should only be one wire pass­ing thru the sensor.

      Greg (Barbouri)

  21. Yes there’s only one ‘Main wire’ pass­ing through the CT coil.
    The bizarre cur­rent sens­ing could also be because of incor­rect resis­tor val­ues of A_CT on the PCB schemat­ic. In the schemat­ic R27 is 28ohms, in my PCB its prob­a­bly a 10K ohm resis­tor val­ue which looks like a fab­ri­ca­tion fault.
    Could be a log­i­cal culprit?

    1. Hi Vasu,
      R27 is the cur­rent trans­former bur­den load resis­tor. The DIY Open EVSE is designed to use a cur­rent out­put Current Transformer sensor.
      The bur­den resis­tor con­verts the CT into a pro­por­tion­al volt­age that the micro­proces­sor ADC can measure.
      A 10K resis­tor in R27 could allow hun­dreds of volts at the micro­proces­sor ADC pin.
      Link to more infor­ma­tion on CT’s and bur­den resis­tors. Open Energy Monitor CT’s

      Greg (Barbouri)

  22. Hi Greg,
    Thank you for your reply, the direc­tion sure­ly helped my charg­er. The issue was in the bur­den resis­tor R27 have used a 30ohm resistor
    I per­formed anoth­er test for one hour on Mahindra E‑Verito which has a rat­ed charg­ing capac­i­ty of 2.2KWh.
    The EVSE after one hour showed 3.2KW at 14A even after set­ting the cur­rent at 11A.
    Is there a cal­i­bra­tion set­ting which I can fur­ther tweak to min­i­mize the dif­fer­ence in out­put reading?
    Have also read some google posts which says bur­den resis­tor should be 22ohms, is this logical?

  23. Hello Greg, hope you’re well!
    My design looks com­plete. Although, I’m strug­gling a bit with under­stand­ing the LCD code in the firmware. Do I strict­ly need to use Adafruit RGB 16x2 LCD that you’ve men­tioned in the BOM. As it was unavail­able, I tried using a reg­u­lar 16X2 LCD with Blue Backlight with the same source-code and it did­n’t work for me.


    1. Hi Vasu,
      The stan­dard firmware is set­up to use a 16x2 RGB LCD dis­play with a HD44780 con­troller. The inter­face uses I2C com­mu­ni­ca­tions from the main board and con­verts the I2C to the LCD HD44780 par­al­lel inter­face on the dis­play board.
      If you are not get­ting any char­ac­ters on the dis­play even with­out the back­light check that the SCL and the SDA sig­nals are not reversed.

      Greg (Barbouri)

  24. Hii Greg,

    Hope you are doing well. This is an insight­ful open source PCB design for AC charg­ers .Have you also applied your own design for a DC charg­er ? It will be help­ful for me if you can share some insight on that.

    1. Hi Akash,
      I have only worked with AC chargers.
      I know the work­ing the­o­ry of DC charg­ers, but haven’t had the need to build one for myself.

      Greg (Barbouri)

  25. Hii Greg,

    Hope you are doing well.I was plan­ning to use an AC con­tac­tor whose coil volt­age is 110 and 230VAC. Which RLY terminal(DCRLY1/2 or ACRLY1) should i use in this exist­ing circuit

    1. Hi Akash,
      You should use the AC_RLY ter­mi­nal for AC coils.
      If you are using a 230 VAC coil I would also rec­om­mend Panasonic part num­ber AQH3213 for the sol­id state relay IC.
      Also rec­om­mend­ed to install a surge absorp­tion cir­cuit (Snubber cir­cuit) at the AC relay coil, based on the relay man­u­fac­tures recommendation.

      Greg (Barbouri)

  26. Hii Greg

    Thanks for the prompt reply.
    My AC con­tac­tor is not work­ing .Now I am plan­ning to use a Fotek SSR( Solid State Relay) 40A Rated. But i have read online that SSR have heat­ing issues at high switch­ing cycle and load for which heat sink is required . In my case , SSR will work at 32A (I‑Max) for around 12 hours a day . Will this be suit­able for my case?

  27. Hi Greg,

    I am see­ing in you are using an iso­lat­ed +-15V and then con­vert it it to +-12V via 78L12 reg­u­la­tors. The men­tioned parts are not easy to find in our Contry, thats why I have to find some replacements.
    I have found a +-12V ACDC sup­ply: RAC10-12DK/277 (
    Is there any draw­back to use this one direct­ly for the con­trol sig­nals? Why is this 15V -> 12V con­ver­sa­tion needed?

    Thank you!

    1. Hi Gergo,
      The DG419 (IC2) needs a +/- 15 volt sup­ply to sup­port the +/- 12 volt pilot signal.
      Instead of hav­ing a sep­a­rate +/- 12 volt sup­ply the pilot sup­ply volt­age is reg­u­lat­ed down from the exist­ing +/- 15 V supply.
      The RAC10-12DK/277 sup­ply will not work in this cir­cuit, with­out an addi­tion­al +/- 15 volt supply.

      There are sev­er­al sim­pler EVSE designs that do not require a +/- 15 volt module.

      Greg (Barbouri)

Leave a Reply

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