Getting Started

This chapter is intended to help you get started as easily as possible with EV charging together with the Charge Control C and the EVerest charging stack. For this purpose, a basic AC PWM charger is set up as an example and explained step by step.

Setting Up the Hardware

Hardware Components

The following hardware components are required to set up the basic AC PWM charger:

  • Charge Control C

  • 12 V DC Power Supply

  • Power Contactor

  • IEC 62196 Type 2 three-phase EV charging socket outlet

  • Ethernet cable for SSH connection or USB to serial adapter for serial connection

  • IEC 62196 Type 2 EVSE Test Adapter (e.g. Metrel or Benning) to simulate the EV

  • Wiring material

Hardware Overview

Warning

Before you start setting up the hardware, please read the Safety Notes.

The following figure shows the basic setup of the AC PWM charger with the Charge Control C:

_images/ac_pwm_charger_ccc_setup.svg

Figure: Basic Setup of the AC PWM Charger with the Charge Control C

Note

The pin assignment of the Charge Control C can be found in the Board Connections section.

Note

Before you start setting up the hardware, please check whether the HW components used are also listed in Hardware Components section.

First Startup

Boot Process

Here are some key points about the boot process of the Charge Control C:

  • The file system basically consists of three ext4 partitions. Two partitions are used as slots for the RAUC update process. The third partition is not touched by the RAUC update process and is usually used for storing update bundles, logs, etc. For more information about the firmware in general, firmware updates and the partition layout, see the Firmware chapter.

  • After connecting the Charge Control C to the power supply, the U-Boot bootloader starts the currently active slot managed by RAUC.

  • The LED status indicators on the Charge Control C provide information about the current status of the boot process.

  • EVerest is automatically started with the default configuration of chargebyte after the boot process is completed. The initial configuration is explained in the Initial Configuration section.

Understanding LED Status Indicators

Now you can plug in the Charge Control C to the power supply. The LED status indicators on the Charge Control C provide information about the current status of the boot process. The following table shows the meaning of the LED status indicators:

Table: Charge Control C LED Status Indicators

State

LED indication

Behavior

Bootloader active

LED1 (green)

off

LED2 (yellow)

off

LED3 (red)

permanently on for approx. 3 sec.

Boot process running

LED1 (green)

blinking for approx. 15 sec.

LED2 (yellow)

off

LED3 (red)

blinking

Operating system running

LED1 (green)

permanently on

LED2 (yellow)

off

LED3 (red)

blinking

Connecting via SSH or Serial Interface

For debugging, there are two ways to connect the developer computer to the Charge controller: via SSH or via serial interface. The following sections explain how to connect to the Charge controller using PuTTY. You can also use other terminal programs (like e.g. MobaXTerm) to connect to the Charge controller.

SSH Connection with PuTTY

Here are the steps to connect to the Charge controller via SSH using PuTTY:

  1. Install PuTTY on your computer. You can download PuTTY from the following link: PuTTY Download.

  2. Connect the Charge controller over Ethernet to your computer.

  3. Start PuTTY and enter the IPv4 fallback address “169.254.12.53” of the Charge controller in the “Host Name (or IP address)” field (See figure PuTTY SSH Configuration).

  4. Click on “Save” to save the configuration and then click on “Open” to start the connection.

  5. A PuTTY Security Alert window will appear. Click on “Accept” to continue.

  6. Enter the username “root” and the password “zebematado” to log in to the Charge controller.

Note

The username can also be stored under “Connection -> Data -> Auto-login username” in the PuTTY configuration.

Note

It is also possible to install an SSH key on the Charge controller to log in without a password. Please look online for instructions on how to do this on a Linux system.

_images/putty_config_ssh_fallback_ip.png

Figure: PuTTY SSH Configuration

Serial Connection with PuTTY

Here are the steps to connect to the Charge controller via serial interface using PuTTY:

  1. Install PuTTY on your computer. You can download PuTTY from the following link: PuTTY Download.

  2. Connect the Charge controller to your computer via USB to serial adapter.

  3. Start PuTTY and configure the COM port of the USB to serial adapter (e.g. “COM1”) in the “Serial line” field. Note: You can find the COM port of the USB to serial adapter in the Windows Device Manager under “Ports (COM & LPT)”.

  4. Switch to Connection -> Serial configuration and set the “Speed” to 115200, “Data bits” to 8, “Stop bits” to 1, “Parity” to “None” and “Flow control” to “None” (See figure PuTTY Serial Configuration).

  5. Switch back to the “Session” and click on “Save” to save the configuration (See figure PuTTY Save Serial Connection).

  6. Click on “Open” to start the connection.

  7. Now a black window will appear. Press enter to get the login prompt.

  8. Enter the username “root” and the password “zebematado” to log in to the Charge controller.

