Is it possible to connect an embedded device to the internet through a USB internet Dongle?

Wireless USB Internet dongles come in two flavours.

  • A wifi dongle connects to a 2.4GHz 802.11 network (but, I don't think you mean these?)
  • A GSM modem dongle connects via the cell phone network.

Like a modem for the fixed line telephone network, many GSM modems have RS232 and Hayes (AT) commands.

The easiest GSM dongle to interface to an embedded system is one which exposes an AT command set. If you are lucky then you will be able to attach directly to a UART. But, you may need to implement a USB host with support for CDC/serial devices.

Interfacing any other dongle will be considerably harder. In the best case, you might identify chips and find an open source Linux driver to port. In the worst case, you will need to reverse engineer the Windows-only binary USB driver then clone it into your embedded firmware. If you're really unlucky then you'll need to implement a TCP/IP stack too.

I recommend the AT command route, if you can.


I've looked into this and the other answers are correct. In most cases you'll need a microcontroller with USB host support. Most of the newer USB GSM/3G/4G dongles support a common USB-PPP driver so one driver could probably support many devices. You'd still have to port the diver from linux which would be hard work unless you were planning to sell loads.

If you were planning to sell loads it'd be much cheaper/quicker to buy a GSM module specifically for designed for embedded systems. These leave out the USB interface which is just an unneeded complication. If you're only planning a one off or a couple, your money (and time) will be much better spent on a small Linux board (eg. Raspberry Pi) with a consumer USB GSM dongle.

Tags:

Embedded