Sunday, May 11, 2014

Hacking electric wheelchair drive

While building some robots for a museum we came up with the idea of using an electric wheelchair as the base for the robot.
Not wanting to replace the electronics we gave it a shot to try to use the existing motor driver and control it from an Arduino. On inspection it turned out to be a very common Penny and Giles Pilot plus drive.
Very little technical information is available about the interface between the joystick- and motor unit of this system. So we started reverse engineering. Here is what we have found so far.

By opening up the joystick and probing connections inside we found that the joystick movement are communicated as serial data @19200BAUD, 8 databits and even parity. Apart from the driving data the joystick unit also emit an additional, and completely different, data stream for controlling various lights and actuators on the chair.
The physical connection is using a propitiatory 6 way connector.

I turns out that the joystick sends drive data packets with checksum roughly every 10mS. Immediately after the data line changes direction and the motor controller returns a packet of data, again with checksum.
Simultaneously but not in sync another data signal is sent to control lights and actuators.

The data format seem to be completely non-standard but relatively simple to encode.

Probably for safety reasons the system does not tolerate any signals being missing or corrupted without shutting down so a fair bit of probing and fiddling went in to eliminating the joystick and replacing it with an arduino.
Here is a rough cut first Arduino sketch that allowed us to drive the wheelchair motors actuators and lights.
Quick shaky video of it running.

We plan to turn out a easy-to-use Arduino library for controlling the PG Pilot Plus soon.


19 comments:

  1. Thanks for sharing such kind of nice and wonderful collection......Nice post Dude keep it up.
    I have appreciate with getting lot of good and reliable and legislative information with your post......
    electric wheelchair(s)
    motorized wheelchair
    wheelchairs for sale
    power wheelchair

    ReplyDelete
  2. I have a Pride Mobility 40A GC2 controller with the 4 pin joystick pigtail. I've figured out GND, INH, JStick, 24V pins on the Joystick connector and tried your code removing the actuator messaging but can't get anything from the device. Is there a bootup sequence or required conditions which must be met to turn the controller on and start taking commands? Do you know if the Inhibit line needs to be pulled low initially and then pulled to 5V or can it float at 2.5V?

    I'm also wondering if you figured out any other message conditions like Drive_modes?
    Thanks.

    ReplyDelete
  3. I noticed the example Arduino Sketch uses a 20mSec cycle for the motor control data yet it was mentioned that a ~10mSec cycle was expected by the controller. Which is correct or is 20mSec close enough that it still worked?

    I've not yet been successful talking to a PG GC2 controller. I will build a bidirectional cable and see if I can read back, or even see, the controller response packet.

    ReplyDelete
  4. Hi,

    This blog is an enlightening to readers. I found this product www.portashopper.com.au which is very helpful for impaired people. Useful information Included here. God bless.

    ReplyDelete
  5. Nice post, this article is really helpful for those people who is disabled.
    motorized wheelchair

    ReplyDelete
  6. Hi, thanks for such a helpful article and informative article. This article is very helpful for those who are disabled. Well, if someone is looking to buy an electric wheelchair then I'd love to recommend this list of Electric Wheelchair. Trust me you will find the best one for your needs on this link.

    ReplyDelete
  7. Shop the widest selection of discount Power Wheelchairs online with free shipping nationwide right to your home or facility

    ReplyDelete
  8. Hello,

    This information is very inspiring. I have a Qtronix Power Module and wish to control it using Arduino. Unfortunately, the link to the Arduino sketch seems to be broken. Would you please post the sketch again? Many thanks inadvance.

    ReplyDelete
  9. was very pleased to find this web-site.I wanted to thanks for your time for this wonderful read!! I definitely enjoying every little bit of it and I have you bookmarked to check out new stuff you blog post. net worth

    ReplyDelete
  10. A very smart idea!

    Keep up your amazing work and interesting articles - can't wait for the next...

    Thanks!

    Best Wishes, from Scooters 'N Chairs

    ReplyDelete
  11. I welcome all the suggestion mentioned in this blog related to new learning skills. It is definitely going to help me to adopt new exited way of learning. I think, others will also feel helpful this blog for their needs.
    รถเข็นไฟฟ้าพับได้

    ReplyDelete
  12. Grammar, vocabulary, tenses, indirect speech, passive sentences must always be keep in mind while writing a blog. Everyone must read this blog. This is going to help everyone.
    รถเข็นไฟฟ้าพับได้

    ReplyDelete
  13. I realize this is an old post and you may have moved on, but I'm working on a similar situation -- a P+G Pilot+ driver, but no joystick to help me figure out the signals. I tried the link to your Arduino sketch and it went nowhere. Were you ever able to post the Arduino library for the PG+? Thanks!

    ReplyDelete
  14. Professionally written blogs are rare to find, however I appreciate all the points mentioned here. I also want to include some other writing skills which everyone must aware of.
    รถเข็นผู้สูงอายุไฟฟ้า

    ReplyDelete
  15. Collapsible walking stick providing a convenient option for those needing assistance, collapsible sticks smoothly and securely locks in place to provide extra stability while walking on any surface.

    ReplyDelete
  16. I'm seeking a source for the connector described in this post. A friend of mine has a motorized wheelchair with a critical seat-raising mechanism that no longer works apparently because two pins of the male side of this connector are missing. I'm wondering if there is any source for a replacement connector. The company that made the controller for the seat-raising mechanism is now out of business, I'm told.

    More specifically, I'm wondering how the male side of this connector is connected to the cable to which it is attached. Are the leads soldered to the pins or is there some sort of compression fitting or something else? I ask because my friend bought a replacement controller on ebay only to find that it wasn't quite the same as the one she had and it doesn't work to operate the seat-raising mechanism. It does, however, have a complete male side of that connector so if I could understand how to remove that connector from the cable of the controller that doesn't work and attach it to the cable of the controller that did work, she might be back in business.

    Thanks very much for any assistance you can offer.

    ReplyDelete
  17. An electric or powered wheelchair is propelled by an electrically based power source, typically motors and batteries. A fully charged electric wheelchair last for at least 8 hours. You can achieve at least 10 miles with an electric wheelchair. If you want to buy the best electric wheelchairs at the best price then you can visit Aids 4 Mobility website.

    ReplyDelete
  18. Merhaba.Oncelikle iyi günler.Tekerlekli sandalye kullanan bir arkadaşım var.Joystick kolu aruzalandi.Vsu modeli.5 kablo çıkışlı.Elimizde Vr2 8kabla çıkışlı gımbal var .bunu vsi modelinde nasıl kullana biliriz .Bize yardım ederseniz sevinirim.Tesekkurler.

    ReplyDelete