IoT India, Openevse

IoT: OCPP compliant EVSE


OpenEVSE provides energy monitoring architecture for Electric Vehicle Charging Stations as well as energy monitoring devices. It is a DIY kit for people wanting a charging station at home. It is one of the good ones out there, see the comparison. This device can have a Huzzah module installed to make it IP enabled.


The goal of the Open Charge Point Protocol (OCPP) is to offer a uniform solution for the method of communication between charge point and the central system. With this protocol, it is possible to connect any central system with any charge point, regardless of the vendor. OCPP 1.6 is the most recent version released by OCA that incorporates several improvements suggested by OCA members who are working with OCPP in the field. The 1.6 version is supported by a compliance testing tool for self-testing and by a Certification Program. OCA provides OCPP. The Open Charge Alliance (OCA) is a global consortium of public and private electric vehicle (EV) infrastructure leaders that have come together to promote open standards.

Wifi Module

Huzzah module that is based on ESP8266 is used to IP enable OpenEVSE but does not have the processing power to act as an edge computing device. So you need to choose a more powerful wifi-enabled computing module that is capable of establishing OCPP protocol with a compliant server. We used Raspberry Pi A+ for our testing. Raspberry serial ports work at 0V-3.3V while OpenEVSE supports serial TTL devices at 5V on the six-pin header.   You can speak RAPI on this serial port to control or to get information from openEVSE. To connect the Raspberry Pi and OpenEVSE controller, you need a level shifter. We used a bi-directional level shifter to combine the two.

Raspberry Pi connected to OpenEVSE

Figure 1: Raspberry Pi connected to OpenEVSE and powered by it


You can issue serial commands from Pi to OpenEVSE after connecting them via the serial port. Once you have some code that speaks RAPI on the south end, all you need next is the OCPP protocol on the north end. We used python to get this whole thing working. For OCPP 1.6 we went with JSON over WebSocket. OCPP has primarily driven by the charging end. We modelled it so that the server end controls the charging process with the help of a mobile application. The mobile app connects to the OpenEVSE to authenticate a user and also to the server to get reports.

Headless Device

In addition to OCPP implementation, the Raspberry Pi also required the headless application to be able to switch from Ad-hoc mode to infrastructure mode. For more information do get in touch.