Arduino with USB?

Sorry guys I am a newbie, I just wanna ask if I can use this board to communicate with USB devices besides PC. I am currently doing a project that reuqires a microcontroller to communicate with a multimeter through USB cable. I know that USB needs master-slave relationshi, can this board be the master piece, I am not familiar with USB, my friend said it's possible if you program it as a master. Do you guys have any idea? Besides, the arduino board doesn't have a standard USB receptacle, I am thinking that I should be able to use this receptacle since both types of USB plugs share the same pins, correct me if I am wrong. Thanks!

Arduino’s USB connector is exactly standard – for a USB peripheral, not a USB host (or master as your friend called it). USB is designed with different connectors like this to make it obvious which ‘end’ of the cable a USB devices are meant for. The host connector (flat rectangle) is called a “type A” connector, while the peripheral connector (square with one side curved) is called a “type B” connector.

The current Arduino board cannot act as a USB host. Being a USB host requires a fairly substantial amount of computing power to run the host side of the USB protocol. USB peripherals need much less power to communicate with the host. A protocol that requires one side to be more powerful than the other is sometimes called an “asymmetric” protocol.

So you’re out of luck if you want Arduino to talk to other USB peripherals unaided. You can get tiny embedded Linux boxes for <$100 that have USB host ports and can communicate with USB peripherals. If you’re interested, I can give some pointers.

Thanks for your reply!

The cable that DMM uses is OC4USB from Fluke,
I need something that can talk to the DMM and use some wireless module to communicate with another wireless module(PC). Do you have any idea? I don’t know what kind of linux box you mentioned, I’d appreciate if you can give me some help!

I've read the spooky arduino on your blog and noticed arduino is actually not be able to be a USB host. Do you know any other boards that can do that? I was trying to search on google...but I didn't get any good results...

The Fluke "IR-USB" cable that is used to communicate with the meter over infrared is just a simple infrared transceiver and USB-to-serial chip. That's what it seems after reading the FlukeView manual. You can verify this by checking to see if the IR-USB cable appears as a normal USB serial port to Windows (or Linux or whatever), just like how the Arduino appears.

So then, the Fluke is just outputting simple serial data at some baud rate (probably 9600 or 57600 bps), with a modulation very similar to how TV remote controls work. You can easily read this with Arduino by adding an IR detector like the Sharp GP1U52X to the RX & TX pins of the Arduino. Search around on the net and you'll find pages on how to use it with other microcontrollers, like this one:

Regardless of whether you get the Arduino to do this or use some more advanced microcontroller board, you'll need to know the protocol sent by the meter. I did a quick search and found these pages:

If those commands do what you want, then great. Otherwise I'd suggest you find a simpler, less proprietary, means of doing your data logging.

If your application is only looking at digital events (on/off) or analog values that only need 8-bit resolution, I'd just use the Arduino itself as the "meter".

In general, going to something as complex as a computer that can be a proper USB host is overkill, it's rarely needed in the realm of embedded systems like multimeters and Arduino.