I've got a situation where I need to communicate wirelessly between a bluetooth-enabled Android device and a digital scale which can be accessed digitally via USB.

While normally I would be happy to just use one of the new bluetooth human scales, the scale needs to be officially certified and I haven't found any certified bluetooth-enable scales so far... and since it's certified hacking the scale itself is out of the question. So what I'm left with is a certified scale with a USB interface that I need to access via a bluetooth-enabled Android device.

I've very little experience with Arduino but it seems to me I could use something like Sparkfun Arduino Pro Micro + Sparkfun Bluetooth Mate Silver

From what I've understood, I could simply plug my USB into the Arduino and then have it do data i/o via the bluetooth mate.

So my question for those more experienced than I : are things so simple, or am I missing something? will there be a lot of Arduino coding to do or will this work out of the box? with these models can I count on a strong, reliable bluetooth connection? a bluetooth connection that had to be constantly re-established would completely ruin the interest of the project...


1 Answer 1


No, an Arduino is a USB device and as such can only connect to a USB host or to a role-switching USB OTG device. So it would not be able to directly connect to this scale device.

You can get a USB host shield for an Arduino, but it is quite expensive and very challenging to program. You'd probably be better off with a compact embedded linux system such as a raspberry pi or beaglebone black, plus a bluetooth dongle (this will actually be cheaper than the arduino, host, and bluetooth shields). However, if it's not known that this USB scale is usable with current desktop linux distributions, then you may find the project extremely challenging as you'll first have to research (/reverse engineer) the protocol used by the scale and implement your own driver.

Another possibility might be to use a compact embedded PC running windows as a gateway, if that is what the manufacturer provides USB drivers for.

  • \$\begingroup\$ an Arduino is a USB device with the exception of the Arduino Due, which can work natively as USB host, and supports the USBHost class. \$\endgroup\$ May 2, 2013 at 19:38
  • \$\begingroup\$ Interesting and worth keeping in mind. The as yet unresearched challenge of implementing the scale's USB protocol on an embedded system remains though. Not that it's a given that a linux driver already exists, but if it does porting it to a modern embedded linux should be less painful. \$\endgroup\$ May 2, 2013 at 19:53

Your Answer

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

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