Adding wireless (WiFi / Bluetooth) to your project

So you have a nifty gadget you built and you want to get it wirelessly on the net or talking to your computer.

You could use:

All of these are too expensive for practical ubicomp stuff. The BlueSMiRF is the cheapest overall, but doesn’t give you IP connectivity. The cheapest IP solution is the frankensteinian concoction of a SitePlayer and pocket AP. Not exactly as plug-and-play as something like the Wi-ME.

But, what about power concerns:

BlueSMiRF 5VDC @ 48mA, can be reduced to 2mA with config tweak
Digi Connect ME 3.3VDC @ 250 mA typical
Digi Connect Wi-ME 3.3VDC @ 400 mA max
Lantronix XPort 3.3VDC @ 267 mA nominal
Lantronix WiPort 3.3VDC @ 460 mA peak (388mA avg @ max data rate)
Asus WL-330 pocket AP 5V @ 680mA
Netgear WGR-101 pocket AP ??? 5V @ 2A power supply
Dlink pocket AP ??? probably similar to netgear

Obviously, BlueSMiRF wins at power consumption too. But jeez, I want my gizmo to have an IP address! None of the WiFi solutions above are efficient enough to run long on a battery. I wish someone would make available these custom WiFi chipsets that are coming out in phones and things like the Nintendo DS.

