Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A Linux kernel driver for the Maplin USB Robotic Arm
Python C
Latest commit c01b8e4 @maxinbjohn Various fixes and improvements by jbs
    -   Device context now held in cmd buffer
    -   Allow multiple motors at the same time

Thanks to John Hanson for these improvements.


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 (
     -   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:
Something went wrong with that request. Please try again.