forked from lincomatic/open_evse
-
Notifications
You must be signed in to change notification settings - Fork 77
/
CHANGELOG
965 lines (766 loc) · 36.3 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
Change Log
20220124 V8.2.0 SCL
- don't convert 0x01 in $FP strings to <SPC>, because it filters out STOP icon
-> just send 0x11 as space instead. prints as <SPC> on HD44780
- bump RAPIVER to 5.2.1
- change index of delay timer CLOCK icon from 0 -> 6, because otherwise, it can't be displayed via $FP
- fix bug, wasn't overriding OBD::updatesDisabled() during fault state
20220119 SCL
- changes to facilitate PlatformIO builds
-> #defines that apply to Arduino IDE builds should be kept out of the #ifndef PLATFORMIO block in open_evse.h
20220107 SCL
- set ECF_AUTO_SVC_LEVEL_DISABLED when !AUTOSVCLEVEL
20211216 SCL V8.1.1
- reset elapsed time when car plugged in
- J1772EvseController::Update() - just call ReadPilot() once at the top of function
-> previously had ReadPilot() sprinkled around to try to avoid reading when not needed to save CPU cycles -> probably not necssary
20211216 SCL V8.1.0
- merged in mennekes branch
- change version number
20211201 SCL V8.1.0a
- added ECVF_TIMER_ON so we don't have to poll to test if delay timer is on
- revamp MENNEKES_LOCK
-> auto mode: locked when EVSE connected, unlocked when disconnected
-> to implement this, need to get rid of states were pilot = N12, because
we can't detect connection state
-> don't ever set pilot to N12, even in fault states. only set to N12
in EVSE_STATE_DISABLED
-> always automatically unlocks in EVSE_STATE_DISABLED, even if
in manual mode
-> add recoverable parameter to HardFault()
-> add volatile manual mode - when enabled, Mennekes lock is under full manual
control
-> add S5/G5 RAPI commands to set/fetch Mennekes settings
-> ECVF_MENNEKES_MANUAL also reflects auto/manual mode
- RAPIVER 5.2.0
- usurped ECVF_AMMETER_CAL with ECVF_MENNEKES_MANUAL, so the code is currently turned off
20211201 SCL V8.0.0d
- more refinements to CGMI - POST stuck relay check
20211128 SCL V8.0.0c
- fixed bugs in CGMI code
20211123 SCL V8.0.0a
- acpinstate: added ACPINx_OPEN
- first cut for CGMI - continuous GMI support:
-> PD4: at any time, if PD3 is low, declare EVSE_STATE_NO_GROUND.
-> PD3: we will read it only when we think the relay should be open. If we detect a low state on PD4 when the relay is supposed to be open, go to EVSE_STATE_STUCK_RELAY. This is exactly the current behavior, except that we only monitor one pin.
- take out SAMPLE_ACPINS #ifdef.. always sample
- added INVERT_V6_DETECTION: DO NOT USE
-> only enabled for lincomatic's beta V6 board
2021119 SCL V7.1.6
- fixed bug - RAPI $GI was implemented as $SI
- fixed bug, $GI was returning $OK $GI xxx
2021119 SCL V7.1.5
- added RAPI $GI command to get AVR serial number. enable with MCU_ID_LEN
20210911 SCL V7.1.4
- fixed minor bug.. temperature checking was only being done in STATE C. So
if temperature dropped below the restore threshold after transition out of
STATE C, the current capacity wasn't restored until the next transition into
STATE C. Didn't affect actual charging current, but just looked strange to users
202100311 SCL V7.1.3
- flip polarity of V6 detection .. HIGH = V6
202100208 SCL V7.1.2
- fix spontaneous reboot caused by PR#134 RAPI_BTN code
-> when button disabled, didn't pat the watchdog before m_Btn.read()
- change space character for $FP from 0x01 to 0xef so that it doesn't clash
with custom characters
20210111 SCL V7.1.1
- added ECVF_TIME_LIMIT, ECVF_CHARGE_LIMIT
- move ECVF_AMMETER_CAL to 0x8000
- revamp RapiSendEvseState()
- send if ECVF_CHANGED_TEST bits change
- don't send if currently inside a RAPI command, send it after command is completed
- $FP changes
- allow spaces in strings: if 0x01 encountered in a string, print as ' ' on LCD - ignore print request when InHardFault()
20210105 SCL V7.1.0
- merge PRs from jeremypoulter & toofishes
- Avoid using floating point in heartbeat code
- Compile & Platform IO fixes
- Added eventing of button presses RAPI $AN
- re-enable RAPI_WF by default
20201209 toofishes
- various code size optimizations for a smaller binary
- recode energy meter usage calculation for better accuracy using integer math
- remove Time.h and Time.cpp libraries, not needed as we track time in other ways
- remove SERIALCLI, it hasn't been maintained in years and is replaced by RAPI
- avoid using floating point in heartbeat code to save 600+ bytes of Flash
20201001 SCL
- move MV_FOR_xx from EnergyMeter.h to openevse.h, and outside of KWH_RECORDING
to fix compile error when KWH_RECORDING not defined
20200816 SCL V7.0.2
- get rid of LoadThresholds()/g_DefaultThreshData to save space
-> fixes a bug that crept in to DoPost() when I changed hardcoded value to
if (reading >= m_ThreshData.m_ThreshAB) {
-> was testing against m_ThreshData before initializing it, so the code was executing, even when an EV connected
- fix compiler warning in SetupMenu::Select()
20200507 SCL V7.0.1
- added $SV
20200507 SCL V7.0.0
changes 20200411 merged from oev6 branch
- added OpenEVSE V6 support
- detection by looking for PD7 LOW
- RELAY_PWM - close relay w/ DC and the switch to PWM for hold
- if not V6 hardware detected same behavior as before on charging pin
- added $SC M to set max hardware current capacity. Can be written only once
N.B. AUTODETECT OF PRE-V6 HARDWARE IS CURRENTLY BROKEN PENDING NEW SPIN OF V6
D6.3.0 2020420 SCL
- merge $SC M code from oev6 branch
- merge PR#120
20200330 SCL
- fixed SetAmmeterDirty(1) compile error
D6.2.1 20200327 SCL
- doPost() - don't compare against hardcoded 900 .. use ThreshAB
- send $AT during sleep if EV connect/disconnect
D6.2.0 20200327 SCL
- fix 1 sec delay in showing current when charging starts
- make space by taking stuff out of button menu that is still accessible via WiFi NOSETUP_MENU
- add RAPI $FF B to enable/disable front button
- fix bug in $AT.. was supposed to send GetCurrentCapacity(), not GetMaxCurrentCapacity()
- change $GC .. new 4th returned parameter is max current capacity
- bump RAPIVER to 5.1.0.
-> n.b. shouldn't really be using RAPIVER.. should just test for working
commands and # returned parameters
D6.1.3 20191217 SCL
- fix bug in displaying lock icon in SLEEP
- update EVSE status after receiving $S4 command
- merge PR109 HEARTBEAT_SUPERVISION code by Tim Kuechler
D6.1.2 20191216 SCL
- fix bug in relay opening delay code for SLEEP state - wasn't reading/comparing charging current correctly.. was always reading too low, so would instantly open the contactor
- change SLEEP delay threshold current from 3A -> 1A
20191215 SCL
- added #ifndef VERSION around #define VERSION
D6.1.1 20191215 SCL
- display auth lock status on LCD in disabled & sleeping states
D6.1.0 20191003 SCL
- if AUTH_LOCK != 0 or using hardware lock pin, always lock automatically in
State A
20190822 SCL
- for consistency/safety sake, force reboot after exiting Setup menu
20190709 SCL
- turn on RAPI_WF -> makes sketch too big for AVR build tools 1.6.15
-> testing v1.6.23, which builds sketch 32574 bytes and uses RAM 1570 (2 bytes less than 1.6.15)
- turn off OCPP by default
- N.B.: With current default settings, sketch is too big when built with AVR build tools v1.6.15. Can turn off RAPI_WF to reduce size, or use v1.6.23, which builds a sketch that fits - FOR TESTING ONLY
20190703 SCL
- change OEII voltage defaults to lincomatic's from CraigK's
D6.0.0 20190626 SCL
- added code to facilitate OCPP support
- RAPI changes that may render code incompatible w/ existing clients
-> see $AB, $AT, $GS
-> $AB async notification sent at boot
-> $AT replaces $ST async notification
-> $GS has new extra parameters, and first parameter, state,
is now HEX instead of DEC, for consistency with $AT
-> sequence ID always enabled
-> $FF command always enabled, deprecating old redundant commands
-> $WF enabled only if RAPI_WF defined
-> get rid of RAPI_RESPONSE_CHK define.. always enabled
- J1772EvseController -> expand m_bVFlags to m_wVFlags, get rid of m_bVFlags2,
clean up flag setting/clearing/testing code
-> added ECVF_UI_IN_MENU... flag is set/unset when in/out of UI menus..
$AT is sent on transition
-> bump RAPIVER to 5.0.0
D5.2.0 20190329 SCL
- change $GS to return state(hex) elapsed(dec) pilotstate(hex)
- get rid of async notification $ST - always send $AT
D5.1.0 20181109 SCL
- change session time & charge limits to be absolute instead of extending the current session. e.g. already charged 2kWh.. set limit to 3kWh ... stop @ 3kWh instead of 5kWh
D5.0.1 20181018 SCL
- fix Issue #94. Overcurrent caused lockup. Merge fixes from test1 branch
20180823 SCL
- merged PR#94: doesn't affect functionality, only to correct compile errors on minimal builds
20180724 SCL
- added RELAY_AUTO_PWM code - not tested - needs PWM-capable pin to function
20180523 SCL
- when RTC not defined, g++ bug pops out:
open_evse:2384: error: unable to find a register to spill in class 'NO_REGS'
-> add GPPBUGKLUDGE
D5.0.0 20180518 SCL
- implement $F1 RAPI command to simulate front panel short press
- SAFETY: don't allow $SC to raise current capacity during over temperature event
- SAFETY: SetCurrentCapacity() -> when nosave set, don't allow current capacity to be
raised above EEPROM value
-> don't allow $SC with V to raise current capacity above value in EEPROM
-> don't allow PP to set current capacity higher than EEPROM
- PP code cleanup
- don't allow SetCurrentCapacity() to go above PP value
- implement over current protection. if OVERCURRENT_THRESHOLD is set,
then if EV draws >= OVERCURRENT_THRESHOLD amps for >=
OVERCURRENT_TIMEOUT ms -> hard fault
20180417 SCL
- fix compile errors when no GFI and ADVPWR. Must also undef UL_COMPLIANT,
GFI_SELFTEST, AUTOSVCLEVEL
20180406 SCL
- fix compile error when AMMETER not defined
20180404 SCL
- get rid of deprecated/superfluous PP_TABLE_TESLA
- don't let delay timer override EVSE_STATE_DISABLED
D4.13.0 20180403 SCL
- revert change from D4.12.0: delay timer would always wait for EV finish charging before ending.
-> timer will go to sleep at end of specified time window unless charge or time limit set -> charge or time limit will still override timer end.
- cleanup of time/charge limit zeroing code
20180328 SCL
- fixed bug: $ST command would clear timer instead of setting it if all
4 parameters had leading zeros
e.g. $ST 01 05 02 01
20180323 SCL
- added PERIODIC_LCD_REFRESH_MS code for Glyn Hudson, currently disabled
-> redraw of LCD at periodic intervals, in case it gets corrupted
-> was needed for him to get past CE EMC testing
20180313 SCL
- merge PR#83 THREEPHASE from Glyn Hudson
- related code cleanup
D4.12.3 20180209 SCL
- display HIGH TEMP and turn LCD red during over temp event and keep display that way until button press or EV disconnected. No change to display during overtemp panic, which causes hard fault
D4.12.2 20180206 SCL
- revamp time limit code to base on seconds instead of millis(). time limit
fix in D4.12.1 was completely wrong. in existing code time limit was
getting reset every time entering sleep state
D4.12.1 20180206 SCL
BUGGY DO NOT USE
- time limit - used to be total length of charge session
-> now, setting *extends* total charge session time
- charge limit - used to be total kWh of charge session
-> now, setting *extends* total charge session kWh
D4.12.0 20180206 SCL
- restructure skip limits code
- don't allow RAPI to set charge/time limits when not allowed ($SH/$S3)
-> return $NK if not allowed
- add new clock icon for time limit
- delaytimer changes/fixes:
fixes problems when delay timer enabled:
a) press sleep button during timer charging session -> would not stay sleeping.. wakes up again instantly
-> fixed: stays sleeping w/ timer temporarily disabled until end of timer awake interval or EV disconnected.. then timer re-enabled automatically
b) wake up EVSE between timer sessions, set time or charge limit -> EVSE goes into READY state after EV disconnected
-> fixed.. stays sleeping with timer enabled after EV disconnected
c) timer is near end of charging session window.. plug in car, set time or charge limit which requires EV to charge beyond timer's charging session -> timer can kick in and stop charging even though charge/time limit not met
-> fixed.. EVSE wont' stop charging until charge/time limit met. timer temporarily disabled until limit met or EV is unplugged
code changes:
1) don't save EVSE settings when enable/disable (why were we doing that???) - to save life of EEPROM
2) don't save EVSE settings when setting start/end time (why were we doing that???) - to save life of EEPROM
3) when timer enabled and manualoverride, don't wake from sleep after time/charge limit reched and EV disconnected
4) don't CheckTime() in Enable() - superfluous
5) if wake from sleep via short press, temporarily disable timer (ManualOverride) until EV disconnected or if short press back to sleep, enable timer again. while timer temporarily disabled, timer icon no longer shown on LCD
-> lets charge start before normal timer start, and run until EV fully charged, even if timer stop time reached
-> if already charging, short press sleep/wake allows charge to proceed past normal timer stop time. timer re-enabled at end of charging or EV disconnect
6) if charge/time limit set or cancelled while timer enabled, timer temporarily disabled until limit reached or EV disconnected or short press sleep
7) don't need skip SetLimitSleep() @ end of charge/time limit if timer turned on ... new code will automatically make it sleep again after wake when EV disconnected
D4.11.1 20180108 SCL
- add wdt_delay() .. use instead of delay() when delay is > watchdog timer
-> actually, OK to use everywhere
D4.11.0 20171207 SCL
- rewrite Gfi::SelfTest() so that it doesn't hang when the test pin has hardware failure
- clear elapsed charging time only when EV is disconnected and then reconnected (previously would reset every time charging stopped)
D4.10.4 20171121 SCL
- rewrite KWH_RECORDING code - class EnergyMeter
-> fix usage counting bug.. was erroneously assuming 1sec intervals
D4.10.3 20171114 SCL
- fix bug: couldn't set Max Current to odd maximum.
-> change Max Current menu to increment by 1A instead of 2A per button press
D4.10.2 20171027 SCL
- don't write to EEPROM when calling SetCurrentCapacity() in SetSvcLevel()
20171018 SCL
- get rid of MIN_CURRENT_L2/L1 -> use MIN_CURRENT_J1772
20171010 SCL
- $SC remove bad code (*tokens[2] = 'N') ( should have been ==, not =)..
was working properly, anyway, but didn't care what character was
specified. just remove the clause altogether, and allow any 3rd
arg to make current capacity volatile
- change $SC doc to [V] (volatile) instead of [N] for not saving to EEPROM
20170922 SCL
- change "Resetting..." to "Restarting..."
vD4.10.1 20170921 SCL
- move inline string "Resetting" to strings.h/cpp
vD4.10.0 20170817 SCL
- change TMP007 temperature was showing up as 230 when not installed.
- also, temperature for other devices was 0 when not installed, but 0 is a
valid temperature
-> change all default temps to TEMPERATURE_NOT_INSTALLED (currently
-2560)
-> bump up RAPI version to 4.0.1
- when sleeping, and EV connected, set LCD backlight to white instead of violet
- platformio compatibility - all code in open_evse.ino moved to open_evse.cpp to avoid bug in platformio's .ino munger that causes phantom compiler warnings (SVC_LVL_MNU_CNT redefined)
-> I wonder if this really works to avoid bugs.. doesn't pio still
munge the CPP files, as well?
vD4.9.1 20170811 SCL
- added RAPI_FF - adds RAPI $FF command and deprecates all other enable/disable
commands, i.e. SD/SE/SF/SG/SR/SV
-> RAPIVER = 4.0.0
- $FF T 0|1 enable/disable temperature monitoring
- get rid of $S0 entirely, since it was half-baked and part of TEMPERATURE_MONITORING_NY
vD4.8.1 20170810 SCL
- fix buffer overflow bug in EvseRapiProcessor::tokenize() - limit tokenCnt to
ESRAPI_MAX_ARGS
vD4.8.0 20170726 SCL
- RAPI $SO 0 0 disables temperature checking
- added RAPI $GD - get delay timer
vD4.7.2 20170725 SCL
- when setting charge/time limit via RAPI, display would not update lightning or clock icon
vD4.7.1 20170725 SCL
- fix bug in Service Level menu.. + sign would shift when AUTOSVCLEVEL enabled
vD4.7.0 20170504 SCL
- version number was wrong.. update from D4.6.1 -> D4.7.0
- doesn't make any difference, but improve readability
Adafruit_TMP007::readObjTempC10() was returning NAN instead of 0
when sensor not installed. Change to return 0
vD4.7.0 20170124 SCL
- check for proper tokenCnt $FB & $FP
- add RAPI $F0 - enable/display LCD update
vD4.6.0 20170119 SCL
- get rid of superfluous loopcnt arg in ReadPilot()
- fix problem with AUTH_LOCK - Tesla didn't like PWM when locked. Turn
off PWM when locked
- added AUTH_LOCK_REG code - for hardware auth lock via hardware pin
- added RAPI $G0 - get EV connect state
vD4.5.1 20161214 SCL
- minor #ifdef code cleanup
- fix bug in service level menu when AUTOSVCLEVEL not defined
vD4.5.1 20161213 SCL
- fix broken watchdog when compiling with AVR 1.6.10+. optimizer was
eliminating wdt_init(), so we add "used" attribute to it
- Adafruit_TMP007.cpp - fix 1.6.10+ compiler warning
- turn on RAPI_SEQUENCE_ID by default
- compile with AVR board support 1.6.10+ from now on to save 2K+ code space
if using an older compiler and output is too big,
disable RAPI_SEQUENCE_ID
20161212 SCL
- fix compile errors when GFI not defined
- fix compile errors when AUTH_LOCK && !RAPI
- protect some AMMETER code
vD4.5.0 20161209 SCL
- added STATE_TRANSITION_REQ_FUNC #ifdef
- added AUTOSVCLEVEL #ifdef
- heavily revamped RAPI code
- fix RAPI_I2C lock up issue
- add RAPI sender & sequence id support
when RAPI_SEQUENCE_ID is enabled, an optional sequence ID may be inserted
into RAPI commands. The corresponding RAPI response will echo the
sequence ID, making it possible to determine the origin of each
RAPI response - makes it possible to detect RAPI commands that weren't
received by the target
vD4.4.0 20161209 SCL
- minor code cleanup. also fix some compile errors when certain features disabled
- added AUTH_LOCK code
charging access control for RFID readers, etc
if AUTH_LOCK defined, enables RAPI G4/S4 commands
to enable/disable charging function
if AUTH_LOCK_REG/IDX are also defined, then a hardware pin is
used to control access, rather than RAPI
vD4.3.3 20160714 SCL
- remove duplicate RAPI $SS command (use $SF instead)
vD4.3.2 20160623 SCL
- $SC returns current
20160620 SCL
- add optional N parameter to $SC
vD4.3.1 2016030 SCL
- merge PR#57 - only set backlight when needed on overtemp
- don't clear g_WattSeconds in Sleep()
vD4.3.0 2016030 SCL
- charge & time limit are no longer mutually exclusive. If user sets both, the
first one that's met will terminate the charge
-> slight bug: due to having both icons on the screen, the text for
"Connected" is slightly cut off if both are set ("Connecte")
vD4.2.3 20160307 SCL
- GFCI hard fault display SERVICE REQUIRED instead of EVSE ERROR
- OnboardDisplay::Update() .. need to override with OBD_UPD_HARDFAULT during
hard fault in case it's called outside of J1772EvseController::HardFault() during a hard fault
vD4.2.2 20160304 SCL
- waiting for relay opening on sleep transition, also test current draw
vD4.2.1 20160303 SCL
- added MENNEKES_LOCK code for supporting lock pin motor on Mennekes (IEC 62196) type 2 socket
vD4.1.1 20160225 SCL
- merged jamyrb's framework for supporting different languages
Thanks, Joakim!
20160209 SCL
- cleanup of MIN_CURRENT_CAPACITY - added MIN_CURRENT_CAPACITY_J1772
vD4.1.0 20160201 SCL
- RAPI v2.0.1: add XOR checksums to async messages
vD4.0.2 SCL 20160131
- update PP_TABLE_TESLA to include all possible values
- when charging, and PP_AUTO_AMPACITY defined, display currentdraw:currentcapacityA
instead of just currentdrawA
vD4.0.1 SCL 20160130
- fix bug in AutoSetCurrentCapacity() - wasn't breaking out of for loop when match found, so it would only set the minimum current
- PP: reset current to default max when returning to STATE A
- added GetMaxCurrentCapacity()
- fix bug in TEMPERATURE_MONITORING - was assuming that EEPROM contained a valid value in EOFS_CURRENT_CAPACITY_Lx - if not then current was getting set to FF after a temperature event was reset
vD4.0.0 SCL 20160125
- RAPI wasn't always properly returning $NK when receiving invalid/badly formed commands ... fix it.
- added RAPI_RESPONSE_CHK - appends XOR check byte to RAPI responses.
updates RAPI version to 2.0.0. May break
existing client code - turn off to disable
- added StateTransitionReqFunc and m_PilotState to allow external code to hook into state transitions due to pilot changes
- added PP_AUTO_AMPACITY - needs more testing and appropriate threshold tables
- turn off by default TMP007_IS_ON_I2C to save memory
vD3.11.3 SCL 20160125
- replace Adafruit_MCP9808 with new MCP9808 code
- fix bug handling negative temperatures from MCP9808
vD3.11.2 SCL 20160120
- fix error displaying negative temperatures... extra - sign leading decimals when negative temperature
vD3.11.1 SCL 20160120
- fix bug in handling negative temperatures from DS3231
vD3.11.0 SCL 20160112
- added RAPI_I2C. Serial RAPI now enabled by RAPI_SERIAL.
*WARNING* RAPI_I2C not tested yet and probably doesn't work
both RAPI_I2C and RAPI_SERIAL may be enabled simultaneously
- call RapiSendEvseState() if POST error
- fix bug, wasn't calling RapiSendEvseState() if HardFault()
- in J1772EvseController::Init() - call RapiSendCommand() with EVSE_STATE_UNKNOWN
SCL 20160111
- change VOLT_PIN to PILOT_PIN
SCL 20151211
- change static inline to inline for wiresend/wirerecv() to fix compiler error
in Arduino 1.6.6
SCL 20151125
- added i2caddr.h
- take Wire.begin() out of RTClib.cpp
vD3.10.4 SCL 20151110
- update version number
SCL 20151022
- added SERDBG - decouple serial diags from SERIALCLI
SCL 20151019
- slight tweak to RTClib.cpp compiler warning fix in 3.10.2
vD3.10.3 CWK 20151018
- Correcting accumulating kWh and resetting Wh going in and out of sleep state
vD3.10.2 SCL 20151017
- lots of changes to get rid of 1.6.5 compiler warnings(More)
- wmcbrine PR 48: more code shrinking from - manually merged
vD3.10.1 SCL 20151017
- merge PR 47 from wmcbrine
- faster ulong_sqrt()
- code saving tweaks to u2a() & SaveSettings()
vD3.10.0 SCL 20151017
- fix compile error caused by include for LiquidCrystal_I2C.h
vD3.10.0 SCL 20151012
- fix bug introduced by diode check state oscillation fix in D3.9.9 - if
transition to sleep while charging, on sleep exit would go into VENT REQ error
-> if pilot voltage in State C range, but PWM off, go to State B
this is an added safety feature, because State C should never be allowed
when PWM is off
- fix bug: if enter sleep mode due to time/charge limit met, sleep should
automatically be cancelled when car disconnected but it was staying in sleep
vD3.9.10 CWK 20150920
- GFI Self Test Duty Cylce restored to 50%
vD3.9.9 CWK/SCL 20150914
- fix diode check state oscillation bug (cwk/scl)
- hard fault on vent required (scl)
- setup() - increase I2C device delay from 200 -> 400ms (cwk) for Danny ter Haars board
- code cleanup of temperature monitoring to save 62 bytes
vD3.9.8 CWK 20150912
- fix Temperature Monitoring, broken by accident in D3.9.5
The original users amperage level is restored properly after an event.
vD3.9.7 SCL 20150905
- raise OpenEVSE temperature thresholds +10C to match OE-II
SCL 20150905
- fix compile error when AMMETER disabled
vD3.9.6 SCL 20150818
- for OpenEVSE II, bump up TEMPERATURE_AMBIENT_xxx by 10 due to extra headroom of CUI VSK-S3-12U power supply
vD3.9.5 SCL 20150722
- merge changes from temp branch:
1. EVSE goes to sleep after time/charge limit met.. would stay in sleep
-> automatically cancel sleep mode when car disconnected *only if* the
sleep was induced by time/charge limit
2. decouple temperature monitoring from J1772EVSEController::Update()
-> so that temperature is still monitored when EVSE disabled/sleeping
3. ProcessInputs() removed from J1772EVSEController
4. added TEMPERATURE_MONITORING_NY (not yet) code .. currently disabled
-> $GO/$SO RAPI
-> added ambient/ir_thresh support
vD3.9.4 SCL 20150611
- reduce GFI self test pulse duration from 50% to 33%
vD3.9.3.1 SCL 20150611
- craigK PR #46
vD3.9.3 SCL 20150608
- add files and edits to restore I2CLCD_PCF8574 build capability
- broken DelayTimer() introduced in 3.9.0
vD3.9.2 SCL 20150606
- fix $GF bug
vD3.9.1 SCL 20150605
- boost I2C bus to 400KHz
SCL20150605
-> promote to v3.9.0 in stable branch
Many thanks to CraigK for his numerous contributions and top notch testing.
vD3.9.0 SCL 20150604-5
- split out Gfi/J1772Pilot/J1772EvseController into separate files
- add support for changing I2C frequency
- increase I2C bus from 100KHz -> 200KHz
- use modified local Wire/twi to get rid of digitalWrite()
- on POST failure, go directly to Setup menu. Setup menu exits to reboot on POST failure
- shrink MaxCurrent/ChargeLimit/TimeLimit menu memory/code by calculating allowed
values rather than using RAM lookup tables
- put strings in strings.cpp
- fix bugs from 3.8.4: 1) Setup menu Exit sometimes didn't work 2) Setup menu would
start on Exit item after first use
- GFCI and No Ground faults auto reset when EV is unplugged, even if hard fault
- GFCI and No Ground faults display auto reset countdown when applicable
GFCI FAULT
RETRY IN 04:55
- when waiting for timer, just display Sleeping instead of Waiting
- during a fault, short press goes directly to Setup menu instead of putting
EVSE in Sleep state
- send $WF WIFI_MODE_AP_DEFAULT instead of WIFI_MODE_AP to client on very long
button press
- fix RAPI bug: $GF was returning FF as trip counts if zero. New max value for
any trip count = FE
- fix documentation for $SC & $GG
- got rid of superfluous AUTOSTART_MENU and MANUALSTART code
- fixes for TEMPERATURE_MONITORING from CraigK
- fix bugs in Charging screen when KWH_RECORDING or TEMPERATURE_MONITORING not defined
vD3.8.4 SCL 20150526
- display "Disabled" when EVSE_STATE_DISABLED instead of "Stopped"
- fix bug: RAPI wasn't sending EVSE state ($ST) properly
vD3.8.3 SCL 20150518
- fix RAPI bug caused by code compaction in 3.8.x
- have Setup menu exit out of menus instead of back to Settings
vD3.8.2 SCL 20150518
- got rid of LcdDetected() .. superfluous, since LiquidTWI2 handles it
vD3.8.1 SCL 20150516
- fix bug in settings menu - charge & time limit should only display when EV connected
- when charge or time limit set, exit directly out of menus
- display clock icon when time limit set, lightning bolt icon when charge limit set
- code compaction
vD3.8.0 SCL 20150516
- added TIME_LIMIT - charge for a specified time and stop
vD3.7.9 SCL 20150515
- fix bug in u2a() when digits=0
- added CHARGE_LIMIT - charge to a certain kWh and then go to sleep
kudos to AndreE for the charge limit idea.
- move all setup menus to separate "Setup" submenu. Top level menu now
called "Settings"
SCL 20150513
- cleanup, move SERIALCLI to serialcli.cpp/h
v3.7.8 SCL 20150512
* promoted to official release
- Special thanks to CraigK for his hard work in making this release possible,
with his numerous enhancements, and invaluable testing.
vD3.7.8 SCL 20150511-12
* RELEASE CANDIDATE 3 *
- added RAPI SM,GM to set/get voltmeter
- EEPROM settings for voltmeter scale/offset
- RAPI $GG now returns voltage as well
- read voltmeter in J1772EVSEController::Update() instead of on demand
(added GetVoltage())
vD3.7.7 SCL 20150511
* RELEASE CANDIDATE 2 *
- added RAPI SK,GP,GU commands
- added RAPI XOR checksum and no checksum support (kudos to AndreE for
suggesting XOR checksum support)
vD3.7.6 SCL 20150510
* RELEASE CANDIDATE 1 *
- added u2a()
- code size reduction of DELAYTIMER_MENU and TEMPERATURE_MONITORING
-> now, RAPI, DELAYTIMER_MENU, and TEMPERATURE_MONITORING can all be enabled simultaneously
- remove floats from Adafruit libraries (CraigK remove float from open_evse.ino)
- merge CraigK PR#34,35
- added more amp selections to L2 (CraigK)
- change RTC year range from 12-20 -> 15->25
- change RTC/DelayTimer menu behavior - keep leading + when adjusting a value
Much gratitude to CraigK for his many contributions to coding and testing, including,
but not limited to temperature monitoring and kWh logging
vD3.7.5 SCL 20150506
- code cleanup
- remove sscanf() - save 2K (thanks to AndreE for the heads up)
- merge CraigK PR#33
- roll back version from .8 -> .5
- change DelayTimer::CheckTime() delay from 1m to 1s
- get rid of FlexiTimer2
vD3.7.4 SCL 20150429
- enable SAMPLE_ACPINS by default
vD3.7.3 SCL 20150429
- no substantial changes.. mainly reorganizing of the code to use the libraries
in place -> no more copying to Arduino libraries folder
- shorten short button press from 100ms -> 50ms
vD3.7.2 SCL 20150428
- added SHOW_DISABLED_TESTS
- try to fix random GFI fault due to UL-mandated GFI self test just before
closing contacts. Gfi::SelfTest() - add 200ms delay and then clear m_GfiFault
- add code to avoid arcing contacts if user reboots while EVSE is charging
vD3.7.1 SCL 20150427
- fix bug: if entered menu during charging, relay would stay open when user pulled plug from EV
- clean up OnboardDisplay::Update() - added OBD_UPD_xxx
- disable OnboardDisplay::Update() when in menu
- GFI hard fault .. change status to EVSE_STATE_GFI_TEST_FAILED instead of EVSE_GFCI_FAULT
- when rebooting EVSE if our relay is closed, set pilot to +12VDC and wait 3 sec
to give EV time to open its contactor before we open ours
- UL-mandated GFI test before closing contacts causing spurious GFI faults
-> add a 200ms delay after GFI test
- during hard fault, disable Exit menu item
- misc code cleanup
vD3.7.0 SCL 20150423
- added avrstuff.h/cpp -> switch from Arduino digital pin functions to
DigitalPin
vD3.6.9 SCL 20150423
- GFCI test message now "GFCI". Only fault will cause "GFCI FAULT"
vD3.6.8 SCL 20150413
- merge NSayer PR #32 OpenEVSE II streamline
vD3.6.7 SCL 20150410
- merge NSayer PR: Latest OpenEVSE II 1.0 hardware changes #30
1. Gut ReadACPins(). It s unused.
2. GROUND_TEST_PIN is gone in the 1.0 hardware.
3. RELAY_TEST_PIN is high when charging or it s a ground fail. It s low
when not charging or it s a stuck relay.
vD3.6.6 SCL 20150406
- added SAMPLE_ACPINS logic for setup with MID400 using inline diodes
- added FT_ENDURANCE and FT_READ_AC_PINS
- replace booleans w/ uint8_t
- in GfiSelfTest() delay(50) when reading GFI_PIN
- add GFI self test before closing relay per UL (UL_GFI_SELFTEST)
- change GFI_TEST_CYCLES 50->60 GFI_PULSE_DURATION_US 8000->8333
vD3.6.5 SCL 20150406
- added HardFault()
- GFI_RETRY_COUNT 255 -> 6 and GFI_TIMEOUT 1min -> 5min
- set SERVICE REQUIRED message after GFI retries exhausted
- added nosave parm to SetCurrentCapacity()
vD3.6.4 SCL 20150406
- fix compile error in rapi_proc.cpp due to prog_char fix
- CraigK Patch 6: temp monitoring and kWh recording
- CraigK OpenEvse II ammeter calibration (Craigk46 patch 8)
- SCL move g_ampacity to g_TempMonitor.m_ampacity
vD3.6.3 SCL 20150403
- fix compile errors in Arduino 1.5.8+ due to deprecation of prog_char
vD3.6.2 SCL 20150326
- add delay(200) to beginning of setup() to fix random LCD black out at boot
Thanks to CraigK!
- code cleanup on KWH_RECORDING .. change eeprom_read_byte() to eeprom_read_dword()
vD3.6.1 SCL 20150311
- merge CraigK patch-4 temp monitoring fixes
vD3.6.0 SCL 20150301
- add CraigK TEMPERATURE_MONITORING
vD3.5.2 SCL 20150226
- minor fixes for millis() overflow handling
- change code to allow RED_LED_PIN and GREEN_LED_PIN to be commented out w/o causing compile errors
SCL 20150220
- merge NSayer pull request OpenEVSE II hardware now only performs ground test during charging
vD3.5.1 SCL 20150218
- added FT_GFI_LOCKOUT/FT_GFI_RETRY for functional testing
- per UL Fred Reyes, stuck relay always results in hard fault (lockout)
- GFI_RETRY_COUNT to 255 (infinite) instead of 15
vD3.5.0 SCL 20150216
- added UL_COMPLIANT: UL wants EVSE to hard fault (cease operation until manual intervention)
1) if POST fails
2) if fault happens immediately after charge starts
- consolidated some redundant fault strings
- if AutoSvcLevel couldn't be detected due to car being plugged in during POST,
and L1 was set because of this, upon first charge session, we will detect the
actual svc level, and switch to L2 if detected
vD3.4.3 SCL 20150213
- don't do GFI self test in doPost() if other fault already found
- when in menus, lock out all other functions until exit
- do stuck relay chk in POST even if EV is plugged in and AutoSvcLevel()
- for safety, set to L1 if AutoSvcLevel and car is plugged in during POST,
because we can't auto detect level.
vD3.4.2 SCL 20150210
- added SLEEP_STATUS_PIN
vD3.4.1 SCL 20150205
- forgot to set svcState to SR when stuck relay test fails in doPost() and
not AutoSvcLevel()
vD3.4.0 SCL 20150123
- added writing of safety check trip counters to EEPROM
- added RAPI $GF
- setting GFI_RETRY_COUNT to 255 will make it retry indefinitely
- changed GFI_RETRY_COUNT from 3 to 15, GFI_TIMEOUT from 15min to 1min
-> now, tests will retry 15 times at one minute intervals
instead of 3 retries at 15 min intervals
vD3.3.7 SCL 20150122
- merged NSayer pull requests #19,#20
- OpenEVSE II changes + added relay check menu item
vD3.3.6 SCL 20150120
- enable WATCHDOG by default
- minor refactoring of watchdog code
- perform relay stuck check in doPost() even if not auto svc level
vD3.3.5 SCL 20150113
- merge NSAYER pull request for OpenEVSE II code
vD3.3.4 SCL 20150102
- switch from EEPROM.h to avr/eeprom.h functions
vD3.3.3 SCL 20150102
- clear charging current in chargingOff() - thanks to CapnBry
vD3.3.2 SCL 20141205
- added very long press RAPI code for WiFi AP mode reset ($WF)
vD3.3.1 SCL 20141124
- fix some random crashes caused by string overflow on LCD display
one such crash was when I2CLCD enabled and RTC enabled w/o RTC hardware
vD3.3.0 SCL 20141120
- promote version to 3.3.x since features were added
vD3.2.9 SCL 20141120
- make ammeter calibration mode volatile
vD3.2.8 SCL 20141119
- restructure and fix ammeter bugs
- don't update charging amps display unless ammeter value is updated
- don't show charging amps if m_CurrentScaleFactor == 0
- replace moving average w/ sliding window average to save RAM
- added ammeter calibration RAPI function $S2
- replace redundant calls to millis() with variable in J1772EVSEController::Update()
vD3.2.7 SCL 20141111
- fixed ammeter no display bug introduced in 3.2.6
v3.2.6 SCL 20141111
- restructured ammeter code
- add RAPI SF,SA,GA,GG commands
v3.2.5 SCL 20141111
- don't display charging current <1A
v3.2.4 SCL 20141110
- minor fixes to RAPI
- added CraigK's current averaging AMMETER_AVERAGING
v3.2.3 SCL 20140829
- added support for PCF8574-based I2C LCD backpacks
v3.2.2 SCL 20140829
- setting RGB/mono backlight fixes
v3.2.1 SCL 20140826
- fix POST problem when LCD not attached
- remove superfluous m_menuidx added in last update
v3.2.0 SCL 20140825
- revamped SetupMenu to greatly simplify adding/removing items
- added LCD backlight type setting to menus (C. Howell)
v3.1.0 SCL 20140822
- added CHARGING_PINAC
- promote from alpha to production status
v3.1.A9 SCL 20140418
- fixed bug in saving GFI self test setting
v3.1.A8 SCL 20140417
- added S.Low's (scanchain) CheckTime() fixes
v3.1.A7 SCL 20140417
- bumped version to 3.x.x to avoid confusion w/ main branch code
v2.1.A7 SCL 20140417
- added nsayer's GFI_SELFTEST + menu tweaks
v2.0.B8 20131118
- merge v2.0.B7 from open_evse google group + some minor tweaks
v2.0.B3 20130714
- fix LCD display error
- merged changes from Scott Rubin
v2.0.B1 20130119
- added RTC + delay timer code from Goldserve
v1.0.9 SCL 20130101
- don't hang when I2CLCD/RGBLCD enabled, and no LCD installed. requires
LiquidTWI2 v1.2.0+
v1.0.8 SCL 20121025
- change button reading from analogRead() to digitalRead(), enable internal pullup
v1.0.7 SCL 20121023
- fix bug in Max Current Menu.. couldn't display highest selectable value
on init
v1.0.6 SCL
- switch LCD library to LiquidTWI2 to save memory, speed up LCD
writing, and decrease latency
v1.0.5 SCL
- move g_psEnabled/g_psEnabled to #ifdef SERIALCLI to fix compile
error when LCD and BTN_MENU disabled
v1.0.4 SCL
- BTN_ENABLE_TOGGLE reverts code from v1.0.3
- refine duty cycle calc in SetPWM() (thanks to Lee Howard)
v1.0.3 SCL
- short press no longer does anything when menus not active
instead of emergency start/stop
- button menus only available in connected and charging states
v1.0.0
First official release
Button Menu
v0.5.0
Adafruit RGB LCD and LCD backpack support
Support for Advanced Power Supply
v0.4.0
Command Line Interface (CLI)
Write Current setting to EEPROM
Serial Baud Rate 38400
CLI Commands: "show" "set amp" "save" "help"
v0.3.0
GFI code debugged and working.
Now compiles with Arduino 1.0
v.0.2.0
Firmware for use with Arduino-0022. Tested as working.