Skip to content

Commit e72dfcf

Browse files
authored
EVerest ChargeSOM 0.9.0 (#99)
* Update journal log in getting_started.rst Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * Add guidance on protecting TLS and Plug & Charge private keys Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * Update subproject commit reference in includes Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * Fix GitHub links Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> docs: fix GitHub link for evse_board_support in EVerest documentation Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * docs: fix wording in EVerest documentation Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * docs: improve readability and formatting in multiple documentation files Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * docs: update bsp-only-dc.yaml configuration Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * docs: fix GitHub links in documentation Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * docs: enhance troubleshooting section with TPM usage details for secure key storage Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * fix: prevent stretched words in documentation tables - Overrides justified paragraph alignment inside table headers and cells. - Fixes stretched words in multi-line table headers, such as German Eichrecht Supported, where German and Eichrecht were spaced too far apart. Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * style: improve docs theme styling Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * style: add colons to numbered docs captions Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * docs: replace raw HTML captions with Sphinx captions Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> * includes: update git submodule commit reference Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> --------- Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com>
1 parent d5f79ea commit e72dfcf

13 files changed

Lines changed: 407 additions & 277 deletions

‎docs/source/_static/css/cb_theme.css‎

Lines changed: 91 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,28 @@ body {
3030
line-height: 1.5 !important;
3131
}
3232

33-
.document .bodywrapper .body p span.caption-text {
34-
font-size: 30px !important;
33+
.document .bodywrapper .body p.caption,
34+
.document .bodywrapper .body caption,
35+
.document .bodywrapper .body span.caption-number,
36+
.document .bodywrapper .body span.caption-text {
37+
font-size: 18px !important;
38+
line-height: 1.5 !important;
39+
}
40+
41+
.document .bodywrapper .body figure figcaption,
42+
.document .bodywrapper .body figure figcaption p,
43+
.document .bodywrapper .body div.figure p.caption {
44+
text-align: center !important;
45+
}
46+
47+
.document .bodywrapper .body figure figcaption,
48+
.document .bodywrapper .body div.figure p.caption {
49+
padding-top: 0.1em !important;
50+
}
51+
52+
.document .bodywrapper .body figure figcaption p,
53+
.document .bodywrapper .body div.figure p.caption {
54+
margin-top: 0.1em !important;
3555
}
3656

3757
.document .bodywrapper .body p strong,
@@ -63,14 +83,32 @@ body {
6383
}
6484

6585
.document .sphinxsidebar .sphinxsidebarwrapper h4 {
66-
font-size: 18px !important;
86+
color: #fff !important;
87+
font-size: 16px !important;
6788
font-family: "Open Sans", sans-serif !important;
89+
font-weight: 700 !important;
90+
margin: 16px 0 2px !important;
91+
text-transform: capitalize !important;
92+
}
93+
94+
.document .sphinxsidebar .sphinxsidebarwrapper h4::after {
95+
content: ":" !important;
6896
}
6997

7098
.document .sphinxsidebar .sphinxsidebarwrapper .topless a {
99+
display: inline !important;
71100
font-size: 18px !important;
72101
font-family: "Open Sans", sans-serif !important;
73102
color: #fff !important;
103+
line-height: 1.25 !important;
104+
padding: 0 !important;
105+
background-color: transparent !important;
106+
text-decoration: none !important;
107+
transition: color 0.15s ease !important;
108+
}
109+
110+
.document .sphinxsidebar .sphinxsidebarwrapper .topless a:hover {
111+
color: #ff8200 !important;
74112
}
75113

76114
.document .sphinxsidebar .sphinxsidebarwrapper p {
@@ -102,7 +140,7 @@ body {
102140
font-size: 36px !important;
103141
font-family: "Open Sans", sans-serif !important;
104142
font-weight: 600 !important;
105-
margin: 0 !important;
143+
margin: 1.5em 0 0.5em !important;
106144
padding: 0 !important;
107145
border-bottom: none !important;
108146
background-color: #111827 !important;
@@ -113,7 +151,7 @@ body {
113151
font-size: 30px !important;
114152
font-family: "Open Sans", sans-serif !important;
115153
font-weight: 600 !important;
116-
margin: 0 !important;
154+
margin: 1.25em 0 0.45em !important;
117155
padding: 0 !important;
118156
background-color: #111827 !important;
119157
color: #fff !important;
@@ -124,13 +162,21 @@ body {
124162
font-size: 26px !important;
125163
font-family: "Open Sans", sans-serif !important;
126164
font-weight: 600 !important;
127-
margin: 0 !important;
165+
margin: 1em 0 0.4em !important;
128166
padding: 0 !important;
129167
background-color: #ff8200 !important;
130168
border-bottom: none !important;
131169
color: #fff !important;
132170
}
133171

172+
.document .bodywrapper section>h2+section>h3 {
173+
margin-top: 0.2em !important;
174+
}
175+
176+
.document .bodywrapper section>h3+section>h4 {
177+
margin-top: 0.2em !important;
178+
}
179+
134180
.document .bodywrapper .highlight {
135181
background: #153659 !important;
136182
}
@@ -177,14 +223,17 @@ body {
177223
}
178224

179225
.related ul li.right a {
226+
display: inline-block;
180227
text-transform: capitalize;
181228
padding: 10px 15px;
182229
background-color: #ff8200;
183230
border-radius: 5px;
231+
transition: background-color 0.15s ease, transform 0.15s ease;
184232
}
185233

186234
.related ul li.right a:hover {
187-
padding: 11px 17px;
235+
background-color: #ff9a26;
236+
transform: scale(1.05);
188237
text-decoration: none;
189238
}
190239

@@ -202,6 +251,36 @@ dl.field-list>dt {
202251
background-color: #1c354f !important;
203252
}
204253

254+
.document .bodywrapper table.docutils th p,
255+
.document .bodywrapper table.docutils td p {
256+
text-align: left !important;
257+
}
258+
259+
.document .bodywrapper .footnote:target {
260+
background-color: transparent !important;
261+
}
262+
263+
.document .bodywrapper .footnote-reference,
264+
.document .bodywrapper .footnote .label,
265+
.document .bodywrapper .footnote .label a,
266+
.document .bodywrapper .footnote .fn-bracket {
267+
color: #ff8200 !important;
268+
}
269+
270+
.document .bodywrapper .footnote,
271+
.document .bodywrapper .footnote p {
272+
line-height: 1.2 !important;
273+
}
274+
275+
.document .bodywrapper .footnote {
276+
margin: 0.2em 0 !important;
277+
}
278+
279+
.document .bodywrapper .footnote p {
280+
margin-top: 0 !important;
281+
margin-bottom: 0 !important;
282+
}
283+
205284
.document .bodywrapper .note {
206285
background-color: #1c354f !important;
207286
}
@@ -254,8 +333,11 @@ dl.field-list>dt {
254333
font-size: 17px !important;
255334
}
256335

257-
.document .bodywrapper .body p span.caption-text {
258-
font-size: 22px !important;
336+
.document .bodywrapper .body p.caption,
337+
.document .bodywrapper .body caption,
338+
.document .bodywrapper .body span.caption-number,
339+
.document .bodywrapper .body span.caption-text {
340+
font-size: 14px !important;
259341
}
260342

261343
.document .bodywrapper .body .toctree-wrapper.compound ul li.toctree-l1 a {

‎docs/source/_static/files/bsp-only-dc.yaml‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ active_modules:
2020
evse_manager:
2121
- module_id: connector
2222
implementation_id: evse
23-
energy_listener:
24-
- module_id: connector
25-
implementation_id: energy_grid
2623
evse_energy_sink:
2724
- module_id: grid_connection_point
2825
implementation_id: external_limits
@@ -61,7 +58,7 @@ active_modules:
6158
- module_id: bsp
6259
implementation_id: evse_board_support
6360
slac:
64-
- module_id: evse_slac
61+
- module_id: slac
6562
implementation_id: main
6663
powersupply_DC:
6764
- module_id: powersupply_dc
@@ -110,7 +107,7 @@ active_modules:
110107
module: EvseSecurity
111108
config_module:
112109
private_key_password: "123456"
113-
evse_slac:
110+
slac:
114111
module: EvseSlac
115112
config_implementation:
116113
main:

‎docs/source/carrierboard_development.rst‎

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ thus can be loaded and used without damaging the system. The signature can be cr
116116
using e.g. ``openssl cms …`` and thus creating a *detached* signature of the binary DT overlay file.
117117

118118
To keep the DT overlay signature small, the certificate could be *not* included in this signature (and thus not stored
119-
inside the EEPROM), but to verify this signature, accessing the signing certificate must then be possible (e.g. placed in
120-
and loaded from the root filesystem). This raises other topics, so chargebyte's start point is to include it as
121-
a complete X.509 signature in the EEPROM even if this requires a larger EEPROM type.
119+
inside the EEPROM), but to verify this signature, accessing the signing certificate must then be possible
120+
(e.g. placed in and loaded from the root filesystem). This raises other topics, so chargebyte's start point is
121+
to include it as a complete X.509 signature in the EEPROM even if this requires a larger EEPROM type.
122122

123123
Such a signature can be created for example using the following command line:
124124

@@ -129,12 +129,12 @@ Such a signature can be created for example using the following command line:
129129
It is possible to re-use an existing Public-Key Infrastructure which is already used for signing the firmware
130130
update files.
131131

132-
Once a matching Device Tree overlay and the corresponding signature are available, the EEPROM content needs to be created
133-
using the helper tool ``cb-dt-eeprom`` which is included in
134-
chargebyte's Github space: https://github.com/chargebyte/cb-eeprom-utils
132+
Once a matching Device Tree overlay and the corresponding signature are available, the EEPROM content needs
133+
to be created using the helper tool ``cb-dt-eeprom`` which is included in chargebyte's Github space:
134+
https://github.com/chargebyte/cb-eeprom-utils
135135

136-
An example invocation for the carrier board which is the base for chargebyte's Charge Control V looks for example like follows.
137-
The example uses the typical chargebyte board revision number and a chargebyte order code which was assigned to this carrier board type.
136+
An example invocation for the carrier board used as the base for chargebyte's Charge Control V is shown below.
137+
It uses the typical chargebyte board revision number and an order code assigned to this carrier board type.
138138

139139
.. code-block:: shell
140140
@@ -149,20 +149,20 @@ For a random customer, this might look like this (here with a randomly chosen ve
149149
During carrier board manufacturing, it is assumed that writing the EEPROM is done via an external programmer
150150
which is out-of-scope for this documentation.
151151

152-
But during the development phase, it might be necessary to exchange the EEPROM content and/or rewrite it for testing purpose.
153-
Then using an external programmer is cumbersome. Better and simpler is to write the created binary EEPROM image file
154-
into the EEPROM directly from the Charge SOM hooked up to such a carrier board. The following command can be used
155-
via SSH and/or Debug UART:
152+
But during the development phase, it might be necessary to exchange the EEPROM content and/or rewrite it for
153+
testing purpose. Then using an external programmer is cumbersome. Better and simpler is to write the
154+
created binary EEPROM image file into the EEPROM directly from the Charge SOM hooked up to such a carrier
155+
board. The following command can be used via SSH and/or Debug UART:
156156

157157
.. code-block:: shell
158158
159159
dd if="dt-eeprom.bin" of=/sys/class/i2c-dev/i2c-0/device/0-0050/eeprom
160160
161161
Even so, it's still a complex process and long round trip. So it is possible to directly place such Device Tree overlay
162162
files in the root filesystem of the firmware in the ``/boot`` directory.
163-
Loading of such files can be controlled with the U-Boot environment variable ``overlays``. This variable can hold a whitespace
164-
separated list of filenames (basename of the file, i.e. without ``/boot`` prefix) which are loaded and merged
165-
in order *after* the base Device Tree file (given via ``fdtfile`` environment variable) is loaded.
163+
Loading of such files can be controlled with the U-Boot environment variable ``overlays``. This variable can
164+
hold a whitespace separated list of filenames (basename of the file, i.e. without ``/boot`` prefix) which are
165+
loaded and merged in order *after* the base Device Tree file (given via ``fdtfile`` environment variable) is loaded.
166166
This approach can also be used for a custom carrier board when the EEPROM approach does not fit.
167167

168168
Here is a summary of related U-Boot environment variables:

‎docs/source/conf.py‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@
1919
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
2020

2121
numfig = True
22+
numfig_format = {
23+
'figure': 'Fig. %s:',
24+
'table': 'Table %s:',
25+
'code-block': 'Listing %s',
26+
'section': 'Section %s',
27+
}
2228

2329
jinja2_contexts = {
2430
'target-info': {

‎docs/source/everest_bsp.rst‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
EVerest Board Support Package Module
44
------------------------------------
55

6-
chargebyte developed a comprehensive hardware abstraction module (HAL, or also called BSP module - board support package)
7-
for EVerest charging stack to support the Charge SOM platform. The module is called ``CbChargeSOMDriver`` and is
8-
available in chargebyte's public EVerest repository as open-source code:
6+
chargebyte developed a comprehensive hardware abstraction module (HAL, or also called BSP module - board
7+
support package) for EVerest charging stack to support the Charge SOM platform. The module is called
8+
``CbChargeSOMDriver`` and is available in chargebyte's public EVerest repository as open-source code:
99
https://github.com/chargebyte/everest-chargebyte/tree/main/modules/CbChargeSOMDriver
1010

1111
This module already implements the required communication protocol to interact with the safety controller.

‎docs/source/everest_charging_stack.rst‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The use case described in this configuration file includes the following:
1616

1717
* DC charging mode
1818
* No TLS (Transport Layer Security) enabled for HLC (High Level Communication)
19-
* 3 phase, 16A fuse limit
19+
* 3-phase, 16 A fuse limit
2020
* Simulation of the IMD (Insulation Monitoring Device)
2121
* Simulation of the DC Supply Device
2222
* Energy management via JSON-RPC API
@@ -25,14 +25,14 @@ An overview of the EVerest modules is shown in the next section.
2525

2626
.. include:: ../../includes/everest_overview_of_everest_modules.inc
2727

28-
**DCSupplySimulator** (`view on GitHub <https://github.com/EVerest/everest-core/blob/main/modules/Simulation/DCSupplySimulator/manifest.yaml>`__)
28+
**DCSupplySimulator** (`view on GitHub <https://github.com/EVerest/EVerest/blob/main/modules/Simulation/DCSupplySimulator/manifest.yaml>`__)
2929

3030
This module simulates a DC power supply device.
3131

3232
**CbChargeSOMDriver** (`view on GitHub <https://github.com/chargebyte/everest-chargebyte/tree/main/modules/CbChargeSOMDriver>`__)
3333

34-
This is the Hardware Abstraction Layer (HAL) for Charge SOM in EVerest. It implements
35-
the `evse_board_support <https://github.com/EVerest/everest-core/blob/main/interfaces/evse_board_support.yaml>`_
34+
This is the Hardware Abstraction Layer (HAL) for the Charge SOM in EVerest. It implements
35+
the `evse_board_support <https://github.com/EVerest/EVerest/blob/main/interfaces/evse_board_support.yaml>`_
3636
interface, enabling communication with the :code:`EvseManager` and control of the board. The EVerest community
3737
often refers to these HAL modules as BSPs, such as MicroMegaWattBSP and PhyVersoBSP. This module is
3838
essential for controlling the Charge SOM.

‎docs/source/firmware.rst‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@
66
Partitioning
77
------------
88

9-
The internal eMMC storage of a chargebyte device is divided into several partitions to support two independent systems: system A and system B. This setup enables firmware updates to run in the background while the device continues normal charging operations. Once the update is complete, the system can switch to the updated version with a reboot of the device. Additionally, this approach supports a rollback mechanism in case of update failures. In other words, during a firmware update, the active root file system switches from A to B (or vice versa), leaving the other partition available for rollback if needed.
9+
The internal eMMC storage of a chargebyte device is divided into several partitions to support two independent
10+
systems: system A and system B. This setup enables firmware updates to run in the background while the device
11+
continues normal charging operations. Once the update is complete, the system can switch to the updated version
12+
with a reboot of the device. Additionally, this approach supports a rollback mechanism in case of update failures.
13+
In other words, during a firmware update, the active root file system switches from A to B (or vice versa),
14+
leaving the other partition available for rollback if needed.
1015

1116
.. list-table:: eMMC Partitioning
1217
:header-rows: 1
@@ -34,15 +39,10 @@ The internal eMMC storage of a chargebyte device is divided into several partiti
3439
- 256 MB
3540
- Logging file system B (/var/log)
3641

37-
.. image:: ../../includes/_static/images/mountpoints.svg
42+
.. figure:: ../../includes/_static/images/mountpoints.svg
3843
:alt: Filesystem-Mountpoints
3944
:align: center
4045

41-
.. adding a center-aligned caption for the image
42-
.. raw:: html
43-
44-
<div style="text-align: center;">
45-
Filesystem Mountpoints
46-
</div>
46+
Filesystem Mountpoints
4747

4848
.. include:: ../../includes/firmware_programming.inc

0 commit comments

Comments
 (0)