Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A Linux kernel driver for the Maplin USB Robotic Arm

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 examples
Octocat-spinner-32 patch
Octocat-spinner-32 CHANGES
Octocat-spinner-32 Makefile
Octocat-spinner-32 README
Octocat-spinner-32 TODO
Octocat-spinner-32 robotic_arm.c
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.