Friday, August 8, 2014

GSM Click + Arduino

I'm working on a hobby project that involves sensing environmental data and uploading it to the Internet using Arduino and a GSM/GPRS receiver. There is a range of GSM shields and standalone modules to choose from. For this particular project I went for the GSM Click module from Mikroelektronika. It's probably not the most affordable GSM module out there but I like it because it has a nice protoboard friendly layout and a smallish footprint. It's also widely available (I've got it from Newark CA).

Mikrolelektronika actually has two modules that are similar, the GSM Click and the GSM2 Click. Each one is based on a different GSM chipset (Telit on the GSM, Quectel on the GSM2), but both are quad-band and support GPRS.

The interesting thing about these modules is that they have a full TCP/IP stack built-in, and they even support high level protocols such as HTTP and DNS. Imagine implementing all that in an Arduino with 32K of flash and 2K of RAM... So the workflow for an HTTP request in these modules is actually very simple:

  1. Unlock the SIM via PIN
  2. Wait for network registration
  3. Start a GPRS connection
  4. Open up a connection to your server:port (ie. google.com:80)
  5. Send / receive data
  6. Close the GPRS connection
Steps 1 and 2 are done during initialization, and as long as the module stays registered, new requests would only require 3..6. Most of the steps can be done with single AT commands.

Electrically, I/O pins in the GSM Click support both 3.3/5V levels, but it does require a 3.3V power source. It took me an hour of frustration before I realized this. According to the datasheet of the GL-865 chip, the module can draw a maximum average ranging 140-330 mA (depending on the band and GPRS class), however they state the power supply must be designed to withstand a peak demand of 2A. This means you can't use the 3.3V source from most Arduinos because they are rated for much lower current, you need to provide your own 3.3V regulator.

The module comes preconfigured for 3.3V I/O operation. If you want to connect it to 5V devices you need to unsolder an SMD jumper and then resolder it across the 5V label.

In addition to the 3.3V power source you also need 5V (you can take this from the Arduino, it's used just for level conversion), GND and TX/RX. The module's TX goes to the Arduino RX and viceversa.

I've used SoftwareSerial on pins 2/3 to talk to the module so that I have the hardware UART free for debugging. However, when using both ports at the same time, incoming data from the GSM module gets massively corrupted. I believe either of them alone would work fine, but it's still early to say.

In the next post I'll show a more detailed connection schematic and some test code to do basic HTTP communication.

8 comments:

  1. Amazing post, I’m the essential mere person of this once and likewise show pride in you actually taking some minutes to hold on necessary collaborating high-quality content. Chip Level Training in Hyderabad

    ReplyDelete
  2. I salute you help me how I can do to fulfill the transaction take over sms gsm clic on the Arduino?

    ReplyDelete
    Replies
    1. yusuf connect with me about sms over gsm click if you need. Also i am looking for GPRS samples, if you have any may be share with me.

      Delete
  3. i am looking for some code samples gsm click + arduino GPRS. i cannot run it with arduino library. Please write some example codes about GPRS.

    thank you.

    ReplyDelete
  4. very useful really good information thanks for posting such a good information it will hepls the people a lot keep it up , Regards, servicenow training in hyderabad ,splunk training in hyderabad

    ReplyDelete
  5. dịch vụ thành lập doanh nghiệp công ty tại Hưng yên, vĩnh phúc, phú thọ, hải dương, quảng ninh, thái bình, Bắc Giang, Thái Nguyên, Nam Định, Thanh Hóa, Hà Nam, Ninh Bình, Hã Tĩnh, Nghệ An
    dịch vụ thành lập doanh nghiệp công ty tại Bình dương, biên hòa, huế, đà nẵng
    dịch vụ thành lập doanh nghiệp công ty tại Huyện Nhà bè, cần giờ, Hóc môn, củ chi, bình chánh
    dịch vụ thành lập doanh nghiệp công ty tại Huyện Hoài đức, sơn tây, thường tín, ứng hòa, phú xuyên, mỹ đức, thanh oai, đan phượng, quốc oai, phúc thọ, sóc sơn
    dịch vụ thành lập doanh nghiệp công ty tại Quận 1, 2,3,4,5,6,7,8,9,10,11,12 TPHCM
    dịch vụ thành lập doanh nghiệp công ty tại Huyện Đông anh, gia lâm, mê linh
    dịch vụ thành lập doanh nghiệp công ty tại Quận Thủ đức, bình thạnh, tân phú, Gò vấp, phú nhuận, bình tân, tân bình
    dịch vụ thành lập doanh nghiệp công ty tại Quận Đống đa, ba đình, tây hồ, Hoàng mai, thanh trì, hoàn kiếm, Hai bà trưng, từ liêm
    dịch vụ thành lập doanh nghiệp công ty tại Hải Phòng
    dịch vụ thành lập doanh nghiệp công ty tại Bắc Ninh
    dịch vụ thành lập doanh nghiệp công ty tại Quận Cầu Giấy
    dịch vụ thành lập doanh nghiệp công ty tại Quận Long Biên
    dịch vụ thành lập doanh nghiệp công ty tại Quận Hà Đông
    dịch vụ thành lập doanh nghiệp công ty tại Quận Thanh Xuân
    dịch vụ thành lập doanh nghiệp công ty trọn gói

    ReplyDelete
  6. I have been reading out a lot of your articles.
    I will certainly bookmark your Blog.
    Free Hybris Training
    Devops Training

    ReplyDelete
  7. very useful really good information thanks for posting such a good information it will hepls the people a lot keep it up , Regards,splunk training in hyderabad

    ReplyDelete