Hardware driver modules are located in
modules/HardwareDrivers/ with subdirectories for each device category.Hardware Driver Categories
EVSE BSPs
Board support packages for charging hardware control
Power Meters
Energy measurement and billing devices
Power Supplies
DC power supply modules for DC charging
Isolation Monitors
Insulation monitoring for DC safety
NFC Readers
RFID/NFC authentication devices
Payment Terminals
Payment processing hardware
EVSE Board Support Packages
BSP modules implement theevse_board_support interface for low-level hardware control:
Yeti Driver
The YetiDriver is the reference BSP for Pionix YETI hardware. Location:modules/HardwareDrivers/EVSE/YetiDriver/
Serial port the Yeti hardware is connected to
Serial baud rate (9600-230400)
GPIO chip for hardware reset. Empty string disables reset.
GPIO line number for Yeti reset
Override minimum current. -1 = use hardware-reported limit.
Override maximum current. -1 = use hardware-reported limit.
powermeter- Internal power meterboard_support- BSP interface (CP, relays, lock)rcd- Onboard RCD interfaceconnector_lock- Motor lock interface
Other BSP Modules
MicroMegaWattBSP
MicroMegaWattBSP
Board support for MicroMegaWatt charging hardwarePath:
modules/HardwareDrivers/EVSE/MicroMegaWattBSP/PhyVersoBSP
PhyVersoBSP
BSP for PhyVerso development platformPath:
modules/HardwareDrivers/EVSE/PhyVersoBSP/AdAcEvse22KwzKitBSP
AdAcEvse22KwzKitBSP
Analog Devices AC EVSE reference designPath:
modules/HardwareDrivers/EVSE/AdAcEvse22KwzKitBSP/TIDA010939
TIDA010939
Texas Instruments EVSE reference designPath:
modules/HardwareDrivers/EVSE/TIDA010939/Power Meters
Power meter modules implement thepowermeter interface for energy measurement.
Generic Powermeter
The GenericPowermeter supports various Modbus power meters through configuration files. Location:modules/HardwareDrivers/PowerMeters/GenericPowermeter/
Powermeter configuration file selectorAvailable models:
test_dummy- Simulated meter for testing- Various manufacturer-specific configs
Modbus device address (1-247)
Base address for Modbus register access (0-65535)
serial_communication_hub interface
Example:
Supported Power Meters
ABB B23
ABB B23
ABB B23 series energy meterPath:
modules/HardwareDrivers/PowerMeters/ABB_B23/Carlo Gavazzi EM580
Carlo Gavazzi EM580
Carlo Gavazzi EM580 seriesPath:
modules/HardwareDrivers/PowerMeters/CarloGavazzi_EM580/Acrel DJSF1352-RN
Acrel DJSF1352-RN
Acrel DJSF1352-RN DC meterPath:
modules/HardwareDrivers/PowerMeters/Acrel_DJSF1352_RN/DZG GSH01
DZG GSH01
DZG GSH01 grid meterPath:
modules/HardwareDrivers/PowerMeters/DZG_GSH01/AST DC650
AST DC650
AST DC650 DC power meterPath:
modules/HardwareDrivers/PowerMeters/AST_DC650/DC Power Supplies
DC power supply modules implement thepower_supply_DC interface for DC fast charging.
Supported DC Power Supplies
Huawei R100040Gx
Huawei R100040Gx
Huawei R100040Gx DC module (40kW)Path:
modules/HardwareDrivers/PowerSupplies/Huawei_R100040Gx/Features:- Up to 1000V output
- 40kW continuous power
- CAN bus communication
Huawei V100R023C10
Huawei V100R023C10
Huawei V100R023C10 seriesPath:
modules/HardwareDrivers/PowerSupplies/Huawei_V100R023C10/DPM1000
DPM1000
DPM1000 DC power modulePath:
modules/HardwareDrivers/PowerSupplies/DPM1000/InfyPower
InfyPower
InfyPower DC charging modulesPath:
modules/HardwareDrivers/PowerSupplies/InfyPower/Power Supply Configuration Example
Isolation Monitors
Isolation monitoring devices (IMDs) are required for DC charging per IEC 61851-23.Bender isoCHA425HV
Bender isolation monitor for high-voltage DC charging. Location:modules/HardwareDrivers/IsolationMonitors/Bender_isoCHA425HV/
Features:
- Isolation resistance measurement
- Self-test capability
- Required for DC cable check
- Typically needs 10s for stable reading
DoldRN5893
Dold RN5893 isolation monitoring device. Location:modules/HardwareDrivers/IsolationMonitors/DoldRN5893/
NFC/RFID Readers
NFC reader modules implement theauth_token_provider interface for contactless authentication.
PN532 Token Provider
PN532-based NFC/RFID reader for ISO14443A cards. Location:modules/HardwareDrivers/NfcReaders/PN532TokenProvider/
Features:
- Mifare Classic/Ultralight
- ISO14443A Type 1-4 cards
- UID reading for authorization
NXP NFC Frontend
NXP-based NFC frontend token provider. Location:modules/HardwareDrivers/NfcReaders/NxpNfcFrontendTokenProvider/
Complete Hardware Stack Example
AC Charging Station
DC Charging Station
Serial Communication Hub
Many hardware drivers require serial communication. Use theSerialCommHub module:
Hardware Interface Reference
evse_board_support
Provides:setup()- Initialize hardwareset_pwm()- Control CP PWM duty cycleset_relais()- Control contactorsget_capabilities()- Report hardware limitsget_voltages()- Read voltage measurements
powermeter
Provides:get_powermeter()- Read power, energy, voltage, currentstart_transaction()- Begin energy measurement sessionstop_transaction()- End session and get total energy
power_supply_DC
Provides:setMode()- Export or Import modesetExportVoltageCurrent()- Set output voltage and currentgetCapabilities()- Query min/max voltage, current, power
isolation_monitor
Provides:start()- Begin isolation monitoringstop()- Stop monitoringself_test()- Perform self-test
Developing Custom Drivers
Creating a BSP Module
- Create module directory:
modules/HardwareDrivers/EVSE/MyBSP/ - Define manifest.yaml: Specify config and interfaces
- Implement interface: Inherit from
evse_board_supportImplBase - Register module: Add to CMakeLists.txt
Template Structure
Troubleshooting
Serial Port Permission Denied
Serial Port Permission Denied
Modbus Communication Fails
Modbus Communication Fails
- Verify baud rate matches device
- Check parity, data bits, stop bits
- Verify device address (1-247)
- Test with modbus polling tool
- Check RS485 termination resistors
Power Meter Not Responding
Power Meter Not Responding
- Verify serial connection and wiring
- Check modbus_base_address configuration
- Ensure SerialCommHub is configured correctly
- Test device with external Modbus tool
DC Power Supply Not Starting
DC Power Supply Not Starting
- Verify CAN bus termination
- Check CAN interface is up:
ip link show can0 - Review power supply error codes
- Verify voltage/current limits are within capabilities
Best Practices
USB Serial Devices: Use udev rules to create persistent device names instead of
/dev/ttyUSB0 which can change.Power Meters: Use car-side power meters for billing when available - they’re more accurate than grid-side meters.
Related Modules
EvseManager
Connects to hardware drivers
Authentication
Uses NFC reader token providers
Energy Management
Consumes power meter data
Additional Resources
- EVerest Hardware Repository
- Yeti Hardware Documentation
- IEC 61851-1: AC charging requirements
- IEC 61851-23: DC charging requirements
Source Code Reference
modules/HardwareDrivers/EVSE/- BSP implementationsmodules/HardwareDrivers/PowerMeters/- Power meter driversmodules/HardwareDrivers/PowerSupplies/- DC supply driversinterfaces/evse_board_support.yaml- BSP interface definitioninterfaces/powermeter.yaml- Power meter interface