Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
944537d
deprecate Arduino IDE, Visual Studio builds. VSCode/PIO only going fo…
lincomatic Feb 3, 2026
360ba17
add $FC - reset fault counters+tot energy
lincomatic Feb 4, 2026
047a756
fix compiler warnings
lincomatic Feb 4, 2026
521edf6
don't enable HEARTBEAT_SUPERVISION and RTC in header
lincomatic Feb 4, 2026
51e21fa
bug fix fault counter ovf check
lincomatic Feb 4, 2026
5de03f2
update flash.bat
lincomatic Feb 4, 2026
6c74856
don't enable RGBLCD by default
lincomatic Feb 4, 2026
b542727
remove obsolete WProgram.h
lincomatic Feb 6, 2026
a2c4946
prepare for different MCU variants
lincomatic Feb 6, 2026
37af09c
update efuse
lincomatic Feb 6, 2026
edb585d
move srec_cat.exe
lincomatic Feb 6, 2026
e1782d8
add NO_GROUND_RECORD_DELAY for CGMI
lincomatic Feb 6, 2026
99daad4
update CHANGELOG
lincomatic Feb 6, 2026
362beec
more variant prep
lincomatic Feb 6, 2026
13a0025
TEMPERATURE_THROTTLING, $FO,$GO
lincomatic Feb 19, 2026
66f05e7
comment out #define BTN_MENU
lincomatic Feb 19, 2026
f76bc11
clarify $SY
lincomatic Feb 19, 2026
15c874a
enable/disable boot lock $FF L 0|1
lincomatic Feb 19, 2026
181b7c5
added $FF O 0|1 disable overcurrent check
lincomatic Feb 20, 2026
f004230
fix ButtonIsEnabled() inverted, 16x2LCD countdown bugs
lincomatic Feb 20, 2026
ccf0927
add OG 16x2 RGBLCD build
lincomatic Feb 20, 2026
c9a056a
checkpoint - multi target samd/m328p
lincomatic Mar 13, 2026
2f6a3ec
mcuid tweak for SAMD
lincomatic Mar 13, 2026
47003d1
path the dog during GFI self test could take 3s
lincomatic Mar 13, 2026
c39dfd4
checkpoint
lincomatic Mar 13, 2026
2ca3cf3
SAMD ammeter initial cal
lincomatic Mar 16, 2026
457c46c
SAMD ammeter calc
lincomatic Mar 17, 2026
7ab2b65
Sparkfun EEPROM support for SAMD
lincomatic Mar 26, 2026
0e8cd06
Update build targets for v5/v6 hardware, bump version to D8.5.0, exte…
May 24, 2026
a5ee03c
Update CI workflows for v5/v6/SAMD build targets on linco-work branch
May 25, 2026
361871d
Update deprecated GitHub Actions to current versions
May 25, 2026
6261a56
Opt into Node.js 24 for GitHub Actions to resolve deprecation warnings
May 25, 2026
1f36c53
Remove Arduino build job — arduino/ support files not present in linc…
May 25, 2026
a3fd411
Upgrade GitHub Actions to Node.js 24-native versions
May 25, 2026
3036903
move CHANGELOG
lincomatic May 27, 2026
92be5ba
delete superfluous
lincomatic May 27, 2026
5068634
autodetect all m328p versions v4/5/6 CGMI
lincomatic May 27, 2026
fbf25d3
SetCurrentCapacity() - PP shouldn't override if nosave
lincomatic May 28, 2026
a647e76
add PP support for 12-bit ADC
lincomatic May 28, 2026
b8e0eeb
detect no PP resistor case
lincomatic May 28, 2026
9de2ae4
add EVSE_STATE_PP_SHORTED
lincomatic May 28, 2026
a9c7b6b
Fix CGMI autodetect false positive and V6 relay not firing
May 28, 2026
4e7a039
Update CI to use unified autodetect build envs
May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 4 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:
push:
branches:
- master
- linco-work
pull_request:

jobs:
Expand All @@ -18,18 +18,13 @@ jobs:

build_platform_io:
name: Build using PlatformIO
uses: OpenEVSE/open_evse/.github/workflows/build_platformio.yml@master

