New 80 volt push mowers

Talk about anything and everything here within reason.
StinkyGoalieGuy   100 W

100 W
Posts: 289
Joined: Apr 23 2008 3:53pm

Re: New 80 volt push mowers

Post by StinkyGoalieGuy » May 26 2020 4:33am

In case anyone is interested, thanks to Metallover's post and link to the logic analyzer from Amazon, I was able to decode the battery signal from the "Omega" port on a Greenworks 60V battery. I recreated the signal using an Arduino and hooked up the Greenworks Brushless leaf blower using a 18S1P A123 LiFe battery and it worked!

Here is the Arduino 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);


}

fastcrille   1 mW

1 mW
Posts: 10
Joined: Sep 24 2012 9:19am

Re: New 80 volt push mowers

Post by fastcrille » Sep 11 2020 3:00pm

Hi

I have tried this "code 5/26/2020" on arduino mega to simulate BMS signal for my 80v greenworks mower, it works.
I run it with my ebike 18s LIPO with out any problem...

Thanks for the solution!
(Metallovers code doesent work, there is some thing wrong with it)

StinkyGoalieGuy   100 W

100 W
Posts: 289
Joined: Apr 23 2008 3:53pm

Re: New 80 volt push mowers

Post by StinkyGoalieGuy » Sep 11 2020 3:17pm

Cool! Thanks for the feedback. Good to see somebody using it.

pizzy00   100 µW

100 µW
Posts: 8
Joined: Sep 13 2020 7:22pm

Re: New 80 volt push mowers

Post by pizzy00 » Sep 13 2020 7:28pm

The latest code will keep my Kobalt 80v chainsaw from erroring out(red led with yellow exclamation mark) by start button, but if I keep it on full throttle for a say around 30 seconds it shuts off. I bought the same analyzer and have captured some data. However I'm not that great at coding though. Can anyone help? I really want to use my own lipos for this.

I also have a harbor freight atlas 80v chainsaw but it doesn't stay on, so must have different pwm bms signal. I could captures some signals on this of anyone was interested.

What speed should I sample rate and what trigger? Any tips appreciated.

pizzy00   100 µW

100 µW
Posts: 8
Joined: Sep 13 2020 7:22pm

Re: New 80 volt push mowers

Post by pizzy00 » Sep 14 2020 10:29am

I have some nice samples now. So I will try to refine and tweak the code to see if I can keep the chainsaw working.

pizzy00   100 µW

100 µW
Posts: 8
Joined: Sep 13 2020 7:22pm

Re: New 80 volt push mowers

Post by pizzy00 » Sep 15 2020 10:03am

Yeah still no luck. I guess I'll jist bypass esc totally and use a vesc I have. Will be nice, I'll have a wireless controller for my chainsaw lol. I should be able to run it fine.

StinkyGoalieGuy   100 W

100 W
Posts: 289
Joined: Apr 23 2008 3:53pm

Re: New 80 volt push mowers

Post by StinkyGoalieGuy » Sep 15 2020 10:12am

If you put the logic analyzer on the output of the arduino, does the wave match what you saw coming out of the battery?

Jay33   1 µW

1 µW
Posts: 3
Joined: Nov 06 2020 6:02pm

Re: New 80 volt push mowers

Post by Jay33 » Nov 06 2020 6:22pm

First of all, thank you guys for this amazing resource! This is like jackpot for anyone trying to play with this mower!

Q, I only got the motor and PCB Board. didn't get the switch box, I thought, i would control it from Ardunio anyway. but now i realize I need the on/off protocol (for white/black/blue wire). Before I blind try myself... anybody has any idea how to on/off/throttle without the switch box? Also are there any more states other than on and off?

Thanks again

User avatar
veloman   1 GW

1 GW
Posts: 3077
Joined: Sep 14 2009 1:06am
Location: Austin TX

Re: New 80 volt push mowers