_images/putty_config_serial_1.png

Figure: PuTTY Serial Configuration

_images/putty_config_serial_2.png

Figure: PuTTY Save Serial Connection

Firmware Update

Before you start the initial configuration of the Charge Control C, it is recommended to update the firmware to the latest version. The firmware update process is explained in the Firmware Upgrade section. If necessary, please update the firmware to the latest version.

Note

How to download the firmware image is described in the section Download Firmware Images.

Note

Before installation of a chargebyte EVerest image, please check whether you are installing a developer or release image and prepare the Charge Control C accordingly. How to do this is explained in the Release Images vs Development Images section.

Note

In case you are updating from a chargebyte proprietary image to a chargebyte EVerest image, please read the Updating from chargebyte’s proprietary charging stack to EVerest-based charging stack section carefully.

Initial Configuration

Now you are connected to the Charge Control C and we can take a deeper look at the initial configuration.

The configuration files of the EVerest charging stack are stored in the directory “/etc/everest”. EVerest uses the YAML format for the configuration files. EVerest runs as a systemd service that by default uses “/etc/everest/config.yaml” as a configuration setup. If you take a look at the content of the configuration file, you will see that it is only a reference to the “bsp-only.yaml” file.

Note

If you create an own configuration file, you can also store it in the “/etc/everest” directory and create a symbolic link to it like “ln -sf /etc/everest/my-config.yaml /etc/everest/config.yaml”.

root@tarragon:/etc/everest# ls -l /etc/everest/
total 28
-rw-r--r-- 1 root root 1134 Jun 20 07:45 bsp-only.yaml
lrwxrwxrwx 1 root root   14 Jun 25 19:26 config.yaml ->  my-config.yaml

Let’s take a look at the content of the bsp-only.yaml configuration file. This file is already prepared for the basic AC PWM charger setup.

Just type “less /etc/everest/bsp-only.conf” to see the content of the configuration file:

 1#
 2# This example configuration can be used as bare minimum starting point:
 3# no support for plug lock, no additional peripherals (RFID, meter...)
 4#
 5active_modules:
 6  api:
 7    module: API
 8    connections:
 9      evse_manager:
10        - module_id: connector
11          implementation_id: evse
12  tarragon_bsp:
13    module: CbTarragonDriver
14    config_module:
15      contactor_1_feedback_type: none
16      relay_2_name: none
17  tarragon_dig_in_ref:
18    module: CbTarragonDIs
19  connector:
20    module: EvseManager
21    config_module:
22      connector_id: 1
23      has_ventilation: false
24      disable_authentication: true
25    connections:
26      bsp:
27        - module_id: tarragon_bsp
28          implementation_id: evse_board_support
29  energy_manager:
30    module: EnergyManager
31    connections:
32      energy_trunk:
33        - module_id: grid_connection_point
34          implementation_id: energy_grid
35  grid_connection_point:
36    module: EnergyNode
37    config_module:
38      fuse_limit_A: 16
39      phase_count: 3
40    connections:
41      energy_consumer:
42        - module_id: connector
43          implementation_id: energy_grid

In general, the EVerest charging stack consists of different modules, each of which fulfills a specific task. An EVerest module provides and requests interfaces. The configuration file shows which EVerest modules are activated, how they are configured and how they are connected to each other over the interfaces. The following figure illustrates how the EVerest modules are connected to each other:

_images/admin_panel_bsp_only.png

Figure: EVerest admin panel view of the bsp-only.yaml configuration

However, not all configuration parameters of the modules are shown here. Only the configuration parameters that do not match the default configuration of the respective module need to be specified here. Depending on the installed hardware components, the configuration file may need to be adapted. The hardware related tasks are mainly handled by the CbTarragonDriver module. The configuration of the CbTarragonDriver module can be found in “/usr/libexec/everest/modules/CbTarragonDriver” directory.

Each module has a specific configuration file. This file is called “manifest.yaml” and is stored in the main directory of the module. Here you can also see all other configuration parameters of the respective module. Now please type “less /usr/libexec/everest/modules/CbTarragonDriver/manifest.yaml” to see the content of the configuration file and check whether the configuration fits to your hardware setup.

If you want to change a configuration parameter of a module, which is not part of your EVerest YAML configuration file, just copy the specific configuration key from the “manifest.yaml” file of the module to the module specific “config_module” space in your EVerest configuration and adjust the value. Please note if you change it directly in the “manifest.yaml” file of a module, the changes will be get lost after a software update.

Here is an excerpt of an EVerest configuration to change the parameter “connector_type” to “IEC62196Type2Cable” of the CbTarragonDriver module.

tarragon_bsp:
  module: CbTarragonDriver
  config_module:
    contactor_1_feedback_type: none
    relay_2_name: none
    connector_type: IEC62196Type2Cable

