Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Repurposing a Power Wheelchair for robot chassis

Status
Not open for further replies.

deuplonicus

New Member
Hey guys! I'm back with a new project idea!

I recently came across two of these:

**broken link removed**

So I quickly took one apart and got to finding out how the joystick controls the motor controller. Both the motor controller and the joystick have PGDT chips inside of them (their dealer website is secure and will not let me get datasheets or detailed info)

**broken link removed**
The wood was added so we could sit on it and ride it around town until we manage to control this by uC

**broken link removed**


It turns out the joystick connects to the motor controller via one-wire network. I figured how bad can the data be? well after hooking the data line up to my logic sniffer, I quickly realized there are HUGE data packets! I also noticed there is a lot of "noise" in these data packets from my sniffer. So I started with the machine "on" but not moving. Below is multiple copies of the same data packet, showing the "noise" or variations.

**broken link removed**

Each row of data is a copy of the same data, but from 6mS later. These packets are sent every 5-6mS.

Then, to attempt to figure out what in this data stream does what, I set the chair drive forward, and captured yet more data:

**broken link removed**

So I thought I was getting somewhere. I tried left and right movement captures. Unfortunately for some reason when I do this, the data packets merge together and I cannot tell one apart from the next.

I am hoping someone here has some advice on how to decode this thing further? as you can see from the data captures, no data packet is identical to the next. I wonder if the joystick is purely analog and impossible to hold perfectly still? This would account for continuing varying data. I will continue working on this until I have a robot chassis! Any comments will be greatly appreciated.

of course if this turns out to be impossible to control, I will resort to controlling the joystick with servo motors, hah! I really do not want to do this though, I'm sure most of you would agree.
 
Last edited:
Here's another option, the joystick probably has a magnet on the stick and analog hall sensors that produce X and Y voltages depending on stick position. You can hack into that pretty easy and inject your own analog voltages to control the system.

Secondly, what signal goes from the hand controller down to the PWM power unit next to the batteries? It might be even easier to hack into that signal and throw the hand unit and joystick away completely.

Also I think your "logic sniffer" is doing a very poor job of charting that signal, the first half (first 75%?) is always the same signal I believe but your sniffer is showing a lot of differences that are probably not there in the actual signal. If that's the best resource you have for decoding that signal I would look at the first 2 options. ;)
 
What SPECIFIC points are you tapping for your data?
 
It might be even easier to hack into that signal and throw the hand unit and joystick away completely.

That is exactly what I am trying to do eventually. You were right about the hall effect sensors:

**broken link removed**

Good idea though about sending my own voltages! these hall effect sensors are like nothing I've seen before, each one has 8 pins! however the sensor board only has 8 pins total output to the joystick controller.


What SPECIFIC points are you tapping for your data?

Here is an image. The sensor is kind of in the way, sorry. This is the logic sniffer shown tied in to the data line just after the ferrite ring, on its way towards the motor controller:

**broken link removed**

I tried tapping in closer to the board on the other side of the ferrite ring, but I found tapping into the signal on the father side of the ferrite ring gave me cleaner data. Then I started wondering about ferrite rings suppressing noise in my FP sign, but thats still another issue and thread.
 
Last edited:
Can you increase the timebase sampling (and display) of your logic sniffer?

Or check the analog voltages with a multimeter coming out of the hall sensors. That is assuming they hav an analog output, I have not seen 8 wire sensors either. If they have a number on the sensors you can google a datasheet and that may be all you need.
 
Can you increase the timebase sampling (and display) of your logic sniffer?

Or check the analog voltages with a multimeter coming out of the hall sensors. That is assuming they hav an analog output, I have not seen 8 wire sensors either. If they have a number on the sensors you can google a datasheet and that may be all you need.

Ok, so under close inspection I saw it was actually two 4 wire hall-effect sensors side-by-side soo close that you could not see the seem. Precision soldering there! is this to prevent data errors? or could a second hall effect sensor be used to calculate acceleration? I doubt it is that complicated. of the 4 pairs of wires, 3 pairs of the two packages are soldered together.

Anyhow, I looked everywhere, octopart, etc, this hall effect sensor does not exist! I'm going to be probing it to compare to all the other 4 wire in-line package hall effect sensors available (they all seem to have the same configuration), but first I need to clean my lab a little!
 
They probably just use 2 sensors in a differential mode. The joystick is a 4-way design so it might be easier for them to use 4 sensor for the 4 ways.

Just measure the voltage on the pins of the sensors, and move the joystick, there should be one output pin from each sensor where the voltage changes as the joystick position changes.

You might also find the sensors have 2 output pins, with inverted voltage outputs. If you are going into a ADC you probably only need to use one output.

(edit) Actually I'll take that back, since there are only 8pins on the plug to the joystick board it is most likely 2 power pins, 4 signal pins, and 2 NC pins. I would just measure voltages on those connector pins and move the joystick.
 
Last edited:
I have a feeling that you are loosing packets on your sniffer due to resolution(can you zoom in) and that each single 1: 5-6 ms packet is all that is requd,

also is this a digital signal (5v) ? have you tried to spoof it ?

a uart tool could help if you can turn the # of bits up!
 
Status
Not open for further replies.

New Articles From Microcontroller Tips

Back
Top