Post by veloman » Nov 11 2020 11:26am

Jay33 wrote:
Nov 06 2020 6:22pm
First of all, thank you guys for this amazing resource! This is like jackpot for anyone trying to play with this mower!

Q, I only got the motor and PCB Board. didn't get the switch box, I thought, i would control it from Ardunio anyway. but now i realize I need the on/off protocol (for white/black/blue wire). Before I blind try myself... anybody has any idea how to on/off/throttle without the switch box? Also are there any more states other than on and off?

Thanks again
I believe the switch box is a simple on/off switch. I'm not sure which wires get shorted.
Mush! Mush you electrons! Push harder!

StinkyGoalieGuy   100 W

100 W
Posts: 289
Joined: Apr 23 2008 3:53pm

Re: New 80 volt push mowers

Post by StinkyGoalieGuy » Nov 11 2020 11:39am

Do you mean you bought the switch box from Greenworks?

I'm just repeating the same pattern over and over that I pulled off with the logic analyzer. So no special turn on sequence.
Jay33 wrote:
Nov 06 2020 6:22pm
First of all, thank you guys for this amazing resource! This is like jackpot for anyone trying to play with this mower!

Q, I only got the motor and PCB Board. didn't get the switch box, I thought, i would control it from Ardunio anyway. but now i realize I need the on/off protocol (for white/black/blue wire). Before I blind try myself... anybody has any idea how to on/off/throttle without the switch box? Also are there any more states other than on and off?

Thanks again

Jay33   1 µW

1 µW
Posts: 3
Joined: Nov 06 2020 6:02pm

Re: New 80 volt push mowers

Post by Jay33 » Nov 11 2020 7:30pm

veloman wrote:
Nov 11 2020 11:26am
I believe the switch box is a simple on/off switch. I'm not sure which wires get shorted.
Thanks for reply. yes thats what i need to figure out. if I can get some confirmation from you guys that would be much better than trying to randomly short it.
Also sometimes the squeeze bar connect to potentiometer to give more power to as you pull the lever harder. this one could be just on off as you said. As i have no clue.

so as you know there are three wires to the switch box connector. white, black and blue.
with battery connected and no short, white (+) to black (-) or white(+) to blue (-) both reads 32 volts
blue to black reads 0 volts
and no continuity between either of these wires.

any idea whats my best bet when i start shorting them! ?

StinkyGoalieGuy wrote:
Nov 11 2020 11:39am
Do you mean you bought the switch box from Greenworks?
No. I do not have a switch box.
I already had a greenworks 80v battery. I bought motor and the PCB control box from greenworks.
Now im trying to figure out how to start it without switch box.
Please correct me if i understood wrong, but as understand the signal pattern is for non-greenwoks battery without the ohm input. As I already have an original greenworks battery. I think i don't need that.


here is the 1000 words
Image

Jay33   1 µW

1 µW
Posts: 3
Joined: Nov 06 2020 6:02pm

Re: New 80 volt push mowers

Post by Jay33 » Nov 11 2020 10:10pm

I think i figured it out.
Basically all three wires need to be connected.
first connect black and blue wires together, then connect/disconnect the white wire to on/off
Order seems to matter for subsequent on/off.
Means if you disconnect black/or blue instead of white, then once its off it will not turn on again (by connecting black/blue back) until battery reconnected.


if you like to on/off with an ardunio+relay, simply connect black and blue together to one connector of the relay and white to the other connector.

User avatar
veloman   1 GW

1 GW
Posts: 3077
Joined: Sep 14 2009 1:06am
Location: Austin TX

Re: New 80 volt push mowers

Post by veloman » Dec 23 2020 11:32pm

Has anyone got these batteries figured out? Mine was working fine I I think I reversed the connection to my mower and blew the fuse. I was able to replace the fuse and it shows 78v now but it won't charge. Charger light doesn't come on at all but the battery meter lights up as usual. Same result on two chargers.
My blower will run for 3 seconds then shut off. This almost sounds like the communication is not happening. Maybe I damaged one of the boards...
Mush! Mush you electrons! Push harder!