After adjusting the configuration file, you have to restart the EVerest charging stack to apply the changes. Just type “systemctl restart everest” to restart the EVerest charging stack.

Note

You can also use the EVerest admin panel to adjust the EVerest configuration in a GUI. This tool must currently be installed manually on your developer computer, because the resources on the board are limited.

Note

If you have made a mistake in the configuration file, the EVerest charging stack will not start. Therefore, it is recommended to back up the original configuration file before making changes.

Starting and Monitoring the Charging Process

Before we start the first charging session, we shall open the EVerest log to monitor the charging process. The EVerest log is stored in the systemd journal and can be accessed via the journalctl command. The journalctl command provides a lot of options to filter the log messages. Now just type “journalctl -f -u everest -n 50” to see the last 50 log messages of the EVerest charging stack and to follow the charging process in real time.

The EVerest log should look like this:

root@tarragon:~# journalctl -f -u everest -n 50
2024-06-19T19:26:08.986317+0200 tarragon systemd[1]: Started EVerest.
2024-06-19T19:26:09.079641+0200 tarragon manager[11978]: [INFO] manager          ::   ________      __                _
2024-06-19T19:26:09.086179+0200 tarragon manager[11978]: [INFO] manager          ::  |  ____\ \    / /               | |
2024-06-19T19:26:09.086179+0200 tarragon manager[11978]: [INFO] manager          ::  | |__   \ \  / /__ _ __ ___  ___| |_
2024-06-19T19:26:09.086179+0200 tarragon manager[11978]: [INFO] manager          ::  |  __|   \ \/ / _ \ \'__/ _ \/ __| __|
2024-06-19T19:26:09.086179+0200 tarragon manager[11978]: [INFO] manager          ::  | |____   \  /  __/ | |  __/\__ \ |_
2024-06-19T19:26:09.086179+0200 tarragon manager[11978]: [INFO] manager          ::  |______|   \/ \___|_|  \___||___/\__|
2024-06-19T19:26:09.086179+0200 tarragon manager[11978]: [INFO] manager          ::
2024-06-19T19:26:09.086179+0200 tarragon manager[11978]: [INFO] manager          :: Using MQTT broker localhost:1883
2024-06-19T19:26:09.188450+0200 tarragon manager[11979]: [INFO] everest_ctrl     :: Launching controller service on port 8849
2024-06-19T19:26:09.254120+0200 tarragon manager[11978]: [INFO] manager          :: Loading config file at: /etc/everest/bsp-only.yaml
2024-06-19T19:26:09.818473+0200 tarragon manager[11978]: [INFO] manager          :: Config loading completed in 723ms
2024-06-19T19:26:14.176961+0200 tarragon manager[11997]: [INFO] energy_manager:  :: Module energy_manager initialized [3968ms]
2024-06-19T19:26:14.317279+0200 tarragon manager[12000]: [INFO] tarragon_dig_in  :: chargebyte\'s Tarragon driver for configuration of digital input reference PWM (version: 0.10.0)
2024-06-19T19:26:14.373497+0200 tarragon manager[11998]: [INFO] grid_connection  :: Module grid_connection_point initialized [4076ms]
2024-06-19T19:26:14.373497+0200 tarragon manager[12000]: [INFO] tarragon_dig_in  :: Enabled digital input reference PWM 2084000.pwm, channel 0 with period 40000 and duty cycle 20000
2024-06-19T19:26:14.373497+0200 tarragon manager[12000]: [INFO] tarragon_dig_in  :: Module tarragon_dig_in_ref initialized [4066ms]
2024-06-19T19:26:14.473667+0200 tarragon manager[11995]: [INFO] api:API          :: Module api initialized [4343ms]
2024-06-19T19:26:14.548188+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: Control Pilot Observation Thread started
2024-06-19T19:26:14.567183+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: Primary contactor feedback type: \'none\'
2024-06-19T19:26:14.568825+0200 tarragon manager[11999]: [WARN] tarragon_bsp:Cb CbTarragonContactorControl::CbTarragonContactorControl(const string&, const string&, const string&, const string&, const string&, const string&, const string&, const string&) :: The primary contactor has the feedback pin not connected. This is not recommended.
2024-06-19T19:26:14.570871+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: chargebyte\'s Hardware EVerest Modules (version: 0.10.0)
2024-06-19T19:26:14.573109+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: Module tarragon_bsp initialized [4248ms]
2024-06-19T19:26:14.576991+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: Contactor Handling Thread started
2024-06-19T19:26:14.650925+0200 tarragon manager[11996]: [INFO] connector:EvseM  :: Module connector initialized [4429ms]
2024-06-19T19:26:14.710204+0200 tarragon manager[11978]: [INFO] manager          :: 🚙🚙🚙 All modules are initialized. EVerest up and running [5638ms] 🚙🚙🚙
2024-06-19T19:26:14.881674+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: Read PP ampacity value: None (U_PP: 3297 mV)
2024-06-19T19:26:14.889409+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: Proximity Pilot Observation Thread started
2024-06-19T19:26:14.957703+0200 tarragon manager[11996]: [INFO] connector:EvseM  :: Max AC hardware capabilities: 32A/3ph
2024-06-19T19:26:15.164664+0200 tarragon manager[11996]: [INFO] connector:EvseM  :: 🌀🌀🌀 Ready to start charging 🌀🌀🌀
2024-06-19T19:26:15.322579+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: handle_enable: Setting new duty cycle of 100.00%
2024-06-19T19:26:15.333875+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: CP state change from PowerOn to A, U_CP+: 11947 mV, U_CP-: 7 mV
2024-06-19T19:26:15.459775+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: handle_pwm_off: Setting new duty cycle of 100.00%
2024-06-19T19:26:15.632804+0200 tarragon manager[11999]: [INFO] tarragon_bsp:Cb  :: handle_pwm_off: Setting new duty cycle of 100.00%

