diff --git a/README.rst b/README.rst index 7eb38f8..58b282c 100644 --- a/README.rst +++ b/README.rst @@ -1,72 +1,81 @@ Charge Control C Product Documentation ====================================== -This is the product documentation project for Charge Control C, a product of chargebyte GmbH. -This documentation is intended for users, developers, and administrators of Charge Control C. -This documentation is hosted on Read the Docs and can be accessed at -https://chargebyte-docs.readthedocs.io/en/latest/. +This repository contains the source files for the Charge Control C user documentation. +The documentation is written in reStructuredText and built with Sphinx. +The published documentation is available on Read the Docs: +https://chargebyte-docs.readthedocs.io/projects/everest-charge-control-c/en/ -Contents --------- -- Charge Control C User Guide +Repository Structure +-------------------- +The main documentation sources are located in: -Repo Initialization -------------------- +- `docs/source` -This repository is using git submodules to share documents between the user guides. -After cloning of the project please execute the following commands: +Shared content is maintained in the git submodule: -git checkout everest/charge_control_c +- `includes` -git submodule update --init --force --remote + +Repository Initialization +------------------------- + +This repository uses git submodules. After cloning, initialize and update them with: + +.. code-block:: bash + + git submodule update --init --recursive Building the Documentation Locally ---------------------------------- -To build the documentation locally, you need to have Python and pip installed on your system. -You can install the required dependencies by running the following command: +Install the Python dependencies first: -pip install -r docs/requirements.txt +.. code-block:: bash -After installing the dependencies, you can build the documentation by running the following command: + pip install -r docs/requirements.txt -sphinx-build -a docs/source {output_directory} +Then build the HTML documentation from the `docs` directory: -The output directory is the directory where the generated HTML files will be stored. +.. code-block:: bash + + cd docs + sphinx-build -b html source _build/html + +The generated HTML files are written to `docs/_build/html`. Contributing ------------ If you would like to contribute to the documentation, please fork the repository and create a pull -request with your changes. Please make sure to follow the guidelines for contributing to the -documentation: +request with your changes. Please keep changes aligned with the existing repository structure and writing style: -- The branch name for the pull request should be `everest/ccc_{your_branch_name}`. -- Maximum line length should be 120 characters (Preferably 100 characters). -- Images should be stored in the `docs/source/_static/images` directory -- CSS files should be stored in the `docs/source/_static/css` directory -- Source and config files should be stored in the `docs/source/_static/files` directory -- A documentation file should be written in reStructuredText format -- A documentation file should start with referenceable label of the file name (e.g. ".. _hardware.rst:") -- Sections and chapters should be separated by one blank line after the title and two blank lines before the title -- Sections with a chapter title before, need to have only one blank line before the title -- First letters of section and chapter titles should be capitalized (e.g. "Charge Control C User Guide") +- Documentation sources belong in `docs/source`. +- Images belong in `docs/source/_static/images`. +- CSS files belong in `docs/source/_static/css`. +- Static files such as example configurations belong in `docs/source/_static/files`. +- Shared include files belong in the `includes` submodule. +- Documentation files should be written in reStructuredText. +- Documentation files should start with a referenceable label, for example `.. _hardware.rst:`. +- Keep line length at 120 characters maximum, preferably around 100 characters. +- Sections and chapters should be separated by one blank line after the title and two blank lines before the title. +- Sections with a chapter title before them should have only one blank line before the title. +- Capitalize section and chapter titles consistently. License ------- -See the LICENSE file for license rights and limitations (Apache 2.0). +See `LICENSE` for license rights and limitations (Apache 2.0). Contact ------- -If you have any questions or inquiries, please contact our support team at https://chargebyte.com/support. - -Thank you for using products from chargebyte GmbH! +For support and product-related questions, please visit: +https://chargebyte.com/support diff --git a/docs/source/_static/files/bsp-only.yaml b/docs/source/_static/files/bsp-only.yaml index 3ef2e0d..ef8fed5 100644 --- a/docs/source/_static/files/bsp-only.yaml +++ b/docs/source/_static/files/bsp-only.yaml @@ -21,9 +21,6 @@ active_modules: evse_manager: - module_id: connector implementation_id: evse - energy_listener: - - module_id: connector - implementation_id: energy_grid evse_energy_sink: - module_id: grid_connection_point implementation_id: external_limits diff --git a/docs/source/everest_charging_stack.rst b/docs/source/everest_charging_stack.rst index 53ae2a1..ccc2877 100644 --- a/docs/source/everest_charging_stack.rst +++ b/docs/source/everest_charging_stack.rst @@ -28,7 +28,7 @@ An overview of the EVerest modules that are defined within a configuration file **CbTarragonDriver** (`view on GitHub `__) This is the Hardware Abstraction Layer (HAL) for Charge Control C in EVerest. It implements -the `evse_board_support `_ +the `evse_board_support `_ interface, enabling communication with the :code:`EvseManager` and control of the board. The EVerest community often refers to these HAL modules as BSPs, such as MicroMegaWattBSP and PhyVersoBSP. This module is essential for controlling the Charge Control C. The term "Tarragon" in :code:`CbTarragonDriver` refers to @@ -39,7 +39,7 @@ the Charge Control C hardware platform. This module is not mandatory for an EVSE setup using Charge Control C in EVerest. However, if EVerest is configured for an AC supply equipment with a socket connector, the module :code:`CbTarragonPlugLock` can be utilized. This module is a driver for plug lock control and implements -`connector_lock `_ interface. +`connector_lock `_ interface. It is designed to support all types of plug locks on connector X9 of the Charge Control C. Check section :ref:`locking_motor` to understand how to connect the locking motor to the Charge Control C. @@ -107,7 +107,7 @@ different in the physical wiring: it is important that only one contactor can be active at a time, i.e. they exclude each other *mutually*. This is ensured by the software implementation, but should already be enforced in hardware, e.g. by using the auxiliary contacts as shown in :numref:`switch-3ph1ph-mutual`. - This setup allow to use a single 400 V-rated contactor in combination with a (cheaper) 230 V-rated one. + This setup allows the use of a single 400 V-rated contactor in combination with a (cheaper) 230 V-rated one. .. _switch-3ph1ph-mutual: .. figure:: _static/images/switch-3ph1ph-mutual.drawio.svg @@ -161,7 +161,7 @@ phase-count switching in general: The EnergyManager module has also additional configuration options to allow fine-tuning of the behavior, but all ship with reasonable default values and thus are not explained in detail here. A description of all these parameters can be found in the -`EnergyManager manifest `_. +`EnergyManager manifest `_. And also the 'EvseManager' module allows fine-tuning the switching process with two configuration parameters: @@ -173,7 +173,7 @@ And also the 'EvseManager' module allows fine-tuning the switching process with of 'X1' should work with all cars and thus it's recommended to leave it on this default value. The full description of all these parameters can be found in the -`EvseManager manifest `_. +`EvseManager manifest `_. .. note:: Phase count switching is only possible in basic charging mode. diff --git a/docs/source/firmware.rst b/docs/source/firmware.rst index cdd55bf..a952fb4 100644 --- a/docs/source/firmware.rst +++ b/docs/source/firmware.rst @@ -6,7 +6,12 @@ Partitioning ------------- -The internal eMMC storage of a chargebyte device is divided into several partitions. The main aim is to have two independent systems available, i.e. system A and system B. This allows to running firmware updates in background while performing normal charging operation, and then switching to the updated system with a fast restart of the device. This also allows to supporting a rollback mechanism in case of failures during firmware updates. In other words, during a firmware update, the active root file system switches from A to B or vice versa, leaving the other as rollback. +The internal eMMC storage of a chargebyte device is divided into several partitions. The main aim is to +have two independent systems available, i.e. system A and system B. This allows firmware updates to run +in the background while normal charging operation continues, and then switches to the updated system with +a fast restart of the device. This also supports a rollback mechanism in case of failures during firmware +updates. In other words, during a firmware update, the active root file system switches from A to B or vice +versa, leaving the other as the rollback system. .. list-table:: eMMC Partitioning :header-rows: 1 @@ -26,7 +31,7 @@ The internal eMMC storage of a chargebyte device is divided into several partiti - Extended Partition Container * - /dev/mmcblk0p5 - 1 GB - - Data Partition (/srv). This partition can be accessed by both root file systems and will be not changed during update process. + - Data Partition (/srv). This partition can be accessed by both root file systems and will not be changed during the update process. * - /dev/mmcblk0p6 - 128 MB - Logging file system A (/var/log) diff --git a/docs/source/getting_started.rst b/docs/source/getting_started.rst index 6de4b88..3cdf00f 100644 --- a/docs/source/getting_started.rst +++ b/docs/source/getting_started.rst @@ -21,7 +21,7 @@ The following hardware components are required to set up the basic AC PWM charge - 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 +- Ethernet cable for SSH connection or a 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 @@ -163,7 +163,7 @@ content of the configuration file, you will see that it is only a reference to t 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: +Just type "less /etc/everest/bsp-only.yaml" to see the content of the configuration file: .. literalinclude:: _static/files/bsp-only.yaml :language: yaml @@ -209,7 +209,7 @@ it in your EVerest configuration. Here is an example of how to change the "connector_type" parameter of the CbTarragonDriver module to "IEC62196Type2Cable" in the EVerest configuration file. -Snippet of a EVerest configuration file: +Snippet of an EVerest configuration file: .. code-block:: yaml @@ -217,7 +217,6 @@ Snippet of a EVerest configuration file: module: CbTarragonDriver config_module: contactor_1_feedback_type: none - relay_2_name: none connector_type: IEC62196Type2Cable By following these guidelines, you can now customize and manage your EVerest charging stack configuration @@ -257,58 +256,55 @@ The EVerest log should look like this: .. code-block:: console root@tarragon:~# journalctl -fu everest -n 100 - 025-09-23T08:35:01.827061+0200 tarragon systemd[1]: Starting EVerest... - 2025-09-23T08:35:01.863095+0200 tarragon sh[25535]: Starting to migrate EVerest configurations - 2025-09-23T08:35:01.926443+0200 tarragon sh[25535]: EVerest configurations migrated successfully - 2025-09-23T08:35:01.950767+0200 tarragon systemd[1]: Started EVerest. - 2025-09-23T08:35:02.045566+0200 tarragon manager[25542]: [INFO] manager :: ________ __ _ - 2025-09-23T08:35:02.052554+0200 tarragon manager[25542]: [INFO] manager :: | ____\ \ / / | | - 2025-09-23T08:35:02.052554+0200 tarragon manager[25542]: [INFO] manager :: | |__ \ \ / /__ _ __ ___ ___| |_ - 2025-09-23T08:35:02.052554+0200 tarragon manager[25542]: [INFO] manager :: | __| \ \/ / _ \ '__/ _ \/ __| __| - 2025-09-23T08:35:02.052554+0200 tarragon manager[25542]: [INFO] manager :: | |____ \ / __/ | | __/\__ \ |_ - 2025-09-23T08:35:02.052554+0200 tarragon manager[25542]: [INFO] manager :: |______| \/ \___|_| \___||___/\__| - 2025-09-23T08:35:02.052554+0200 tarragon manager[25542]: [INFO] manager :: - 2025-09-23T08:35:02.052554+0200 tarragon manager[25542]: [INFO] manager :: everest-framework 0.23.0 main@v0.23.0 - 2025-09-23T08:35:02.057227+0200 tarragon manager[25542]: [INFO] manager :: everest-core 2025.8.0 feature/json-rpc-api-2025.8.0@2024.2.0-951-geebf552a-dirty - 2025-09-23T08:35:02.057227+0200 tarragon manager[25542]: [INFO] manager :: - 2025-09-23T08:35:02.057227+0200 tarragon manager[25542]: [INFO] manager :: Using MQTT broker localhost:1883 - 2025-09-23T08:35:02.150274+0200 tarragon manager[25543]: [INFO] everest_ctrl :: Launching controller service on port 8849 - 2025-09-23T08:35:02.212596+0200 tarragon manager[25542]: [INFO] manager :: Boot mode is set to YamlFile, loading module configs from YAML file - 2025-09-23T08:35:02.214226+0200 tarragon manager[25542]: [INFO] manager :: Loading config file at: /etc/everest/bsp-only.yaml - 2025-09-23T08:35:02.436897+0200 tarragon manager[25542]: [INFO] manager :: Config loading completed in 373ms - 2025-09-23T08:35:02.448083+0200 tarragon manager[25542]: [INFO] manager :: Starting 10 modules - 2025-09-23T08:35:04.691958+0200 tarragon manager[25558]: [INFO] api:API :: Module api initialized [1910ms] - 2025-09-23T08:35:04.754081+0200 tarragon manager[25559]: [INFO] bsp:CbTarragonD :: chargebyte's Hardware EVerest Modules (version: 0.22.2) - 2025-09-23T08:35:04.806710+0200 tarragon manager[25559]: [INFO] bsp:CbTarragonD :: Contactor feedback type: 'none' - 2025-09-23T08:35:04.808383+0200 tarragon manager[25559]: [WARN] bsp:CbTarragonD :: The contactor has the feedback pin not connected. This is not recommended. - 2025-09-23T08:35:04.928540+0200 tarragon manager[25560]: [INFO] charger_info:Ch :: Module charger_info initialized [2005ms] - 2025-09-23T08:35:04.960456+0200 tarragon manager[25559]: [INFO] bsp:CbTarragonD :: Module bsp initialized [2025ms] - 2025-09-23T08:35:04.962735+0200 tarragon manager[25559]: [INFO] bsp:CbTarragonD :: Control Pilot Observation Thread started - 2025-09-23T08:35:05.020212+0200 tarragon manager[25562]: [INFO] energy_manager: :: Module energy_manager initialized [1954ms] - 2025-09-23T08:35:05.112207+0200 tarragon manager[25563]: [INFO] error_history:E :: Using database at "/tmp/error_history.db" - 2025-09-23T08:35:05.119113+0200 tarragon manager[25563]: [INFO] error_history:E :: Checking database - 2025-09-23T08:35:05.127978+0200 tarragon manager[25563]: [INFO] error_history:E :: Module error_history initialized [1952ms] - 2025-09-23T08:35:05.208447+0200 tarragon manager[25569]: [INFO] tarragon_dig_in :: chargebyte's Tarragon driver for configuration of digital input reference PWM (version: 0.22.2) - 2025-09-23T08:35:05.250959+0200 tarragon manager[25569]: [INFO] tarragon_dig_in :: Enabled digital input reference PWM 2084000.pwm, channel 0 with period 40000 and duty cycle 20000 - 2025-09-23T08:35:05.256215+0200 tarragon manager[25569]: [INFO] tarragon_dig_in :: Module tarragon_dig_in_ref initialized [1886ms] - 2025-09-23T08:35:05.332655+0200 tarragon manager[25565]: [INFO] kvs:YamlStore :: Module kvs initialized [2046ms] - 2025-09-23T08:35:05.406746+0200 tarragon manager[25564]: [INFO] grid_connection :: Module grid_connection_point initialized [2193ms] - 2025-09-23T08:35:05.436614+0200 tarragon manager[25566]: [INFO] rpc_api:RpcApi :: Module rpc_api initialized [2027ms] - 2025-09-23T08:35:05.449652+0200 tarragon manager[25542]: [INFO] manager :: Clearing retained topics published by manager during startup - 2025-09-23T08:35:05.449652+0200 tarragon manager[25542]: [INFO] manager :: πŸš™πŸš™πŸš™ All modules are initialized. EVerest up and running [3407ms] πŸš™πŸš™πŸš™ - 2025-09-23T08:35:05.462454+0200 tarragon manager[25561]: [INFO] connector:EvseM :: Module connector initialized [2269ms] - 2025-09-23T08:35:06.564052+0200 tarragon manager[25566]: [INFO] rpc_api:RpcApi :: WebSocket Server running on port 8080 (interface "lo" only) without TLS - 2025-09-23T08:35:06.874644+0200 tarragon manager[25566]: [INFO] rpc_api:RpcApi :: Client cce29011-60c1-4f80-b577-0a6be68034ba connected from 127.0.0.1 - 2025-09-23T08:35:06.885866+0200 tarragon manager[25566]: [INFO] rpc_api:RpcApi :: API.Hello request received from client cce29011-60c1-4f80-b577-0a6be68034ba - 2025-09-23T08:35:10.644986+0200 tarragon manager[25561]: [INFO] connector:EvseM :: Cleaning up any other transaction on start up - 2025-09-23T08:35:10.743391+0200 tarragon manager[25561]: [INFO] connector:EvseM :: πŸŒ€πŸŒ€πŸŒ€ Ready to start charging πŸŒ€πŸŒ€πŸŒ€ - 2025-09-23T08:35:10.744999+0200 tarragon manager[25561]: [WARN] connector:EvseM void module::EvseManager::ready_to_start_charging() :: No powermeter value received yet! - 2025-09-23T08:35:10.905728+0200 tarragon manager[25559]: [INFO] bsp:CbTarragonD :: handle_enable: Setting new duty cycle of 100.00% - 2025-09-23T08:35:10.921161+0200 tarragon manager[25559]: [INFO] bsp:CbTarragonD :: CP state change from PowerOn to A, U_CP+: 11927 mV, U_CP-: -21 mV, PWM: 100.00%) - 2025-09-23T08:35:11.064008+0200 tarragon manager[25559]: [INFO] bsp:CbTarragonD :: handle_pwm_off: Setting new duty cycle of 100.00% - 2025-09-23T08:35:11.111309+0200 tarragon manager[25559]: [INFO] bsp:CbTarragonD :: Current (unchanged) state: Contactor@R1-S1 (OPEN, UNUSED) - 2025-09-23T08:35:11.174484+0200 tarragon manager[25559]: [INFO] bsp:CbTarragonD :: handle_pwm_off: Setting new duty cycle of 100.00% - 2025-09-23T08:35:11.221568+0200 tarragon manager[25561]: [INFO] connector:EvseM :: All errors cleared + 2026-04-23T13:31:28.484265+0200 tarragon manager[11218]: [INFO] manager :: ________ __ _ + 2026-04-23T13:31:28.493402+0200 tarragon manager[11218]: [INFO] manager :: | ____\ \ / / | | + 2026-04-23T13:31:28.493402+0200 tarragon manager[11218]: [INFO] manager :: | |__ \ \ / /__ _ __ ___ ___| |_ + 2026-04-23T13:31:28.493402+0200 tarragon manager[11218]: [INFO] manager :: | __| \ \/ / _ \ '__/ _ \/ __| __| + 2026-04-23T13:31:28.493402+0200 tarragon manager[11218]: [INFO] manager :: | |____ \ / __/ | | __/\__ \ |_ + 2026-04-23T13:31:28.493402+0200 tarragon manager[11218]: [INFO] manager :: |______| \/ \___|_| \___||___/\__| + 2026-04-23T13:31:28.493402+0200 tarragon manager[11218]: [INFO] manager :: + 2026-04-23T13:31:28.493402+0200 tarragon manager[11218]: [INFO] manager :: everest-framework 0.25.0 2026.02.0-54-g1b2d3e15-dirty + 2026-04-23T13:31:28.496361+0200 tarragon manager[11218]: [INFO] manager :: everest-core 2026.02.0 2026.02.0-54-g1b2d3e15-dirty + 2026-04-23T13:31:28.496361+0200 tarragon manager[11218]: [INFO] manager :: + 2026-04-23T13:31:28.496361+0200 tarragon manager[11218]: [INFO] manager :: Using MQTT broker localhost:1883 + 2026-04-23T13:31:28.593300+0200 tarragon manager[11218]: [INFO] manager :: Boot mode is set to YamlFile, loading module configs from YAML file + 2026-04-23T13:31:28.593300+0200 tarragon manager[11218]: [INFO] manager :: Loading config file at: /etc/everest/bsp-only.yaml + 2026-04-23T13:31:28.825306+0200 tarragon manager[11218]: [INFO] manager :: Config loading completed in 336ms + 2026-04-23T13:31:28.837998+0200 tarragon manager[11218]: [INFO] manager :: Starting 10 modules + 2026-04-23T13:31:31.070054+0200 tarragon manager[11227]: [INFO] charger_info:Ch :: Module charger_info initialized [1802ms] + 2026-04-23T13:31:31.212788+0200 tarragon manager[11229]: [INFO] energy_manager: :: Module energy_manager initialized [1806ms] + 2026-04-23T13:31:31.224860+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: chargebyte's Hardware EVerest Modules (version: 0.30.0) + 2026-04-23T13:31:31.258620+0200 tarragon manager[11225]: [INFO] api:API :: Module api initialized [2065ms] + 2026-04-23T13:31:31.424270+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Contactor feedback type: 'none' + 2026-04-23T13:31:31.424270+0200 tarragon manager[11226]: [WARN] bsp:CbTarragonD :: The contactor has the feedback pin not connected. This is not recommended. + 2026-04-23T13:31:31.563297+0200 tarragon manager[11230]: [INFO] error_history:E :: Using database at "/tmp/error_history.db" + 2026-04-23T13:31:31.563297+0200 tarragon manager[11230]: [INFO] error_history:E :: Checking database + 2026-04-23T13:31:31.617262+0200 tarragon manager[11232]: [INFO] kvs:YamlStore :: Module kvs initialized [2074ms] + 2026-04-23T13:31:31.662480+0200 tarragon manager[11230]: [INFO] error_history:E :: Module error_history initialized [2188ms] + 2026-04-23T13:31:31.668468+0200 tarragon manager[11231]: [INFO] grid_connection :: Module grid_connection_point initialized [2177ms] + 2026-04-23T13:31:31.684569+0200 tarragon manager[11241]: [INFO] tarragon_dig_in :: chargebyte's Tarragon driver for configuration of digital input reference PWM (version: 0.30.0) + 2026-04-23T13:31:31.721692+0200 tarragon manager[11241]: [INFO] tarragon_dig_in :: Enabled digital input reference PWM 2084000.pwm, channel 0 with period 40000 and duty cycle 20000 + 2026-04-23T13:31:31.721692+0200 tarragon manager[11241]: [INFO] tarragon_dig_in :: Module tarragon_dig_in_ref initialized [2079ms] + 2026-04-23T13:31:31.825234+0200 tarragon manager[11228]: [INFO] connector:EvseM :: Module connector initialized [2388ms] + 2026-04-23T13:31:31.881241+0200 tarragon manager[11233]: [INFO] rpc_api:RpcApi :: libwebsockets version (compiled/runtime): 4.5.2-v4.5.2 / 4.5.2-v4.5.2 + 2026-04-23T13:31:31.881241+0200 tarragon manager[11233]: [INFO] rpc_api:RpcApi :: Module rpc_api initialized [2179ms] + 2026-04-23T13:31:31.987420+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Module bsp initialized [2730ms] + 2026-04-23T13:31:31.987420+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Control Pilot Observation Thread started + 2026-04-23T13:31:31.988663+0200 tarragon manager[11218]: [INFO] manager :: Clearing retained topics published by manager during startup + 2026-04-23T13:31:31.988663+0200 tarragon manager[11218]: [INFO] manager :: πŸš™πŸš™πŸš™ All modules are initialized. EVerest up and running [3506ms] πŸš™πŸš™πŸš™ + 2026-04-23T13:31:32.019335+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Proximity Pilot Observation Thread started + 2026-04-23T13:31:33.192126+0200 tarragon manager[11233]: [INFO] rpc_api:RpcApi :: WebSocket Server running on port 8080 (interface "lo" only) without TLS + 2026-04-23T13:31:37.212073+0200 tarragon manager[11228]: [INFO] connector:EvseM :: Cleaning up any other transaction on start up + 2026-04-23T13:31:37.279012+0200 tarragon manager[11228]: [INFO] connector:EvseM :: πŸŒ€πŸŒ€πŸŒ€ Ready to start charging πŸŒ€πŸŒ€πŸŒ€ + 2026-04-23T13:31:37.279012+0200 tarragon manager[11228]: [WARN] connector:EvseM :: No powermeter value received yet! + 2026-04-23T13:31:37.368213+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: handle_enable: Applying cached duty cycle of 100.00% + 2026-04-23T13:31:37.384560+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: CP state change from PowerOn to A, U_CP+: 11985 mV, U_CP-: 75 mV, PWM: 100.00%) + 2026-04-23T13:31:37.472125+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: handle_cp_state_X1: Setting new duty cycle of 100.00% + 2026-04-23T13:31:37.498506+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: PP ampacity change from None to A_20 (U_PP: 1561 mV) + 2026-04-23T13:31:37.546357+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Current (unchanged) state: Contactor@R1/S1 (OPEN, UNUSED) + 2026-04-23T13:31:37.601042+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: handle_cp_state_X1: Setting new duty cycle of 100.00% + 2026-04-23T13:31:37.632123+0200 tarragon manager[11228]: [INFO] connector:EvseM :: All errors cleared + 2026-04-23T13:31:37.634488+0200 tarragon manager[11228]: [INFO] connector:EvseM :: All errors cleared 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 @@ -318,18 +314,18 @@ EVSE Test Adapter is set to "B" and the current limit (adjustable via the PP sta 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 +Therefore, the duty cycle should directly switch from 100% to ~21.67%. 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: .. code-block:: console - 2025-09-23T08:45:38.991562+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: CP state change from A to B, U_CP+: 8909 mV, U_CP-: -12 mV, PWM: 100.00%) - 2025-09-23T08:45:39.072353+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: Current (unchanged) state: Contactor@R1-S1 (OPEN, UNUSED) - 2025-09-23T08:45:39.267367+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: Read PP ampacity value: A_13 (U_PP: 2085 mV) - 2025-09-23T08:45:39.281841+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: Proximity Pilot Observation Thread started - 2025-09-23T08:45:39.521493+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: handle_pwm_on: Setting new duty cycle of 21.67% (13.0 A) + 2026-04-23T13:31:38.991562+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: CP state change from A to B, U_CP+: 8909 mV, U_CP-: -12 mV, PWM: 100.00%) + 2026-04-23T13:31:39.072353+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Current (unchanged) state: Contactor@R1/S1 (OPEN, UNUSED) + 2026-04-23T13:31:39.267367+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Read PP ampacity value: A_13 (U_PP: 2085 mV) + 2026-04-23T13:31:39.281841+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Proximity Pilot Observation Thread started + 2026-04-23T13:31:39.521493+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: handle_pwm_on: Setting new duty cycle of 21.67% (13.0 A) 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. @@ -342,9 +338,9 @@ process should start. The last EVerest log messages should look like this: .. code-block:: console - 2025-09-23T08:46:21.386933+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: CP state change from B to C, U_CP+: 6006 mV, U_CP-: -11845 mV, PWM: 21.67%) - 2025-09-23T08:46:21.432216+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: handle_allow_power_on: request to CLOSE the contactor - 2025-09-23T08:46:21.432216+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: Current state: Contactor@R1-S1 (CLOSED, UNUSED) + 2026-04-23T13:31:51.386933+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: CP state change from B to C, U_CP+: 6006 mV, U_CP-: -11845 mV, PWM: 21.67%) + 2026-04-23T13:31:51.432216+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: handle_allow_power_on: request to CLOSE the contactor + 2026-04-23T13:31:51.432216+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Current state: Contactor@R1/S1 (CLOSED, UNUSED) The charging process can be stopped by a CP state change from "C" to "B" via the IEC 62196 Type 2. @@ -352,9 +348,9 @@ The last EVerest log messages should look like this: .. code-block:: console - 2025-09-23T08:47:17.921085+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: CP state change from C to B, U_CP+: 8880 mV, U_CP-: -11836 mV, PWM: 21.67%) - 2025-09-23T08:47:17.986228+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: handle_allow_power_on: request to OPEN the contactor - 2025-09-23T08:47:17.986228+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: Current state: Contactor@R1-S1 (OPEN, UNUSED) + 2026-04-23T13:32:17.921085+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: CP state change from C to B, U_CP+: 8880 mV, U_CP-: -11836 mV, PWM: 21.67%) + 2026-04-23T13:32:17.986228+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: handle_allow_power_on: request to OPEN the contactor + 2026-04-23T13:32:17.986228+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Current state: Contactor@R1/S1 (OPEN, UNUSED) 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 @@ -364,13 +360,13 @@ The last EVerest log messages after removing the plug should look like this: .. code-block:: console - 2025-09-23T08:47:53.847329+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: CP state change from B to A, U_CP+: 11908 mV, U_CP-: -11836 mV, PWM: 21.67%) - 2025-09-23T08:47:53.878577+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: PP noticed plug removal from socket (U_PP: 3295 mV) - 2025-09-23T08:47:53.913897+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: handle_pwm_off: Setting new duty cycle of 100.00% - 2025-09-23T08:47:53.928272+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: Current (unchanged) state: Contactor@R1-S1 (OPEN, UNUSED) - 2025-09-23T08:47:54.047689+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: handle_pwm_off: Setting new duty cycle of 100.00% - 2025-09-23T08:47:54.297602+0200 tarragon manager[320]: [INFO] bsp:CbTarragonD :: handle_pwm_off: Setting new duty cycle of 100.00% - 2025-09-23T08:47:54.343294+0200 tarragon manager[323]: [INFO] connector:EvseM :: All errors cleared + 2026-04-23T13:32:53.847329+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: CP state change from B to A, U_CP+: 11908 mV, U_CP-: -11836 mV, PWM: 21.67%) + 2026-04-23T13:32:53.878577+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: PP noticed plug removal from socket (U_PP: 3295 mV) + 2026-04-23T13:32:53.913897+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: handle_pwm_off: Setting new duty cycle of 100.00% + 2026-04-23T13:32:53.928272+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: Current (unchanged) state: Contactor@R1/S1 (OPEN, UNUSED) + 2026-04-23T13:32:54.047689+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: handle_pwm_off: Setting new duty cycle of 100.00% + 2026-04-23T13:32:54.297602+0200 tarragon manager[11226]: [INFO] bsp:CbTarragonD :: handle_pwm_off: Setting new duty cycle of 100.00% + 2026-04-23T13:32:54.343294+0200 tarragon manager[11228]: [INFO] connector:EvseM :: All errors cleared 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 diff --git a/docs/source/hardware.rst b/docs/source/hardware.rst index 3fd8da3..efb498e 100644 --- a/docs/source/hardware.rst +++ b/docs/source/hardware.rst @@ -202,7 +202,7 @@ Currently supported measurands by GenericPowermeter: * frequency_Hz (L1, L2, L3) **Note:** A description of GenericPowermeter can be found in EVerests documentation: -https://everest.github.io/nightly/_included/modules_doc/GenericPowermeter.html +https://everest.github.io/nightly/reference/modules/HardwareDrivers/PowerMeters/GenericPowermeter/autogenerated.html | @@ -255,7 +255,7 @@ Pairing When your HomePlug compatible companion is already setup and working, you are ready to join the powerline network. -For this you need to pair the Charge Control C with your HomePlug compatible companion. +For this, you need to pair the Charge Control C with your HomePlug-compatible companion. There are currently two different ways of pairing PLC devices with Charge Control C. @@ -381,10 +381,16 @@ Configuration - voltage5 - `-` -In order to use High-Level Communication, the EVerest modules *EvseV2G* and *EvseSlac* must be considered. +In order to use High-Level Communication, the EVerest modules *EvseV2G*, *Evse15118D20*, *IsoMux* and +*EvseSlac* must be considered. The *IsoMux* module is currently required to support DIN 70121, +ISO 15118-2, and ISO 15118-20 at the same time. In the future, the *IsoMux* module is expected to +become unnecessary once all protocols are provided by a single module. + The configuration parameters can be found on EVerest's -documentation platform: https://everest.github.io/nightly/_generated/modules/EvseV2G.html -and https://everest.github.io/nightly/_generated/modules/EvseSlac.html. +documentation platform: https://everest.github.io/nightly/reference/modules/EVSE/EvseV2G/autogenerated.html +https://everest.github.io/nightly/reference/modules/EVSE/Evse15118D20/autogenerated.html, +https://everest.github.io/nightly/reference/modules/EVSE/IsoMux/autogenerated.html, +and https://everest.github.io/nightly/reference/modules/EVSE/EvseSlac/autogenerated.html. .. note:: The Charge Control C boards use a Qualcomm Atheros QCA700x chip for Green PHY communication on CP line. diff --git a/docs/source/troubleshooting.rst b/docs/source/troubleshooting.rst index 7b2a43d..d32e772 100644 --- a/docs/source/troubleshooting.rst +++ b/docs/source/troubleshooting.rst @@ -20,8 +20,9 @@ our `website `_ for more suitable products. Is it possible to use the Charge Control C as a DC charge controller? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Yes, for prototypes it’s possible to use the Charge Control C as DC SECC for DIN 70121 or ISO 15118. -But the Charge Control C was designed with the AC use case in mind. +For prototype use cases, it is possible to use the Charge Control C as DC SECC for DIN 70121 or ISO 15118. +However, due to the strict timing requirements, the Charge Control C is not intended for production use in +DC applications for safety reasons. The Charge Control C was designed with the AC use case in mind. How can I use CAN with Charge Control C? @@ -36,8 +37,8 @@ I want to control EVerest via CAN, how can I achieve this? Currently there is no such EVerest module available, you will need to implement it on your own. -But at least there is are `DC power supply modules `_ -and a `library `_, +But at least there are `DC power supply modules `_ +and a `library `_, which uses the CAN interface. This might help as a starting point. @@ -57,33 +58,41 @@ For more information, please refer to the :ref:`update_from_chargebyte_to_everes How can I access the EVerest admin panel on Charge Control C? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The Charge Control C doesn't have an `EVerest admin panel `_ +The Charge Control C does not have an `EVerest admin panel `_ because of its limited resources. Please use your development environment to set up your configuration file or just use a plain text editor. +How should TLS or Plug & Charge private keys be protected? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +For TLS and especially Plug & Charge, private keys should be protected according to the requirements of the +certificate authority or certificate management system. In many production environments, this means using +hardware-backed key storage such as a TPM, HSM, or comparable technology. + +If software-based key protection is not sufficient for your project, plan the hardware-backed approach early. +Please contact chargebyte support to discuss the available integration options for Charge Control C. + Does EVerest on Charge Control C support ISO 15118-20 yet? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The required module for ISO 15118-20 has been included in the image since the chargebyte EVerest 1.0.0 release. -Please note that the implementation is still under development and integrated into the image only for test purposes. +Support for ISO 15118-20 is available in EVerest on Charge Control C and has significantly matured compared to +earlier releases. Among other things, BPT (bidirectional power transfer) is implemented for Dynamic and Scheduled +Charging Mode. The main remaining implementation gap is currently Plug & Charge related functionality. -EVerest integrates the `libiso15118 `_ library to provide support for ISO 15118-20. -Here you can find more information about the current status of the ISO 15118-20 implementation. -Please note, however, that the range of functions described in the linked `libiso15118` library documentation may not -correspond to those already integrated in EVerest, as the library has not yet been fully integrated. -Implementation gaps may exist, particularly in the case of BPT (bidirectional power transfer) functionality. +For Plug & Charge related setup details, please also refer to the +`EVerest Plug & Charge tutorial `_. How do I set up OCPP 2.0.1 on Charge Control C with EVerest? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -To support OCPP 2.0.1, the EVerest OCPP201 module must be integrated into the EVerest configuration. -This module uses the `libocpp library `_ to implement the OCPP 2.0.1 -protocol. -The `OCPP201 module documentation `_ -already contains some information about the module parameters, the provided and required interfaces, -and the initial creation of the OCPP 2.0.1 database. +To support OCPP 2.0.1, the EVerest :ref:`OCPP201 ` module must be integrated into +the EVerest configuration. +The `OCPP 2.0.1 and 2.1 tutorial `_ +already contains information about the module parameters, the provided and required interfaces, +and the initial creation of the OCPP database. The most important points are summarised here: @@ -100,10 +109,10 @@ The most important points are summarised here: RAUC image. 4. The `CoreDatabasePath` is used, among other things, to store OCPP transaction data. 5. The OCPP 2.0.1 device model initialization is done automatically by the OCPP201 module after the - first start of EVerest. The database is stored the `DeviceModelDatabasePath`. + first start of EVerest. The database is stored at the `DeviceModelDatabasePath`. 6. The component config files are stored in the `DeviceModelConfigPath`. Component config files are used to initialize or update the device model database. To update a component config file, just - place a `component config file `_ + place a `component config file `_ in the same directory structure in the DeviceModelConfigPath and change the values accordingly. Important keys of the component config files are: @@ -112,13 +121,13 @@ The most important points are summarised here: - `standardized/SecurityCtrlr.json: SecurityCtrlrIdentity`: In "attributes" adapt the "value" key to configure the SecurityCtrlrIdentity. It is the Charging Station identity. For further information about the device model initialization, please refer to the - `libocpp documentation `_. + `libocpp documentation `_. I tried to compile chargebyte's Hardware EVerest Modules, but it fails to build. How can I fix this? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The EVerest mainline development is very dynamic and doesn't guarantee any +The EVerest mainline development is very dynamic and does not guarantee any stable API along the EVerest modules. So after almost every EVerest release, chargebyte needs to adapt their modules to the latest API changes. @@ -130,7 +139,7 @@ I would like to implement a custom Modbus device in EVerest. Where should I star ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ EVerest already has a module which takes care of Modbus communication. Please have a look at -`SerialCommHub `_, +`SerialCommHub `_, and let your module interact with this module via the `serial_communication_hub` interface. .. _contact: diff --git a/includes b/includes index fe996a7..987d6d3 160000 --- a/includes +++ b/includes @@ -1 +1 @@ -Subproject commit fe996a74ef7d1b963754e604adf1dec9bae2200f +Subproject commit 987d6d3af686a441fcb746774b9a9513b38fb180