maxinbjohn / robotic_arm_driver

A Linux kernel driver for the Maplin USB Robotic Arm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The USB_ROBOTIC_ARM is a proof-of-concept driver for the OWI/Maplin USB
Robotic Arm. I created it for fun. So, don't expect much from it.

INSTALLATION:

Select the 'USB ROBOTIC ARM' and build the kernel.

If we build it as module, locate the robotic_arm.ko

As 'root', insert the module:
# insmod robotic_arm.ko
# dmesg
[ 8808.461441] usbcore: registered new interface driver robotic_arm

Connect the Robotic Arm to the PC.

# dmesg
...
[ 8718.729311] robotic_arm 5-1:1.0: USB ROBOTIC ARM now attached

# cd /sys/bus/usb/drivers/robotic_arm/
In my case,
# ls
5-1:1.0  bind  module  new_id  remove_id  uevent  unbind

# cd 5-1:1.0
# ls
bAlternateSetting  bInterfaceNumber    bNumEndpoints  gripmotor  motor2  power                 uevent
basemotor          bInterfaceProtocol  driver         led        motor3  subsystem
bInterfaceClass    bInterfaceSubClass  ep_81          modalias   motor4  supports_autosuspend

Modifications by jbh (john.hanson@cccplusplus.co.uk)
     -   Device context now held in cmd buffer
     -   Allow multiple motors at the same time
     -   Add parsed file which allows a single file to control the robot
            characters 0..8 select the device to control
            character S=stop, F=forward, R=reverse, E=emergency (stop all motors)
            eg   echo "0F" >parsed    causes the gripper to close

HARDWARE AVAILABILITY:

OWI/Maplin USB Robotic arm is available from:
http://www.maplin.co.uk/robotic-arm-kit-with-usb-pc-interface-266257
http://www.owirobots.com/cart/html/owi-535pc-robotic-arm-kit-with-usb-pc-interface-assembled.html

REFERENCES:

Reverse Engineering details of Robotic Arm's Protocol is available here:
http://notbrainsurgery.livejournal.com/38622.html

About

A Linux kernel driver for the Maplin USB Robotic Arm


Languages

Language:C 98.3%Language:Makefile 1.7%