$ make -s[C++] mcp23008.cpp[C++] lcd1602.cpp[C++] mcp23017.cpp[C++] pcf8574.cpp[LIB] libdevices.a[C++] j1772pilot.cpp[C++] i2c_master.cpp[C++] pin.cpp[C++] keyboard.cpp[LIB] libboard.a[C++] serialconsole.cpp[LIB] libui.a[C++] event.cpp[C++] loop.cpp[C++] handler.cpp[LIB] libevent.a[C++] usart.cpp[LIB] libserial.a[C++] watchdog.cpp[C++] timer.cpp[LIB] libsystem.a[C++] cpp.cpp[LIB] libutils.a[C++] main.cpp[LNK] nospark.elf text data bss dec hex filename 4340 96 186 4622 120e obj/nospark.elf[HEX] nospark.hex// NoSpark - OpenEVSE charger firmware// Copyright (C) 2015 Andre Eisenbach//// This program is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// See LICENSE for a copy of the GNU General Public License or see// it online at <http://www.gnu.org/licenses/>.
#pragma once
#include <stdint.h>#include "utils/cpp.h"
namespace board{
// Uses timer1 for PWM, thus PIN 10 is automatically used,// no need to abstract it.class J1772Pilot{public: J1772Pilot(); void high(); void low();
void pwmAmps(const uint8_t amps);
private: DISALLOW_COPY_AND_ASSIGN(J1772Pilot);};
}A good start. Looking forward to seeing what you come up with. Thanks for sharing.
Will you be checking code in during your initial development?
--
You received this message because you are subscribed to the Google Groups "OpenEVSE" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openevse+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Having fun with the LCD :)
AVR Memory Usage----------------Device: atmega328p
Program: 9584 bytes (29.2% Full)(.text + .data + .bootloader)
Data: 417 bytes (20.4% Full)(.data + .bss + .noinit)Also implemented the relay and GFI power-on self tests.This is probably as far as I can push it without actual hardware.With the major items in place, including serial console, RTC & temperature reading and more, the firmware now sits at this sizs:AVR Memory Usage----------------Device: atmega328pProgram: 9584 bytes (29.2% Full)(.text + .data + .bootloader)Data: 417 bytes (20.4% Full)(.data + .bss + .noinit)
Not as small as I had hoped, but certainly small enough to leave plenty of room for features/improvements down the road.Main items remaining:- Ammeter including calibration storage- LCD menu for various settings- Testing...
Could you upload a .hex somewhere ? I have a spare openevse, would like to test it out ;-)
Source and HEX files will go up as soon as I can successfully test it at least once :D
AVR Memory Usage----------------Device: atmega328p
Program: 10142 bytes (31.0% Full)(.text + .data + .bootloader)
Data: 421 bytes (20.6% Full)Very nice Andre,
Rush Dougherty
Tucson AZ
From: open...@googlegroups.com [mailto:open...@googlegroups.com] On Behalf Of Andre Eisenbach
Sent: Thursday, March 05, 2015 1:14 AM
To: open...@googlegroups.com
Subject: Re: Announcing: "NoSpark" firmware project
Development update 3
--
void Loop::dispatch_impl(){ while (!q_event.empty()) { const Event& event = q_event.front(); Handler* handler = q_handler.front();
while (1) { handler->onEvent(event); if (!q_handler.has_next()) break; handler = q_handler.next(); }
q_event.pop(); }}void Loop::dispatch_impl(){ while (!events.empty()) { auto event = events.front(); for (auto handler : handlers) handler->onEvent(event); events.pop(); }}AVR Memory Usage----------------Device: atmega328p
Program: 13122 bytes (40.0% Full)(.text + .data + .bootloader)
Data: 538 bytes (26.3% Full)Development update 4
Development update 5It's alive!After finishing the build and installing a 240V outlet today, I am happy to report that NoSpark v0.01 has successfully charged a vehicle for the first time! To "celebrate" this milestone, I've tagged the current codebase as NoSpark v0.02.
--
Danny,Yes, NoSpark is currently OpenEVSE v3 compatible ONLY!
That's the only hardware I have and I do not want to put hardware abstraction code in place yet. Especially since I can't verify it myself.
If you have the 2 relay version, it will definitely not work right now, since NoSpark is only toggling one pin currently.
If you went through the settings, did you notice the custom icons? :)
I'm hoping to play more with animations (especially during charging) as well as scrolling text etc. down the road.
The firmware currently sits at 14.5k of flash and around 600 bytes of RAM.
That is including the current measurement code I just added.
So there is plenty of room to "play" with features etc.
With the current sensing in place, I can now implement kWh calculation etc. next.
c)I am able to set amps going through the menuBut I wasn't able to set time/date.Is that correct ?
Very cool to see that it worked.
You can set time/date from the serial console.
But, now that I have the first official "user", I'll probably implement that next :D
Some feedback for you:
I've uploaded a new patch that fixes a potential endless loop, which would cause a watchdog reboot.Hopefully that's the one that caused your reboot.I'll still make the current setting persistence the next priority.
One more patch posted...
Btw, after the reset, did it start charging, or is it a reboot loop where it resets every time 8s after "click"?
You can change the default AMPs in evse/state.cppI'll set it to 16 by default tonight as well though.
You can change the default AMPs in evse/state.cppI'll set it to 16 by default tonight as well though.
Cool!1 amp over is fine. Likely line losses etc.
But is it still reading way over (44A) sometimes??
text data bss dec hex filename
16306 250 507 17063 42a7 obj/NoSpark.elf
text data bss dec hex filename
16306 250 507 17063 42a7 obj/NoSpark.elf
text data bss dec hex filename
16200 236 510 16946 4232 obj/NoSpark.elf
text data bss dec hex filename
17672 252 515 18439 4807 obj/NoSpark.elf
Development update 8Yet another NoSpark release :)v0.05 is out which adds kWh statistics.
Development update 8Yet another NoSpark release :)v0.05 is out which adds kWh statistics.
Also added a 15min LCD sleep timer. So don't be alarmed if the LCD turns off on you.
Any event (plugging in car, removing plug, charge complete etc.etc.) will wake the screen or reset the timeout. A single button press will also wake the screen.
Also added a 15min LCD sleep timer. So don't be alarmed if the LCD turns off on you.Looks scary but is a nice feature !
I have been getting "strange" readings with the experimental official branch of the openevse software as well , regarding to the amp meter reading.I am starting to wonder if this is a hardware issue.
Do you think the LCD should stay on while charging?
Torn on this. Also couldn't find how prevalent burn-in is on LCD displays.
I have been getting "strange" readings with the experimental official branch of the openevse software as well , regarding to the amp meter reading.I am starting to wonder if this is a hardware issue.NoSpark essentially uses the same code to read the current, even uses the same default calibration value.
Only difference is NoSpark uses a continuous moving average vs. a 32-sample average on the OpenEVSE firmware. But that should not change the display much. So yes, you should see the same thing on NoSpark as you see on OpenEVSE. And yes, I'd be double checking my wiring and making sure you have the correct current sensor.
Burn-in is not an issue, so and the LCDs draw very little power, so the only use for blanking is if the user doesn’t like having a continuous bright display in their garage.
Development update 9You can now set time & date from the settings menu!
Everything currently implemented in NoSpark should now be working as expected.
Not sure what to focus on next.
Bluetooth data download maybe?
1) Make sure your safety checks are all doing what they should in terms of retries/timeouts, etc. Also, make sure to add any extra checks mandated by UL (see my UL_XXX defines, or I can discuss w/ you)
2) RAPI?
From: open...@googlegroups.com [mailto:open...@googlegroups.com] On Behalf Of Danny ter Haar
Sent: Friday, May 1, 2015 8:57 AM
To: open...@googlegroups.com
Subject: Re: Announcing: "NoSpark" firmware project
On Friday, May 1, 2015 at 3:09:27 AM UTC-7, Andre Eisenbach wrote:
Development update 9
You can now set time & date from the settings menu!
Everything currently implemented in NoSpark should now be working as expected.
Great !
Compiled and will run it tonight to charge my car
Not sure what to focus on next.
.
I second the RAPI nomination. It would be very cool if external apps developed were compatible with both firmware without modification.
Lincomatic beat me to it... I third the RAPI nomination.
I am working on a new testing guide, that goes into detail validating each safety feature. Hopefully this will help developers validate firmware and hardware mods...
Development update 9
Nope.Can you flash it again with verify enabled to make sure the flash is good?
Does it reboot immediately after the beginning animation or is there an 8s delay before it shows it again?
So it's working now?!
Btw. are you loosing the EEPROM content every time you program?
If you do, do "make fuses" once and then upload again as normally. You won't loose the EEPROM content anymore.
Development update 10
I too hope you keep posting updates. You UI is very impressive. I am looking forward to seeing updates no your App as well...
I will send you a v2.5 board to play with. Adding support should be simple just bring 2 more pins the the same state as the current AC_relay pin. Really nothing to it...
--
You received this message because you are subscribed to the Google Groups "OpenEVSE" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openevse+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Development update 10
On May 15, 2015, at 9:43 PM, Danny ter Haar <from...@gmail.com> wrote:
On Thursday, May 14, 2015 at 12:33:42 PM UTC-7, Andre Eisenbach wrote:Development update 10Hi AndreI synced, compiled and flashed v0.12 today and when I power it on, I see the great graphical intro and then a red "GFI ERROR" screen.
I then downloaded you hex file: same behavior.To make sure it is not a hardware issue, synced/compiled lincomatics 3.7.9 development branch software and uploaded it:
That seems to work just fine.Any idea how I could debug why NoSpark is giving me the GFI condition ?btw: I ordered a couple of HC-06 so I should be able to use wireless serial console soon-ish "Estimated delivery Wed, May 27 - Wed, Jun 10" ;-)
--
You received this message because you are subscribed to a topic in the Google Groups "OpenEVSE" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openevse/UQZl2vjyC8M/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openevse+u...@googlegroups.com.
Danny,I've uploaded an additional delay based on what nick wrote in other threads about the peak hold cap.Can you pull the latest code and try again?Thx
It's working. was able to set amps, timer and will use it tonight to charge at least one of my EV's .
Will keep you posted
Meet NoSpark, an alternative firmware for the OpenEVSE board, written from scratch.
NoSpark aims to be a drop-in replacement for the existing firmware, developed in C++ for the AVR microcontroller.
Why develop NoSpark?
- AVR C++11
- No Arduino libraries/build dependencies
- Uses "make" build system
- Modular design
- Lightweight
- Why not?! That's what having an open source EVSE is all about :)
There are no fancy features planned for the initial version.
It will simply be a drop-in replacement to perform the basic functions:
- Charge state management and pilot generation
- Fault checking & relay control- Current measurement
- LCD user interface & button menu
- Persistent settings (EEPROM)
- RTC control
- Serial console (+Bluetooth dongle)
The purpose is to get a nice modular framework up and running first.
Since I fully expect to have flash space left over after implementing the basics, there will be room for more advanced features down the road.
It all starts today, with an empty git repository...
https://github.com/int2str/NoSpark
I am not looking for contributions at this point, since I'm still tinkering with many of the details.
But of course, down the road I will open up the project to any contributions. And comments and criticisms are always welcome, especially as the program takes shape.I will update this thread as things develop so you can follow along as "NoSpark" takes shape or goes up in flames :)
Great writeup! I greatly enjoy your detailed and well written descriptions.
Any chance you'd publish your Android App?
On 24 May 2015, at 00:33, Andre Eisenbach <int...@gmail.com> wrote:
$ time ninja
[56/56] HEX NoSpark.hex
real 0m0.960s
user 0m0.301s
sys 0m0.647s
$ time make -s -j 10
real 0m1.890s
user 0m1.264s
sys 0m3.024s
--
Andre,
You do have access to the hardware, the v3 board has both AC and DC relays on the board.
Chris
You received this message because you are subscribed to the Google Groups "OpenEVSE" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openevse+u...@googlegroups.com.
Craig is correct, set to "Auto" and L1/L2 detection works like before.
Ground detection and Stuck Relay have not changed for UL, in fact UL did not even check GMI as it is not required. The UL changes were GFCI self test at boot and EVERY time before closing the contactor's including after a fault reset.
V3 will always detect L2 as the Mid400 is tied to both inputs.
Nick, The one thing I would correct from what you said is that the OpenEVSE v2.5 when set to AUTO detect L1 vs L2 still will cycle the relays to detect that at boot time if the EV is not connected.