When I used to drive to work every day, I noticed that below ~30mph I had a tendency to roll my window down. Above ~40mph the wind would annoy me and I'd roll it back up. So I thought, why am I using my finger like a sucker!? I threw together a simple Arduino prototype that hooks up to the car's Vehicle Speed Sensor (VSS) wire. Initially, this just uses some LEDs to indicate what the controller would do if it were hooked up to the controls as well as showing some state.
Here's a sort of first run at the code: https://gist.github.com/opie4624/9b5a6bb055191c6f5d66
So how did the test run go? Not great, Bob. About a month ago, I hooked everything up in the car and took a drive around the block, but nothing really happened. Fast forward to this past weekend, when I was hooking up a backup camera. I wired up the backup camera's activation lead to the wire I had labeled "Reverse" and started backing out of the garage to test it, and it would only flicker on for a second. Silly me, I had swapped the labels on the two wires I ran: 1 from the VSS wire, 1 from the Reverse indicator. That also explains why after testing out the Arduino, I could no longer get it to connect to the computer for programming: When I backed out of the garage to test it out, I had inadvertently pumped ~12V DC into one of the GPIO pins of a circuit that runs on 5V.
The plan: A new Redboard is on the way. Once I know the circuit roughly does what I want, I'm going to build an I2C relay board to put in the door and wire up to the window buttons. This way the main Arduino board can live under the dash, and only 3-4 wires need to make their way through the door hinge.
Other possibilities: Using an ODB-II Kit to control the windows via CAN bus. I'm just not sure whether the Honda Element had windows accessible via CAN in 2005.