Can-hacking

Our electric wheel chair appears to use a derivative of the CAN bus for it's control network, we need some tools for working on this. There are some different ways to go, however on something like this we need known-good tools to start out with. If anyone wants to go in on a CANUSB cable we can begin hacking on this wheel chair controller. From what I've read this cable essentially gives you a serial interface to the CAN bus, use minicom/hyperterminal/etc. to read data off the bus and to inject commands into it. In theory we could watch the joystick issue commands to the controller and then write some arduino code to mimic the joystick.

Hacking

Interfacing to DXBUS with a PIC

PIC dxbus hacking (dosman's note: this search no longer finds schematics for the controller, included for completeness only):

[14]
...
Google this --- Dynamic DX Joystick Controller schematic -- and you will get a rather larger [93 page PDF file] that explains the whole specification. This is suppose to be THE 1101 joystick module.
...

...
Programmable parameters relating to the SLM are contained in the DX Remote
(UCM Remote) and the SLM programs. These programs can be modified using
the PCD (Programming Configuration Diagnostic) tool.
...

Verification that DXBUS is based on CAN

DXBUS appears to be partially or fully based on the CAN bus based on several references. This is from the Dolphin joystick manual (page 50):
[16]

CAN short fault Cause:

1. Short between CANL and CANH.

Action: < The short may be within a module or within a DX
Cable, or the exposed DXBUS contacts may be
shorted by foreign material. Ensure that all DXBUS
contacts are clean.

CAN L fault Cause:

CANL failure.

Action < Check for a short from CANH to another DXBUS
wire, or a short

More info

Quote from the paper from the paper Schedulability Analysis of CAN based Systems with
Precedence Constraints [17]

DXBus is a four wire communications system
(two power lines and two data lines, CANL and
CANH) with a maximum length of 15 meters
and a transmission rate of 2/19 Mbits/s.
Basically, DXBus uses CAN protocol with
some extensions, i. e. special voltage values
on the data lines are used for “emergency
stops” or power up.
CAN identifiers are assigned to modules and
not to messages. As a result, 1 byte in the
message data field must be used to indicate
the message type, and up to 7 bytes for
message data.
During normal operation, DX modules
communicate using Network Variables (NVs).
NVs are transmitted periodically (during time
slot), with period either 20ms (fast NV) or
200ms (slow NV).
A more detailed description of DXBus can be
obtained from [10]. In this paper, we focus on
the processes associated to DXSIR functions.
DXSIR is a wheelchair with two driver wheels