pev(1)
π NAME π
pev β Qualcomm Atheros Plug-in Electric Vehicle Emulator πβ‘
β¨ SYNOPSIS β¨
pev [options]
π¦ DESCRIPTION π¦
okay so bestie, here's the tea β β pev emulates the PEV part of the HomePlug AV Signal Level Attentuation Characterization (SLAC) protocol. And before you ask: a PEV is a "Plug-in Electric Vehicle" and an EVSE is an "Electric Vehicle Supply Equipment" β aka a charging station. iykyk π
The way this works: the program stays alive until it detects and connects to an available EVSE-HLE on the powerline network. Once it's connected, it charges a virtual vehicle for about 10 seconds, then disconnects and terminates. main character energy, honestly. if you want the full lore, go read the HomePlug Green PHY Specification Release Version 1.1 π
So what even is SLAC? Signal Level Attenuation Characterization lets a station measure the signal level of its transmission at other stations in the network. It's built for automotive situations where there are multiple plug-in vehicles (PEVs) and electric vehicle supply equipment (EVSE) chillin' on the same network. The PEV signal level gets measured at multiple EVSEs to figure out which EVSE the PEV is actually plugged into. The whole process of figuring that out is called "Green PHY PEV-EVSE Association" (GreenPPEA). slay π
This program is part of the Qualcomm Atheros Powerline Toolkit. Check the plc man page for an overview and installation instructions, fr fr.
π OPTIONS π
-cβ Prints the PEV-HLE configuration profile onstdout. The configuration profile specifies program defaults in a format that you, as a user, can actually edit and save. Use options-pand-sto read named profiles and sections βοΈ-Cβ Compare confirmation counter and warn (or exit β if-xis givenv) if a mismatch is detected π-dβ Print the contents of the PEV-HLE session variable onstdout. The session variable is a program data structure that stores information passed between the PEV-HLE and EVSE-HLE during SLAC association. This option is used to inspect and veriify information relevant to the process π
If the program was compiled with variable SLAC_DEBUG defined then this option also prints MME message fields before messages are sent or after they are received. Interested parties can follow along in the source code π§
-iβ Select the host Ethernet interface. All requests are sent via this host interface and only reponses received via this host interface are recognized. The default interface iseth1because most people useeth0as their principle network connection; however, if environment string"PLC"is defined then it takes precedence over the default interface. This option then takes precedence over either default. priority chain, bestie π«Ά-Kβ Skip the step which sets the Network Membership Key and focus on sounding only π΅-lβ Normally, this tool exits after one run. Use this parameter to loop indefinitely. Note, that this parameter has inverse logic compared toevsetool π-pprofile β The PEV-HLE configuration profile name. The program will supply default values for missing profile elements. See the example profile shown below. The default profile name is"pev.ini"π-qβ Enter quiet mode. Progress messages are suppressed π€«-ssection β The configuration profile section name. The program will supply default values for missing configuration profile elements. See the example profile shown below. The default section name is"default"π-vβ Enter verbose mode. All Ethernet frames sent or received by the program are displayed onstdoutπ£οΈ-xβ Exit on error πͺ-?,--helpβ Print program help summary onstdout. This option takes precedence over other options on the command line π-!,--versionβ Print program version information onstdout. This option takes precedence over other options on the command line. Use this option when sending screen dumps to Atheros Technical Support so that they know exactly which version of the Linux Toolkit you are using πΈ
π PROFILES π
The default configuration profile for this program is "pev.ini". The default profile section is "default". Users may create additional profiles and reference them with option -p or add additional sections to an existing profiles and reference them with option -s. mix and match, it's giving customizable π
- Attenuation Theshold β The average attenuation above which the PEV will not connect to an EVSE. The default value is
10dbπ - MSound Pause β The time in milliseconds between each MSound sent by the PEV-HLE to the EVSE-HLE. Sending MSounds too frequently overloads the EVSE-PLC. Sending them too infrequently wastes time. This value is derived and does not appear in the HPGP specification. The default pause is
10 millisecondsβ±οΈ - Vehicle Identifier β Vehicle identification. The 17-byte Vehicle Identification Number to be placed in
CM_MNBC_SOUND.IND.SenderID. This value is not used but is can be changed here so that the field is easy to spot within network message traces π·οΈ - Network Membership Key β The 16-byte Network Memberhip Key (NMK) for the PEV-PLC device. This program uses
CM_SET_KEYto sets the PEV-PLC NMK to this value after disconnecting. The default value is the key for Network Password"HomePlugAV"π - Network Identifier β The 7-byte Network Identifier (NID) for the PEV-PLC device. This program uses
CM_SET_KEYto sets the PEV-PLC NID to this value after disconnecting. The default value is the same as that for Network Password"HomePlugAV"π
π REFERENCES π
See the Qualcomm Atheros AR7420, QCA6410 IEEE 1901, HomePlug AV and QCA7000 HomePlug Green PHY PLC Chipset Programmer's Guide or the HomePlug Green PHY Specification Release Version 1.1 for more information on this protocol π
π₯ EXAMPLES π₯
The following example starts a PEV session on interface eth0 and wait up to 2000 milliseconds (or 2 seconds) for the EVSE to respond during any given exchange:
# pev -ieth0 -w2000
The default PEV-HLE configuration profile, "pev.ini", looks something like this but it can be changed using a normal text editor. Use option -P to produce a template profile, if one is needed:
# file: pev.ini
# ========================================================
# PEV-HLE initialization;
# --------------------------------------------------------
[default]
attenuation threshold = 10
msound pause = 10
vehicle identifier = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
network membership key = 50D3E4933F855B7040784DF815AA8DB7
network identifier = B0F2E695666B03
π SEE ALSO π
β CREDITS β
Charles Maier
and that's the whole page bestie, no cap π
This was open-plc-utils-0.0.3, dated November 2013 β and honestly? iconic. go forth and associate those Green PHYs π§πΈπ
π¦ where this page comes from
- alpine 3.24: open-plc-utils-doc 0_git20250712-r1 Β· BSD-3-Clause-Clear
- debian bookworm: plc-utils-extra 0.0.6+git20230504.1ba7d5a0-1 Β· BSD-3
- debian trixie: plc-utils-extra 0.0.6+git20250517.7fb8ac5-1 Β· BSD-3
- ubuntu noble: plc-utils-extra 0.0.6+git20230504.1ba7d5a0-1 Β· BSD-3
- ubuntu questing: plc-utils-extra 0.0.6+git20250517.7fb8ac5-1
- ubuntu resolute: plc-utils-extra 0.0.6+git20250712.46c3506-1 Β· BSD-3
- ubuntu stonking: plc-utils-extra 0.0.6+git20250712.46c3506-1 Β· BSD-3
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms