Is it possible to combine an Arduino µC with a GSM shield and an ethernet shield such that a device connected via ethernet to the Arduino has internet access over the GSM network?

I have a system with an ethernet port to connect to the internet. It works fine if I plug it into my switch at home. However, I would like this system to have its own cellular internet connection.

This is what I have found so far:

  1. I'm basically trying to replicate the following: https://nimbelink.com/e2clink-ethernet2cellular/#parts

  2. If the following reddit post: https://www.reddit.com/r/arduino/comments/3azxs6/create_gsm_cellular_ethernet_modem_with_arduino/ is any indication, I would think the answer is "no" but I am hoping to confirm from the expertise available here.

  • 1
    I'd suggest using a TP-Link Portable 3G/3.75G Wireless N Router (TL-MR3020), together with a USB 3G dongle. Probably cheaper also.
    – Gerben
    Sep 14, 2015 at 12:29
  • 1
    You're right! This seems to be even a cheaper option than using a Raspberry Pi 2 + USB 3G dongle. Thanks.
    – Islay
    Sep 15, 2015 at 3:41

1 Answer 1


No, it's not possible.

Chiefly because the normal Ethernet shield is not capable of routing. The Arduino never talks to the ethernet - it talks to the chip on the shield and tells it how to handle the ethernet connection - everything else is then done by the ethernet chip and the results passed back to the Arduino.

Similarly with GSM - you make requests to it and it goes off and does the work.

To link the two together you would need raw access to the incoming ethernet packets, and you would then have to perform NAT (Network Address Translation) and maintain internal state tables for current streams and such, and pass reformatted packets on to a GSM modem that could accept raw data like that.

Way outside the scope of a lowly Arduino.

Maybe possible with one of the higher end Arduino-ish systems like the Edison, Galileo or Yun (just) since they run Linux and have a real Ethernet port and a proper USB port to communicate with a proper celular modem.

  • Thanks Majenko, that makes sense and explains it nicely. I will check out the systems you've mentioned. Also, do you think a Raspberry Pi 2 would be able to do this instead, given it includes an on-board Ethernet & USB port(s)?
    – Islay
    Sep 14, 2015 at 0:47
  • 1
    Yes, a Pi would do the job admirably - just plug in a typical USB data modem for HSDPA / 3G and configure it as the internet connection - then configure packet forwarding and NAT and all the other proper routing you'd need and you're good to go - just like doing it on any Linux computer. You can even do most of it graphically through the GUI. Just follow the myriad of tutorials out there for a generic Linux PC (Debian) - it's exactly the same.
    – Majenko
    Sep 14, 2015 at 9:33

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.