build_arduino:
name: Build using Arduino
uses: OpenEVSE/open_evse/.github/workflows/build_arduino.yml@master
uses: OpenEVSE/open_evse/.github/workflows/build_platformio.yml@linco-work

release:
name: Create pre-release

needs:
- build_platform_io
- build_arduino
if: github.ref == 'refs/heads/master'
if: github.ref == 'refs/heads/linco-work'

uses: OpenEVSE/open_evse/.github/workflows/release.yml@master
uses: OpenEVSE/open_evse/.github/workflows/release.yml@linco-work
6 changes: 3 additions & 3 deletions .github/workflows/build_arduino.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ jobs:

steps:
- name: Cache Arduino
uses: actions/cache@v2
uses: actions/cache@v5
with:
path: ~/.arduino15
key: ${{ runner.os }}-${{ matrix.name }}-arduino-15-${{ hashFiles('**/packages.txt') }}
restore-keys: |
${{ runner.os }}-${{ matrix.name }}-arduino-15-

- uses: actions/checkout@v2
- uses: actions/checkout@v5

- name: Setup Arduino CLI
uses: arduino/setup-arduino-cli@v1
Expand Down Expand Up @@ -70,7 +70,7 @@ jobs:
source ci/info_common.sh info.json

- name: Upload output to GitHub
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: ${{ matrix.name }}
path: |
Expand Down
55 changes: 33 additions & 22 deletions .github/workflows/build_platformio.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,44 +12,41 @@ jobs:
fail-fast: false
matrix:
include:
- env: openevse_1-8-3
- env: m328p_autodetect
python: 3.x
platformio: 6.1.5
- env: openevse_latest
platformio: 6.1.5
arch: avr
artifact: firmware.hex
- env: m328p_RTC_BTN_LCD
python: 3.x
platformio: 6.1.5
- env: openevse
platformio: 6.1.5
arch: avr
artifact: firmware.hex
- env: samd
python: 3.x
platformio: 6.1.5
- env: openevse_eu
python: 3.x
platformio: 6.1.5
- env: openevse_v6
python: 3.x
platformio: 6.1.5
- env: emonevse
python: 3.x
platformio: 6.1.5
platformio: 6.1.5
arch: samd
artifact: firmware.bin

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5

- name: Cache pip
uses: actions/cache@v2
uses: actions/cache@v5
with:
path: ~/.cache/pip
key: ${{ runner.os }}-${{ matrix.env }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-${{ matrix.env }}-pip-

- name: Cache PlatformIO
uses: actions/cache@v2
uses: actions/cache@v5
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ matrix.env }}-${{ hashFiles('**/lockfiles') }}

- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v6
with:
python-version: '${{ matrix.python }}'

Expand All @@ -61,7 +58,8 @@ jobs:
- name: Run PlatformIO
run: pio run -e ${{ matrix.env }}

- name: Get compiler and output info
- name: Get compiler and output info (AVR)
if: matrix.arch == 'avr'
run: |
NAME=${{ matrix.env }}
BUILT_TOOL="Platform IO"
Expand All @@ -72,10 +70,23 @@ jobs:

source ci/info_common.sh info.json

- name: Get build info (SAMD)
if: matrix.arch == 'samd'
run: |
BIN_SIZE=$(ls -l .pio/build/${{ matrix.env }}/firmware.bin | awk '{ print $5 }')
cat <<EOF >info.json
{
"name": "${{ matrix.env }}",
"built_tool": "Platform IO",
"arch": "samd",
"bin_size": $BIN_SIZE
}
EOF

- name: Upload output to GitHub
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: ${{ matrix.env }}
path: |
.pio/build/${{ matrix.env }}/firmware.hex
.pio/build/${{ matrix.env }}/${{ matrix.artifact }}
info.json
15 changes: 9 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,19 @@ jobs:
sudo apt-get install jq -y

- name: Download the built assets
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
path: artifacts