23 Replies to “Adding wireless (WiFi / Bluetooth) to your project”

  1. Hi Sonny,
    Not that I know of, beyond something like an OpenWrt-compatible router with USB running Linux. Because of how USB is designed, the host has to be a fairly complex device. It almost has to be running some sort of OS. Now there are getting to be very tiny OS-running devices (like the EyeFi SD card that contains a Linux computer and WiFi interface, along with an 8GB flash memory chip), but I’ve not seen anyone applying that tiny-tech to this problem.

  2. I know this question was asked earlier but it seems like it has been a few years since your original answer, so I am going to ask it. Are there any adapters that are out now that will allow a USB device to go wireless? Mostly looking for bluetooth. Something you could plug a USB device into that would let it communicate through bluetooth or any other wireless method….

  3. Hi Chris,
    Probably the easiest way to add networking to an Arduino is with the Adafruit Ethernet Shield. It’s wired Ethernet though, not wireless. There’s currently no simple way of getting WiFi to an Arduino.

    You can do wireless with an Xbee shield. Xbee is a low-cost wireless system. You’d need a corresponding Xbee on your PC, like with the Xbee Explorer and a program running on your PC.

  4. Cool post! I’m toying around with the idea of using an Arduino board, a gear/servo motor, and wireless internet to point to the current status of things. The wireless part seems painful especially since I have not even played with an Arduino board by itself yet. Ha! Ow well I’ll keep reading. :)

  5. Hi Ben,
    Not dead, I just couldn’t quite figure out what you were asking. What is an “AV to usb wire”? If you mean the cheap “USB video capture” dongles that have a composite video cable (yellow RCA jack) and stereo audio cable (red & white RCA jack), like this one, then no. Video only goes one way with that, into the computer. It’s used for digitizing things off a VCR. There are things that people call “USB video cards”. These go the other direction, sending a video signal out via USB. These end up looking like a separate monitor to the OS. Here’s a typical one. They are usually a bit more expensive than the video capture dongles.

    What kind of laptop do you have that has no provision for hooking up to an external monitor?

  6. Hey! I have a question. I’m planning to make a telepresence robot from a roomba, laptop, dvd player, roostick, AV to usb. Possible? Anyone interested because I’ll post a guide. Oh my biggest question my laptop has NO dvi, mini or any type of output ports just usb headphone, ethernet and modem. So is it possible to use a AV to usb wire to display my laptop on a tv/ AV input device, or any other solution for 15 dollars. Ebay is a great option. bhylak@gmail.com

  7. The price of the “embedded” WiFi devices are outrageous!

    It is sad that in 2 years since you wrote this, prices have not come down.

    Today I would go with a Lantronix Xport Direct ($28) and a D-Link AirPlus G DWL-G730AP travel router (~$50).

  8. Hi Mat,
    The USB protocol is very asymmetric. There’s a huge difference between USB peripherals and USB hosts. USB hosts are expected to control most of the protocol, while USB peripherals can be simple responders to the host. The common USB Bluetooth stick you mention is a peripheral meant to be plugged into a USB host. Any Roomba USB interface is also a USB peripheral. Without a USB host in the middle, two USB peripherals can’t talk to each other. So, no, you can’t just plug a USB Bluetooth stick into a Roomba.

    If you want Bluetooth on a Roomba, you need a Bluetooth-to-serial adapter. You can build one yourself using a BlueSMiRF, as described in the Hacking Roomba book and here, or you can buy a fully assembled RooTooth from Sparkfun.

  9. Tod, Is it feasible to use a commonly available USB bluetooth stick in the Roombongle (or roostick)?

  10. Tony, unfortunately, no, it’s not really possible to add Bluetooth to a general USB device. USB has some strict timing requirements that are difficult to meet over a wireless connection. There is a Wireless USB standard that manufacturers are beginning to develop for, but it’s still too new.

  11. Ok, here is a twist, how is it possible to add bluetooth to say an actual USB device? Say something like a USB joystick, keyboard, or whatever. Maybe something like a USB cable replacement, but I can’t find anything like that either.

    There are a lot of serial-bluetooth dongles available (albeit expensive), but as far as I can tell, there isn’t anything available to turn a USB based device (save for priners) into a bluetooth based device.

    What are your suggestions?

  12. Thanks again for the tips!

    That is good to know. I should probably be able to apply the same concept to OS X.

    Practically speaking, much of the functionality of OS X is similar to Linux. I have used the /dev/usb.ttyS0 device file to write a small C program to send JAR files to my cell phone.

  13. Steve,
    I hear you. I wish Bluetooth serial chips had the same demand as Bluetooth keyboard and headset chips so we could do wireless hacking more easily.

    The SparkFun BlueSMiRF I use in a Bluetooth Roomba interface. It’s a pretty cool module. And yeah, I wish it was about a third of the price.

    But you could definitely rip open an existing Bluetooth mouse, keyboard, or headset and use it to hack with. The problem is getting low enough in your OS so that the device isn’t considered to be normal input device. Under Linux its pretty easy to dedicate or ignore a particular keyboard or mouse for an application. On Mac OS X and Windows I’ve no idea.

  14. Thanks for the answer!

    I have just started experimenting with microcontroller programming at home, and I saw this neat project to turn your old C-64 into a USB keyboard, which uses a PIC chip and firmware to emulate a USB chip:

    http://symlink.dk/electro/c64key/

    Since I have an old C-64, I thought– wouldn’t it be neat to use the concept and do something similar with Bluetooth, to make a wireless C-64 keyboard?

    I found these Bluetooth DIP modules which seem to be very easy to use in your project:

    http://www.sparkfun.com/commerce/product_info.php?products_id=148

    It appears on your PC as a serial connection.

    However, they are $64.95! You could buy a Bluetooth keyboard for much less than that! This is what left me very confused: without any of the “frills” of a full-blown consumer device, you’d think it would be much cheaper to buy the component by itself!

    I wonder if it is possible to take a store-bought Bluetooth device, open the case and extract just the Bluetooth chip to use in your own device that interacts with your computer?

  15. Steve, not a silly question. Unfortunately, electronic chips are made for very specific purposes. The chip in USB Bluetooth dongles are specifically made to interface between USB and Bluetooth and can’t be repurposed to be serial-to-Bluetooth for what the Roomba needs. The reason why the dongles are so inexpensive is market pressure: every new laptop has one of these chips in it. This demand causes the cost of the chip to fall. If everyone needed Bluetooth-to-serial functionality, we’d see a similar drop in price.

  16. Forgive me if this is a silly question; I am an electronics newbie. Why is it so expensive to add bluetooth to your project? Bluetooth dongles are very inexpensive… isn’t there a way to open one of those and use that in your project?

Leave a Reply

Your email address will not be published. Required fields are marked *