Motor Controller Board Design DetailsThis document gives a detailed description of the wheelchair controller boards. You don't need to read this unless you are an engineer, and want to customize the design.
OverviewThe electronics are comprised of two electronic boards: The joystick motor controller board, and the joystick board.
The motor controller board receives signals from the joystick board, and controls the motors. The joystick signal is a voltage level from 0 to 3.3V, with 1.65V being the rest state of the joystick. The motor controller is comprised of 2 MOSFET H-bridges, one for each motor, a Texas Instruments MSP430G2295 processor, several status LEDs, a 3.3V voltage regulator, a reverse polarity protection circuit, a 15 amp mini blade automotive fuse, a USB bridge, and a power on MOSFET switch.
We used the MSP430G2295 because it is cheap, has a C-friendly architecture, is low power, has a free C compiler and affordable development tools, is firmware upgradeable via it's UART port, and simply we have a lot of experience with it.
The processor receives analog inputs from the joystick, and converts these values into digital values, which are in turn converted into polar coordinates. The polar value is then used to update the direction and speed of the motors. The motor speed is controlled by 2KHz PWM signals. The motors only use a couple of amps each so the MOSFETS only get slightly warm, at this low PWM frequency.
The reverse polarity circuit consists of a MOSFET and zener diode which block the current if the battery inputs are reversed.
The gate of the power-on MOSFET must be tied low through the JOYSTICK switch for it to pass power to the circuit. We had considered running the battery input in series with the power switch, but we would have had to use heavy gauge wire, and run this up to the power switch on the joystick enclosure which would have made cable routing more difficult, and in addition this high current line would have induced noise on the control lines. The power-on MOSFET on the board needs only a low power control signal, and so we could allocate one of the Ethernet cable wires for this function.
The joystick board mates to the joystick, has an Ethernet modular connector and a switch connector. We created this board to standardize the wiring of the joystick, as we realized that there were just too many ways that an end user could connect it up incorrectly.
The joystick board has fault detection. We were concerned that if one of the control wires from the joystick board broke, the wheelchair would interpret the situation as the joystick being pressed to an extreme and send the wheelchair out of control. To fix this potential situation, we added resistors to each of the positive and negative sides of each of the two potentiometers in the joystick. These resistors offset the minimum and and maximum voltages from the potentiometers. Without the resistors, the minimum and maximum voltages for the X and Y joystick inputs are 0, and 3.3V respectively. With the resistors the minimum and maximum voltages are .15V, and 3.15V respectively. So with the resistors, we know that if the controller receives an input voltage that is below 0.15V or above 3.15V there is a potential problem and we can disable the motors, and indicate an error condition.
The USB bridge is a Chinese Prolific brand USB PBL2303 chip. This chip was chosen because it cheap and has decent driver support. The only problem we encountered is that some vendors are selling counterfeit chips, and so you have to be careful about where you purchase them. The USB bridge allows the controller's firmware to be upgraded via USB, and allows flash settings to be updated.
If you are a software and electronics and engineer and want to develop your own custom code for the board, you will need to obtain a debugger tool from Texas Instruments, part number: MSP-FET430UIF. You will also need to download a free copy of the Code Composer Studio compiler from Texas Instruments, which is free for smaller sized projects.
Please note that you can damage the board if your code is bad. In particular, if you turn on two MOSFETS on the same side of the motor H-Bridge simultaneously you will cause a short circuit and blow out the MOSFETs. Please don't change the MOSFET driver code unless you know what you are doing.
The Open Wheelchair hardware design is licensed under CERN Open Hardware Licence v1.2 and the Software is licensed under the GNU General Public License Version 3. By viewing or using the design posted on this website you are agreeing to these licenses. To view the license see our license page.