- name: Rename images to something more sensible
run: |
find artifacts -name '*.hex' | while read -r image; do
dir=$(dirname "${image}")
board=$(basename "${dir}")
echo mv "$image" "$board.hex"
mv "$image" "$board.hex"
for ext in hex bin; do
find artifacts -name "*.$ext" | while read -r image; do
dir=$(dirname "${image}")
board=$(basename "${dir}")
echo mv "$image" "$board.$ext"
mv "$image" "$board.$ext"
done
done
jq -s . $(find -name info.json) > build_info.json
jq -r '(map(keys) | add | unique) as $cols | map(. as $row | $cols | map($row[.])) as $rows | $cols, $rows[] | @csv' build_info.json > build_info.csv
Expand All @@ -37,5 +39,6 @@ jobs:
title: "Development Build"
files: |
*.hex
*.bin
build_info.json
build_info.csv
2 changes: 1 addition & 1 deletion .github/workflows/release_validation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:

steps:
### Check the version number in the code matches the tag number
- uses: actions/checkout@v2
- uses: actions/checkout@v5

- name: Retrieve the version number(s)
run: |
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.pio/**
kicad/**
download/**
archive/**
genrapi/**
Expand Down
32 changes: 5 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,20 @@
# OpenEVSE

Firmware for OpenEVSE controller used in OpenEVSE Charging Stations sold in the USA, and OpenEnergyMonitor EmonEVSE units sold in (UK/EU).
Firmware for OpenEVSE controller used in OpenEVSE Charging Stations.

- OpenEVSE: <https://store.openevse.com/collections/all-products>
- EmonEVSE: <https://shop.openenergymonitor.com/evse/>

Based on OpenEVSE: Open Source Hardware J1772 Electric Vehicle Supply Equipment

## USA

TODO: add notes about USA OpenEVSE

## UK/EU

- Disable `AUTOSVCLEVEL` (autodetection is designed for split-phase)
- Charging level default to `L2`
- Set `MAX_CURRENT_CAPACITY_L2 32` (limit for single-phase charging in UK/EU)
- Add '.EU' to version number
- Enable LCD Redraw every couple of min (required for EMC/CE)

### EmonEVSE

EmonEVSE (non-tethered type-2 EVSE unit)
Based on OpenEVSE: Open Source Hardware J1772 Electric Vehicle Supply Equipment

- `PP_AUTO_AMPACITY` enabled to set max current based on non-tethered cable connected
- Three-phase option with `THREEPHASE` enabled to calculate three-phase energy ( Unneeded with ESP32_WiFi firmware >= 4.2

## API Documentation

- WIFI API: <http://github.com/openevse/ESP32_WiFi_V4.x/>
- RAPI API: <https://github.com/openenergymonitor/open_evse/blob/master/firmware/open_evse/rapi_proc.h>

## Resources

- [OpenEnergyMonitor OpenEVSE Setup Guide](https://guide.openenergymonitor.org/integrations/openevse)
- [OpenEnergyMonitor OpenEVSE Shop](https://shop.openenergymonitor.com/ev-charging/)
## Resources

- [OpenEVSE Controller Datasheet](https://github.com/OpenEVSE/OpenEVSE_PLUS/blob/master/OpenEVSE_PLUS_v5/OpenEVSE_Plus_v5.pdf)
- [OpenEVSE Controller Hardware Repo](https://github.com/OpenEVSE/OpenEVSE_PLUS)
- [OpenEVSE Project Homepage](https://openevse.com)

Expand All @@ -53,7 +31,7 @@ NOTES:

`$ avrdude -p atmega328p -B6 -c usbasp -P usb -e -U flash:w:firmware.hex`

ISP programmer required e.g [USBASP](https://www.amazon.co.uk/Hobby-Components-USBASP-Programmer-Adapter/dp/B06XYV162N)
ISP programmer required

### Set AVR fuses

Expand All @@ -65,7 +43,7 @@ If writing eFuse fails ISBasp may need a [firmware update](https://www.vishnumai

***

Tip Jar: I developed/maintain this firmware on a volunteer basis. Any donation, no matter how small, is greatly appreciated.
Tip Jar: Lincomatic developed/maintain this firmware on a volunteer basis. Any donation, no matter how small, is greatly appreciated.

[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/lincomatic)

Expand Down
62 changes: 0 additions & 62 deletions arduino/1.6.15/boards.local.txt

This file was deleted.

Loading
Loading