Pressing buttons on existing device (lawnmower, coffee maker..)

I have a robotic mower that isnt very smart and has no wifi. I will never manage to make it very smart, but my goal is to have "wifi control" over the physical buttons on the control panel.

The control panel has on/off, auto, start/stop and home buttons as well as a few LEDs indicating charging and error status. The control panel is connected to the main logic board using a flat cable with standard sized pin headers so it would be simple to put something in between that can "press buttons" and see the LED status, maybe even read or spoof the rain sensor.

Best I can tell there is no logic at all in the control panel (cant be sure, its glued in for waterproofness), and all the switches and leds are presumably just connected straight to the mainboard. I havent quite figured out the entire pinout, but probing around with my multimeter it appears to be just common ground, 1 wire per button, and not identified yet, but Im guessing one per LED and the others for the rain sensor (no idea yet) and Vcc.

For the buttons, to send commands to the mainboard, Im really confused as to how I need to do this. Can I just wire them directly to the digital out of an arduino/esp32, or do I need to isolate them using a "4066 quad bilateral switch" (found that somewhere) or optocoupler or what? Im yet to test this, but Im assuming for now 3 or 5v is being switched with neglible current.

If its not safe to connect directly, I would love to find a board or shield that has an esp32 (or similar) with whatever else I need to drive 4 or 5 "buttons" , but I can not find any shield that has provisions for this. Sure, relays, but that seems overkill. Wouldnt this be a rather typical use case for an esp32, making just about any dumb device smart by "pushing its buttons"? I mean, my coffee machine needs one too :).

What is the best way to make sure the physical buttons continue to work? Can I just put them in parallel with the microcontroller, or am I better off connecting them to digital inputs and then replicating the signal on the digital outs?

Aside from the buttons, the rest seems manageable. I can tap power straight from the mower battery using a buck convertor and will probably also use a voltage divider to read the battery voltage if for no other reason as turning off the microcontroller if the battery gets too low. "reading" and driving LEDs shouldnt be a problem. I have no idea yet how the rainsensor works, but Im guessing it has some variable resistance. Worst case or if I cant figure that out, can just ignore that.

Software wise, I was planning on using ESPhome, and then integrate it with my Home Assistant server.

I would appreciate any insights hints or pointers.

Until you know more about what the buttons connect to, everything I say would be just a guess.
What is on the control board on the mower?

based on your description - and the assumed electronic knowledge on your side - take a relay module board and wire the buttons to the relays.

p.s.: never tried on my own, but some days ago i found this ESP8266+8ch relay board

I have had luck using an Arduino pin to act like a button to ground:

  // Close switch
  pinMode(Pin, OUTPUT);
  digitalWrite(Pin, LOW);  // Pull to ground

  // Open switch
  pinMode(Pin, INPUT);

The core of it is an ARM cortex M0.

Thanks. While relays would seem like overkill, thats a neat board and for the price, well, thats not the problem. Its kinda big though, gonna be a tight fit... edit.. oh and not much IO left to handle leds or rain sensor.. hmmm 28V is also a shame. So close, battery is a 7 cell lipo, so fully charged, 29.4v.

If you can identify what the pins do, John's reply (#4) will probably work.

How did you realize it finally? I'm interested to do the same with my coffee maker(default model), but dunno how to recognize the type and model of the control board? Any suggestions?
Thanks in advance

many buttons are tact switches and have a clicking sound. they only complete a circuit.
so, that means either bringing a line high, or low.

the heart of the beast will be some sort of microcontroler or other logic circuit.
one would need to know the sequence to press the buttons to get it to work.

assuming the signal lines are logic level and are also less than 20mA, I would make up a simple transistor to test and clip on my leads to the switch. all power from the circuit board under question.

I would assume that there is no room inside of a device to add something as large as a relay, and if we are talking about low power signal lines, there is no need for one either.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.