Before plugging in the IEC 62196 Type 2 EVSE Test Adapter, please make sure that the CP state of the EVSE Test Adapter is set to “B” and the current limit (adjustable via the PP state) is configured to 16A. Now you are ready to start the first charging session with EVerest and you can plug in the IEC 62196 Type 2 EVSE Test Adapter.

After plugging in the IEC 62196 Type 2 EVSE Test Adapter, a CP state change from “A” to “B” should be visible in the EVerest log. By default, the authentication is disabled in the bsp-only.yaml configuration. Therefore, the duty cycle should directly switch from 100% to ~26.7%. The duty cycle change indicates 16A to the EV and the EVSE is now able to supply power to the EV.

The last EVerest log messages should look like this:

2024-06-20T07:45:49.386995+0200 tarragon manager[18942]: [INFO] tarragon_bsp:Cb  :: CP state change from A to B, U_CP+: 9637 mV, U_CP-: -2 mV
Read PP ampacity value: A_16 (U_PP: 3297 mV)
2024-06-20T07:45:49.781308+0200 tarragon manager[18942]: [INFO] tarragon_bsp:Cb  :: handle_pwm_on: Setting new duty cycle of 26.67%

Now the charging process can be started by a CP state change from “B” to “C” via the IEC 62196 Type 2 EVSE Test Adapter.

Note

CP state “D” (EVSE with ventilation) is currently not supported by the CbTarragonDriver module.

After switching the CP state from “B” to “C”, the EVSE contactor should close and the charging process should start. The last EVerest log messages should look like this:

2024-06-21T07:45:50.605759+0200 tarragon manager[5733]: [INFO] tarragon_bsp:Cb  :: CP state change from B to C, U_CP+: 5996 mV, U_CP-: -11817 mV
2024-06-21T07:45:50.766409+0200 tarragon manager[5733]: [INFO] tarragon_bsp:Cb  :: Closing contactor...
2024-06-21T07:45:50.766409+0200 tarragon manager[5733]: [INFO] tarragon_bsp:Cb  :: Contactor state: CLOSED

The charging process can be stopped by a CP state change from “C” to “B” via the IEC 62196 Type 2.

The last EVerest log messages should look like this:

2024-06-21T07:48:04.406373+0200 tarragon manager[5733]: [INFO] tarragon_bsp:Cb  :: CP state change from C to B, U_CP+: 8842 mV, U_CP-: -11826 mV
2024-06-21T07:48:04.641265+0200 tarragon manager[5733]: [INFO] tarragon_bsp:Cb  :: Opening contactor...
2024-06-21T07:48:04.641265+0200 tarragon manager[5733]: [INFO] tarragon_bsp:Cb  :: Contactor state: OPEN

Now the charging process is stopped and the IEC 62196 Type 2 EVSE Test Adapter can be unplugged from the socket outlet. Alternatively, the charging process can be started again by a CP state change from “B” to “C”.

The last EVerest log messages after removing the plug should look like this:

2024-06-21T07:52:51.287007+0200 tarragon manager[5733]: [INFO] tarragon_bsp:Cb  :: CP state change from B to A, U_CP+: 11927 mV, U_CP-: -11970 mV
2024-06-21T07:52:51.368428+0200 tarragon manager[5733]: [INFO] tarragon_bsp:Cb  :: handle_pwm_off: Setting new duty cycle of 100.00%

Congratulations! You have successfully completed your first charging session with the EVerest charging stack and the Charge Control C. Now you are prepared to start your own charging project and adjust your setup to your needs. The following chapters will help you understand the EVerest charging stack and Charge Control C in more detail and gain deeper insight into the configuration.