Products > Other Equipment & Products

Greenworks 60v battery Ohm terminal

<< < (9/15) > >>

typoknig:
Awesome!  It is hot AF in the Midwest right now, so this project has been on the back burner for me.  When we get closer to having snow again I'll give your mod a try.  It would be great to be able to do this with an Arduino and not have to upgrade to something faster.

typoknig:

--- Quote from: BornToRepair on May 28, 2021, 06:57:51 pm ---
--- Quote ---Good thought. Bidirectional communication would also explain the two different levels of low pulses (600mv and 200mv).
--- End quote ---

Definitely it is like you said.
I have bought Powerworks 60V mower cheap without battery.
My idea was to run it with 3x Makita 18V batteries which I have a lot.

To make it run I have modified Arduino sketch available on Endless sphere thread.
I simply removed second part of a script to check if the answer form mower will still appear on a bus. Indded it was.

Unfortunatley this was not enough for reliable opration. Mover turns off after 1-2 min of running with 6 loud beeps.

Reading carefull this thread and endless sphere theread I figure out that query frame is not the same all the time.
Dumb luck I was able to generate different random query and sitll receive answer from mower.

[url]https://youtu.be/Y7Tlfim-A8w[/url]

I tried to alternate this query every 2sec. and to my surprise it works!
I was able to mow grass in my entire garden for ~60min.

[url]https://youtu.be/ER4f0lgI0SA[/url]
 
Preliminarly I was worried about lack of power in battery powered mower.
Mower draws only ~5A continous, 10A max and this reflecs to only 300 - 600W of power, compared to 2-3kW gas powered mowers.
However it turns to be opposite - gas powered mowers seems to be overpowered for such simple task as grass cutting ;-).

BTW. to power Arduino form 5V you do not need separete DC/DC 60V to 5V converter.
5V is available at motor hall sensor harness!


Here is my working Arduino sketch:

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


//20.05.2021 BornToRepair mod:
//reply frame removed
//pin6 input mode enabled beetween query frames
//query cycling each 2000ms

#define PIN 6

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

void loop()
{

for(uint8_t a = 0; a < 10; a++)

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


pinMode(PIN, OUTPUT);

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

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

for(uint8_t i = 0; i < 10; 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(100);
}

// 5
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(200);
}

for(uint8_t i = 0; i < 1; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
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 < 3; i++)
{
digitalWrite(PIN, HIGH);
delayMicroseconds(100);
digitalWrite(PIN, LOW);
delayMicroseconds(100);
}

pinMode(PIN, INPUT);
}



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

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);
}
pinMode(PIN, INPUT);
}
}

--- End code ---


--- End quote ---


Finally got back to this project and still can't get the snow blower working with your latest code.  Just runs for 3 seconds then shuts off like before.  Looking at the pictures I see that our PCB units are different.  Mine is part number 362011483AC and looks identical one I found on ebay (part number 362011205AB) which is for an 80V snow blower (see attached).

typoknig:
I rolled the dice and de-potted my PCB to try and figure out what was going on.  Tragically, the PCB no longer works, but I still hope now that I can see the components used that I can determine what the exact signal is this thing wants.  I may take a stab at fixing it too before I spend $60 on a new one.

The PCB uses an ON Semiconductor FAN7888 as 3 phase motor inverter driver.  It is the large 20 pin SOIC package IC in the middle of the attached picture.  Datasheet also attached.

The PCB also has a meter IC which I'm unable to identify.  It is the small 8 pin SOIC package IC in the upper right corner of the attached picture.  It has the following markings, but where I use the asterisk the IC actually shows the diode symbol oriented vertically (anode top, cathode bottom) as if it were a character:


--- Code: ---I*RP948G
9019
F6216
--- End code ---

Finally, and most importantly, the IC has a controller IC which I am also unable to identify.  It is the 32 pin QFP package IC and it has the following markings and also has the characters "H65" in a circle to identify the first pin.  I was thinking that H65 in a circle might be a manufacturer identifier, but I can't find anything on it:


--- Code: ---C009B2
020FZ02
--- End code ---

Any help identifying these ICs would be appreciated.

NiHaoMike:
Perhaps consider replacing it with a generic BLDC ESC? A quick search finds quite a few 60V ESCs for scooters.

typoknig:
That is a good idea. I did a quick search and I didn't see any that looked big enough. I'll check the motor specs tomorrow and try to find a good match. Still, I would like to find a solution that works without dismantling tools. I was hoping to be able to use all Greenworks tools with DeWalt batteries once I got this figure out. Didn't want a project each time, just wanted to put my frankenbattery in a tool and have it work.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod