valerun
Well-known member
this is why we love open source! thanks guys for your ideas & your mods!
ImpactVector said:That's good to know. I need to look at that code harder to understand how it works. Sounds like changing the pilot is a good way to go! Thanks!
Levi8than said:ImpactVector said:That's good to know. I need to look at that code harder to understand how it works. Sounds like changing the pilot is a good way to go! Thanks!
There's a pretty good write up explaining the protocol here: https://code.google.com/p/open-evse/wiki/J1772Basics" onclick="window.open(this.href);return false;
Including the duty cycle to amps equation.
I think the JB code does it through atmel's built in PWM feature, which should make it easy to change.
Dorian said:Hey ImpactVector,
Dorian from Electric Motor Werks here. You've really done a bang-up job modding your JuiceBox! Impressive stuff! Would you be okay with us featuring your modifications (and your photos) in a revision of our assembly manuals? We're trying to make some modifications available in our manuals, with instructions and stuff so anyone can do awesome mods like yours.
ImpactVector said:Guys,
I charged overnight perfectly but noticed this morning that when I turned the car on it was complaining about a charger fault. How have you guys gotten around that ?
I tried to suppress the Pilot signal input until its charging time but that hasnt worked.
I tried to stay outside the charging loop logic until its time. That hasnt worked either.
Somehow the car knows when it gets plugged in. Now to try stopping it from complaining :/
ImpactVector said:Guys,
I charged overnight perfectly but noticed this morning that when I turned the car on it was complaining about a charger fault. How have you guys gotten around that ?
I tried to suppress the Pilot signal input until its charging time but that hasnt worked.
I tried to stay outside the charging loop logic until its time. That hasnt worked either.
Somehow the car knows when it gets plugged in. Now to try stopping it from complaining :/
ImpactVector said:On the voltage drop- I am not sure why the JB sees 208V and my other gauge (and multimeter) see 238V while charging. I am baffled by that one but figured it might be PCB damage? I'm not sure.
Levi8than said:ImpactVector said:On the voltage drop- I am not sure why the JB sees 208V and my other gauge (and multimeter) see 238V while charging. I am baffled by that one but figured it might be PCB damage? I'm not sure.
You cannot possibly see 238V AC before charging AND 238V AC while charging. That's not reasonable. You should see some droop on the voltage while pulling 30 amps. Even if you've only got 50 feet of 10 gauge, you should droop to at least 235. If you see no droop, then I don't think you're measuring properly. Can you double check?
Okay this sounds better. Apologies for questioning it. That's about a 3% drop, which is expected. I'll bet you've got about 115 feet of 10 gauge to the box then.ImpactVector said:I have 245~246 before and 238v when charging. It drops 7 V. so 201watts is converted to heat ?
Timer1.setPwmDuty(pin_PWM, PWM_res); // this should produce a steady +12V signal on a pilot pin
Timer1.setPwmDuty(pin_PWM, PWM_res); // this should produce a steady +12V signal on a pilot pin
while (!ReadyToCharge)
{
if(ReadyToCharge)
break
else
delayinsecs();
}
Timer1.setPwmDuty(pin_PWM, duty); //resets the signal and code continues on
If I am reading this right you set pwm on the first cycle regardless. That sounds wrong. Also where did the safety check go? Post the full file if you can.ImpactVector said:Thoughts ? Would that work ?
Levi8than said:If I am reading this right you set pwm on the first cycle regardless. That sounds wrong. Also where did the safety check go? Post the full file if you can.ImpactVector said:Thoughts ? Would that work ?
if(state==STATE_C) {
// vehicle requested NON-VENTILATED power - this is our MONEY state
int ctrlBtn_cnt=0;
// commence charging
setRelay(HIGH);
printClrMsg(F("Starting Charge!"), 1000, 0x1f, 0x3f, 0);
myclrScreen();
timer=millis(); // start timer
timer0=timer;
n=0;
//+++++++++++++++++++++++++++++++++++++++++++ inner CHARGING loop!
while(getState(1)==STATE_C) { // break on anything else
// set the output current - can be changed DURING the charges without a restart
// by turning the pot
setOutC();
// reset the duty to the right value
//-----------Start additional code
ReadyToCharge=1;
while (!ReadyToCharge)
{
ReadyToCharge=ReadyToChargeCheck();
if(ReadyToCharge){
Timer1.setPwmDuty(pin_PWM, PWM_res); // this should produce a steady +12V signal on a pilot pin
break;
}
else
delayinsecs(20);
}
//-----------------end additional code
Timer1.setPwmDuty(pin_PWM, duty);
n++; // cycle counter
delay(meas_cycle_delay); // reasonable delay for screen refresh
// check if the control button is held for more than 10 cycles
if(LCD_on) {
if(digitalRead(pin_ctrlBtn)==0) ctrlBtn_cnt=0;
ctrlBtn_cnt++;
if(ctrlBtn_cnt>10) {
printClrMsg(F("Breaking per user\nrequest! Unplug\nfrom car"), 3000, 0x1f, 0x3f, 0);
// attempt to set output pin back to +12V
Timer1.setPwmDuty(pin_PWM, PWM_res); // this should produce a steady +12V signal on a pilot pin
// wait until user unplugs
while(getState(0)!=STATE_A);
break;
}
}
ImpactVector said:Levi8than said:If I am reading this right you set pwm on the first cycle regardless. That sounds wrong. Also where did the safety check go? Post the full file if you can.ImpactVector said:Thoughts ? Would that work ?
Enter your email address to join: