Products > Other Equipment & Products

Greenworks 60v battery Ohm terminal

(1/10) > >>

typoknig:
I got a Greenworks 60v snowblower that didn't have a battery. I'm on the DeWalt stack so I have several 60v DeWalt batteries. I 3D printed an adapter and went to test it out, but the snow blower will only run for 3 seconds then stops. Took it apart to see what was going on and found the electronics are potted :(

A Greenworks battery has 4 terminals and the snow blower uses 3 of them. The outter two are power and ground, the other one has an ohm symbol on it.  What precious little info I've found about that terminal indicates it is for "battery communication". The wire from the snow blower that would attach to the terminal in question produces 5v when I engage the snow blower and remains 5v for at least 3 seconds or until I disengage the snow blower.

I've tried putting various resistors across it to ground, but that hasn't worked.

Any thoughts? What does this wire do? How do I make it happy?

aargee:
I'm guessing that it is a thermistor. Mostly used by the charger but will also get warm if there is an excessive discharge through the pack.
How it is connected, I'm not sure. Mostly between that terminal and ground in packs I have.
Maybe about 10k would be worth a go or get a resistance wheel and experiment.

I don't *think* it would be as complex as some one-wire device for either temperature or ID of some sort.

I'd be interested to see your battery adapter though, I've been tempted to try something similar here for a DeWalt battery to a Black and Decker tool.

typoknig:
From my reading I also thought it might be a thermistor. I tried a 10k and 11k with no luck. I'll try some more in that range and see what happens.

I made the adapter in several parts. The one I'm using now was a "failure" in the sense that I neglected to account for some nooks and crannies of the Greenworks battery hole and had to take the Dremel to the adapter to make it fit. Printing a new one as we speak. Once I've verified my design I'll share it.

typoknig:
Tried 10k to 11k in increments of 100 ohms with no luck.

typoknig:
Looks like the wire is expecting a PWM signal from the battery.

https://endless-sphere.com/forums/viewtopic.php?f=1&t=79384&start=100#p1559001

This Arduino code will apparently generate the correct pulse for a brushless 60V Greenworks tool. Based on the thread I linked to it seems 80V batteries have a different signal.


--- Code: ---// written 5/26/2020
// Working battery interface signal from the "Omega" port
// of a Greenworks Pro 60V battery

#define PIN 6

void setup()
{
pinMode(PIN, OUTPUT);
}

void loop()
{

digitalWrite(PIN, HIGH);
//Delay 188,000us
for(uint8_t i = 0; i < 188; i++)
{
delayMicroseconds(1000);
}

digitalWrite(PIN, LOW);
delayMicroseconds(400);

for(uint8_t i = 0; i < 3; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(200);
}

for(uint8_t i = 0; i < 9; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(100);
}

delayMicroseconds(100);

for(uint8_t i = 0; i < 1; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(200);
}

// 5
for(uint8_t i = 0; i < 4; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(100);
}
delayMicroseconds(100);

for(uint8_t i = 0; i < 4; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(200);
}

for(uint8_t i = 0; i < 3; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(100);
}

digitalWrite(PIN, HIGH);
delayMicroseconds(1000);
digitalWrite(PIN, LOW);
delayMicroseconds(200);

for(uint8_t i = 0; i < 2; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(100);
}
delayMicroseconds(100);

for(uint8_t i = 0; i < 1; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(200);
}

for(uint8_t i = 0; i < 2; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(100);
}

delayMicroseconds(100);

for(uint8_t i = 0; i < 4; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(100);
}

delayMicroseconds(100);

for(uint8_t i = 0; i < 3; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(100);
}

delayMicroseconds(100);

for(uint8_t i = 0; i < 2; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(100);
}

delayMicroseconds(200);

for(uint8_t i = 0; i < 1; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(100);
}

delayMicroseconds(100);


}

--- End code ---

I don't have an Arduino so now I have to decide if I want to buy one or try port the above code to an ESP8266 (and buy a voltage regulation to get from 60V to 3.3V) or de-pot the electronics and try to circumvent the required signal.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version