BradKdr   1 µW

1 µW
Posts: 2
Joined: Feb 11 2021 12:04pm

Re: New 80 volt push mowers

Post by BradKdr » Feb 12 2021 2:55am

Hi All,

First off, thanks everyone for the work you have done and for sharing it here.
I just bought a Greenworks 60V Self Propelled mower and am trying to convert it to run on 3 Ryobi 18V batts in series.
When I connect the batts it shows 4 bars (fully charged) on the handle of the mower.
When I turn it on it runs for about 3 seconds then shuts off and beeps 3 times.
I even connected it to a variable power supply set to 60V and get the same thing.

I found this forum, bought an Arduino Nano, uploaded the program and hooked it up to the 3rd terminal on the mower.

I know the Arduino is providing a signal but the mower is still doing the same thing (Shutdown after 3 seconds then beep beep beep.........beep beep beep.).

Any help would be greatly appreciated here...Anyone know what the 3 beeps mean?

I think I've narrowed the problem down to the signal or the motor controller...I bought the mower used and think it was a store return but I don't know for sure.

User avatar
spinningmagnets   100 GW

100 GW
Posts: 12145
Joined: Dec 21 2007 10:27pm
Location: Ft Riley, NE Kansas

Re: New 80 volt push mowers

Post by spinningmagnets » Feb 12 2021 3:08am

How old is the battery? maybe it cant pull the amps it used to when it was newer...

BradKdr   1 µW

1 µW
Posts: 2
Joined: Feb 11 2021 12:04pm

Re: New 80 volt push mowers

Post by BradKdr » Feb 12 2021 1:43pm

Batteries are new and can handle up to 30A.

I'm sure its not the batteries as I have the same problem when I press the switch without turning on the motor.
After 3 seconds I get a beep beep beep.......beep beep beep....

I am starting to wonder if my motor controller as bad since others here have been able to get theirs working with the Arduino, I have the same problem no matter what I do.

jgoedhard   1 µW

1 µW
Posts: 1
Joined: May 23 2021 11:49am

Re: New 80 volt push mowers

Post by jgoedhard » May 23 2021 12:28pm

Those controllers look caked with goo. I wonder if just replacing the controller with something of a more programable friendly board would solve a bunch of issues. And $14. 3 Phase motor. 80 volts.

I was going to perform a shunt to try and get an increase in speed but after seeing those pictures of the controller. I don't think I want to try the attempt and would rather replace the controller and add a variable speed selector.

Would be something if replacing the shunt with a variable resistor would do anything to keep that blade spinning fast.

plmicia   1 µW

1 µW
Posts: 1
Joined: May 28 2021 11:15am

Re: New 80 volt push mowers

Post by plmicia » May 28 2021 2:16pm

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.
image2126.jpg
image2126.jpg (460.75 KiB) Viewed 48 times
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 eevblog 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.

https://youtu.be/Y7Tlfim-A8w

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.

https://youtu.be/ER4f0lgI0SA

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!
IMG_20210520_214017.jpg
IMG_20210520_214017.jpg (3.01 MiB) Viewed 48 times
Here is my working Arduino sketch:

Code: Select all

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


//20.05.2021 BornToRepair/plmicia 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);
}
}
IMG_20210520_213906.jpg
IMG_20210520_213906.jpg (2.92 MiB) Viewed 48 times
IMG_20210520_214044.jpg
IMG_20210520_214044.jpg (3.02 MiB) Viewed 48 times
IMG_20210520_214940_light.jpg
IMG_20210520_214940_light.jpg (125.51 KiB) Viewed 48 times
IMG_20210520_214932_light.jpg
IMG_20210520_214932_light.jpg (207.77 KiB) Viewed 48 times

Post Reply