Talking to existing USB devices

Hello,
I have lots of devices in my lab that are controlled by joysticks or rotary encoders of various types. Things that control microscopes and LEDs etc. The controller devices (encode/joystick etc) are usually linked to a controller box of some type that has a USB or RS232 connection which allows simulateous computer control through USB. The devices usually come with an API so the commands required to control the device by computer are available.

I have recently got interested in replacing the hardware control devices (joysticks, encoders etc) with an Ipad and had some success with an ethernet shield + arduino uno and wireless router. This is fine provided the the device in question can be controlled directly from the arduino by TTL or PWM and only requires 0-5V for control but this is not always the case. Therefore, it would be useful in several cases to use the existing hardware control boxes rather than replacing them with an arduino.

I wondered if it is possible to use an ipad to send commands to the arduino (via the ethernet shield), and then link the arduino via its USB cable to the hardware controller for the device I want to control. Then I would translate the ethernet command from the ipad into an RS232 tyep command to the hardware controller. I would essentially emulate the computer control by sending commands from the arduino to the hardware controller.

I would be interested to learn if this concept is workable and if not, how else I might do this.

Thanks,
Nick

Hi Nick,

I think you will still need a usb root hub somewhere in the set-up, if you want to control your usb devices from the Arduino usb port. Probably be better to use a cheap pc, write the control software in c# or something, and interface everything into that.

Best wishes,

Ray

You'll need a usb host shield, as the standard Arduino usb port is a client, unlike the usb ports in your PC. If the devices require a driver when connected to a PC, then you'll also need to rewrite that driver on the Arduino.