This repository contains the firmware source code for all Tinkerforge products that are based on the ESP32 Brick or ESP32 Ethernet Brick. This includes WARP Chargers and WARP Energy Managers of any generation.
This is an overview of all repositories that make up the WARP Charger and WARP Energy Manager ecosystem.
Please report any issue concerning WARP hard- or software in the esp32-firmware repository, no matter which repository it originates from.
- esp32-firmware - Source code of the ESP32 firmware shared between all WARP Chargers and Energy Managers
Libraries used by the firmware:
- tfjson - SAX style JSON serializer and deserializer
- tfmodbustcp - Modbus TCP server and client implementation
- tfocpp - OCPP 1.6 implementation
- tftools - Miscellaneous tools and helpers
Remote access:
- esp32-remote-access - Source code of the my.warp-charger.com remote access server
Documentation, tools and integrations:
- warp-charger - Source code of (docs.)warp-charger.com and the printed manual, released firmwares, datasheets and documents, as well as some tools and hardware design files
- api.warp-charger.com - Serves APIs that are used by WARP Chargers to obtain relevant public information like day ahead prices
- vislog.warp-charger.com - Visualizes WARP Charger logs and EVSE debug protocols
- dbus-warp-charger - Integrates WARP Chargers into a Victron Energy Venus OS device (e.g. Cerbo GX)
Current charger generation.
- warp-esp32-ethernet-v2-brick - Hardware design files of the WARP ESP32 Ethernet Brick 2.0
- warp-esp32-ethernet-v2-co-bricklet - Firmware source code of the WARP ESP32 Ethernet 2.0 Co Bricklet (co-processor)
- evse-v4-bricklet - Hardware design files of the EVSE 4.0 Bricklet (firmware shared with the EVSE 2.0 Bricklet)
- nfc-bricklet - Firmware source code and hardware design files of the NFC Bricklet
- warp-esp32-ethernet-brick - Hardware design files of the WARP ESP32 Ethernet Brick
- evse-v3-bricklet - Hardware design files of the EVSE 3.0 Bricklet (firmware shared with the EVSE 2.0 Bricklet)
- nfc-bricklet - Firmware source code and hardware design files of the NFC Bricklet
- esp32-ethernet-brick - Hardware design files of the ESP32 Ethernet Brick
- evse-v2-bricklet - Firmware source code and hardware design files of the EVSE 2.0 Bricklet
- nfc-bricklet - Firmware source code and hardware design files of the NFC Bricklet
- esp32-brick - Hardware design files of the ESP32 Brick
- evse-bricklet - Firmware source code and hardware design files of the EVSE Bricklet
- rs485-bricklet - Firmware source code and hardware design files of the RS485 Bricklet
Current energy manager generation.
- esp32-ethernet-brick - Hardware design files of the ESP32 Ethernet Brick
- warp-energy-manager-v2-bricklet - Firmware source code and hardware design files of the WARP Energy Manager 2.0 Bricklet
- warp-front-panel-bricklet - Firmware source code and hardware design files of the WARP Front Panel Bricklet
- esp32-ethernet-brick - Hardware design files of the ESP32 Ethernet Brick
- warp-energy-manager-bricklet - Firmware source code and hardware design files of the WARP Energy Manager Bricklet
- provisioning/:
- Scripts for mass provisioning of ESP32 modules
- software/:
- build/: Compiled files will be put here
- src/: Source of the firmware, including modules
- web/: Source of the web interface, including modules
See software/README.txt for build instructions. More documentation of how the software and the build process work will follow in the future. For now in brief:
- The software is built with https://platformio.org/
- For each variation of the firmware (warp, warp2, esp32, esp32_ethernet, ...) there is a corresponding *.ini file specifying the PlatformIO environment used to build that variation. The environments mostly differ in the backend (i.e. firmware) and frontend (i.e. web interface) modules selected to be compiled into the firmware.
- Custom hooks compile the web interface from TypeScript and Sass into JavaScript and CSS, place everything in one HTML file, zip it and create a C header that is then compiled in the firmware.
- After the firmware is built in the software/build folder, the custom hooks merge the firmware, bootloader, partition table, etc into one bin file that can be flashed on the ESP32 Brick at offset 0x1000 or can be uploaded to a running WARP Charger.