I'm starting in the Arduino world. I've been reading a lot on the subject and I have a few questions regarding a project in which I'm trying to get involve.

I want to control my Canon EOS 7D with a joystick using Arduino. I ran with this two projects.



Both have parts of what I'm trying to achieve. The main doubts that I have are related with the USB port. If I want to connect a USB Joystick to Arduino and then the Arduino to the camera using USB, Do I need to have two USB host shields?

How is it that in the first example the Wii gamepad is connected straight to the Arduino? Can I do that with an USB generic gamepad?

If I start the project with a regular USB gamepad, Do you think I'm going to be able to replace it with a wireless gamepad on the future?

Is it possible to take advantage of the USB port that, the Arduino UNO already have?

As you can see, a little of orientation would be good!, THANKS!!


1 Answer 1


A quick glance at the Arduino UNO page shows that this board is not setup to be a USB host which is necessary to control your camera and receive input from the joystick. You'll need to choose a development board that can be used as a USB host. Even then, you'll need a hub for two devices.

I know nothing of Arduino, but a quick search yielded this.

Regarding the Wii controller, it uses a much simpler serial interface (I2C) which allows direct connection to his Arduino. This is not possible with USB (without additional hardware). However, one thing you could do is open up a generic USB controller and make your own connections to the various buttons/pots within, then route them out of the controller to your application.

  • \$\begingroup\$ Thanks for the link, I've already seen the host shields, and I've also read the Arduino page, but as I don't understand much of electronics I've imagined that someone could have developed some kind of hack to do it. It's good to know that I can use just one shield and connect the two devices using a hub, wich is cheaper. Thanks! \$\endgroup\$
    – limoragni
    Jul 26, 2012 at 15:15
  • \$\begingroup\$ @limoragni You'll need firmware support for enumerating a device attached to a hub. It doesn't work exactly the same as it does when connecting the device directly to the host shield. As with most Arduino applications, I am sure this code probably exists. \$\endgroup\$
    – Jason
    Jul 26, 2012 at 15:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.