A Linux kernel driver for the Maplin USB Robotic Arm
Switch branches/tags
Nothing to show
Clone or download
maxinbjohn TODO: remove it
Remove TODO file since it is not valid anymore.

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Latest commit d79ed48 Feb 8, 2016


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.


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


OWI/Maplin USB Robotic arm is available from:


Reverse Engineering details of Robotic Arm's Protocol is available here: