Driver for Adafruit GSM FONA module

Showroom for MicroPython related hardware projects.
Target audience: Users wanting to show off their project!
Post Reply
Site Admin
Posts: 545
Joined: Mon Dec 09, 2013 5:02 pm

Driver for Adafruit GSM FONA module

Post by Damien » Thu Jan 22, 2015 12:43 pm

This topic is to discuss development of a uPy driver for the Adafruit FONA module, using the SIM800L GSM chip. See

I have managed so far to send an SMS from the pyboard using this module. Here are some notes how to do it:

1. Insert SIM card, connect charged Lipo battery. Note: the battery can be charged over USB using the provided micro USB port, but it draws about 500mA so needs a dedicated USB port.

2. Connections from FONA to pyboard: GND to GND, Vio to 3V3, RX to X1, TX to X2 (or you can use a different UART bus on the pyboard, here we use UART(4)).

3. Get a uPy REPL prompt.

4. Make UART object:
ua = pyb.UART(4, 115200, timeout_char=1, read_buf_len=1000)

5. Check that everything works by sending ATI command:
--> you should get a string saying the version number

6. Check that you're connected to a network:
--> you should get a string with the network name

7. Send an SMS:
ua.write('AT+CMGS="+447xxxxxxxxx"\r\nHello from pyboard!\x1a')
--> this will send the message "Hello from pyboard"! to the given cell number. The "\x1a" is ctrl-Z and signals end of message.

Posts: 176
Joined: Thu Jul 30, 2015 4:59 pm

Re: Driver for Adafruit GSM FONA module

Post by JimTal001 » Wed Jan 20, 2016 5:32 pm

Hello Damien,

Any further work on the FONA or other similar module? Did you develop a driver for it?


Posts: 1
Joined: Tue Mar 29, 2016 9:22 pm

Re: Driver for Adafruit GSM FONA module

Post by joskal » Tue Apr 05, 2016 6:18 am

Just bumping this thread since I am also very interested in this subject.

Posts: 8
Joined: Sun Sep 11, 2016 8:11 pm

Re: Driver for Adafruit GSM FONA module

Post by nickovs » Sun Sep 11, 2016 9:12 pm

Has there been any progress on a network/socket driver for the FONA module? The device supports abstracted TCP and UDP connections as well as DNS lookup, so much of the work is already done in the module. I can't find any documentation regarding how to write network drivers but if someone can give me some pointers I'll take a look.

Post Reply