• Hello ES! We could use some help to get us past the finish line on building the new knowledgebase for the forum.
    Can you donate? Please see our fundraising page. Thank you!

New 80 volt push mowers

If connected in parallel then they should stay connected all the time to keep voltages at the same level. Then the benefit of having easily replaceable battery modules is lost or reduced. How are you going to charge them?
- Greenworks 60V battery is 15S li-ion cells, 63V at max charge. Is it OK with your controller (doesnt it expect either 48V or 72V battery)?
I have nothing against Greenworks batteries, they are built well, the only gripe i have is that there's some DRM in their electric tools that forces you to use only original batteries.
I've had the controller running 60v: five 12Ah SLA bricks. It will handle 72 volts too. DRM -- a cheap way of staying proprietary.
 
Hi there,
I have various Greenworks devices that I would like to use with other batteries.
I looked at the signal and wrote a small program based on it.
the program is designed in such a way that you can easily use other battery types.
unfortunately i don't have 60v and 80v batteries and can't reproduce the signal for them.

since the signal pauses are always the same length, i only need the pulse lengths and number of pulses, and what for battery and manufacturers.

Like this:
View attachment 309665
like 1x400 3x200 13x102 .....

then i can include it in the program, maybe we can create a list with which manufacturers and battery types it works?

here the program

sorry for the bad english, greetings from germany

PS: adapted @plmicia signal timings for Powerworks 60V and from @StinkyGoalieGuy for Greenworks 60V, can anyone confirm that it work?
The code did not work on my Greenworks 40v model J18 wireless chain saw, which stopped spinning after 3 seconds. Do we have an updated code that matches? If so, can you share it with me?
 
Hi there,
I have various Greenworks devices that I would like to use with other batteries.
I looked at the signal and wrote a small program based on it.
the program is designed in such a way that you can easily use other battery types.
unfortunately i don't have 60v and 80v batteries and can't reproduce the signal for them.

since the signal pauses are always the same length, i only need the pulse lengths and number of pulses, and what for battery and manufacturers.

Like this:
View attachment 309665
like 1x400 3x200 13x102 .....

then i can include it in the program, maybe we can create a list with which manufacturers and battery types it works?

here the program

sorry for the bad english, greetings from germany

PS: adapted @plmicia signal timings for Powerworks 60V and from @StinkyGoalieGuy for Greenworks 60V, can anyone confirm that it work?

Hi!!! This is exactly what I am/was doing yesterday. I have a GreenWorks 40v lithium battery charger, model: 29482, and the battery is a GreenWorks Gmax 40volt lithium 4.0ah battery. Well, I was trying to charge this other battery I have for a hoverboard, but couldn't because, well you already know. I did lots of testing and finally figured out that yeah, the ohm port/pin on the charger is looking for a data signal from battery. I stopped at this point because it was late, anyways, I just found your post and program, and wow, Thank You!

I have not tested yet but, I am soon. My question is though, if you need any readings from my battery and or charger, let me know, and I will get them for you, so we can add them to the program. I suspect my battery is already covered though but, who knows, maybe its not. I have listed the official name and model of the battery charger and battery I have below.

PS: Just to get the board charged yesterday, I said F it and just went the easy/annoyingly tedious route and tricked the charger by connecting both the batteries to the charger at the same time using an adapter I 3d modeled and printed. I'll upload and link to that here shortly.

_________________________________________________________________________________________________________________________________________
* BATTERY / CHARGER SPECS *
BATTERY CHARGER:

GreenWorks 40 Volt Lithium Max
Model: 29482

BATTERY:
GreenWorks 40 Volt Lithium Max (Gmax) 4.0ah
Model: 29472
 
Make sure you buy a spare blade for your electric mower, and keep them SHARP!!!! I was surprised just how much battery life dramatically changes as the blade dulls.
 
I've been following this thread for a couple of years now. Standing on the shoulders of giants such as meatlover and stinkygoalieguy, I've been sniffing out the code on the 24v greenworks batteries. I have a little mower that I actually really like for some reason, so I'd really like to power it with something north of 4aH.

here's what the waveform looks like by the way. I'm hoping this is all correct because I connected it to a 24v 3d printer heating bed, so who knows I guess. I'll update when this inevitably fails.
logic.JPG
anyway, here's my code, written with the help of Gemini because God knows I can't write code to save my life.

// Greenworks 24V Omega Port Spoof
// Timing: 97.2ms Interval | Sync: 648us | Data: PWM Encoded
// Based on Logan's Saleae Captures (March 2026)

#define OMEGA_PIN 3

const unsigned long PACKET_INTERVAL = 97; // Your measured 97.2ms (rounded)
unsigned long lastPacketTime = 0;

void setup() {
pinMode(OMEGA_PIN, OUTPUT);
digitalWrite(OMEGA_PIN, HIGH); // Idle high
}

void loop() {
unsigned long currentTime = millis();

if (currentTime - lastPacketTime >= PACKET_INTERVAL) {
lastPacketTime = currentTime;

// 1. SEND THE SYNC PULSE
sendPulse(648);

// 2. SEND THE PWM DATA BURST (L=~40us, S=~20us)
// Sequence derived from your Saleae measurement list:
sendPulse(42); // Long
sendPulse(40); // Long
sendPulse(16); // Short
sendPulse(38); // Long
sendPulse(20); // Short
sendPulse(39); // Long
sendPulse(46); // Long
sendPulse(33); // Long
sendPulse(44); // Long
sendPulse(35); // Long
sendPulse(25); // Short
sendPulse(44); // Long

digitalWrite(OMEGA_PIN, HIGH); // Ensure it returns high for the idle gap
}
}

void sendPulse(int lowTime) {
digitalWrite(OMEGA_PIN, LOW);
delayMicroseconds(lowTime);
digitalWrite(OMEGA_PIN, HIGH);
delayMicroseconds(15); // Average high-time gap observed
}
 
Spoiler alert: this did not work. I'm grasping at straws at this point. I'm pretty sure chatGPT is like 3 messages away from reaching through the web and just disconnecting my internet. I've tried like 10 variations of this code, none of them work. Not sure what to do at this point.
 
Gotta go for the Yard foce 120v mower. THen you can chuck them in your scooters too. ;)

mow1.JPGIts a monster.
 
Back
Top