Adafruit Feather 32u4 FONA
Created by lady ada
https://learn.adafruit.com/adafruit-feather-32u4-fona
Last updated on 2022-01-28 11:48:13 AM EST
©Adafruit Industries
Page 1 of 58
Table of Contents
Overview
5
Pinouts
9
•
•
•
•
•
10
11
11
12
13
Power Pins
Logic pins
Cellular Module
Other Pins!
FONA connections & LEDs
Assembly
14
•
•
•
•
•
•
•
•
•
14
17
17
18
18
20
20
21
22
Header Options!
Soldering in Plain Headers
Prepare the header strip:
Add the breakout board:
And Solder!
Soldering on Female Header
Tape In Place
Flip & Tack Solder
And Solder!
Power Management
•
•
•
•
•
•
•
•
•
•
•
•
Battery + USB Power
Power supplies
Measuring Battery
ENable pin
Alternative Power Options
Cellular Power Usage
Turning on the FONA Feather
Sending an SMS
Enabling GPRS
TCPIP connection
Sending an MQTT packet (about 200 bytes)
Disabling GPRS
23
24
25
25
25
26
27
27
27
28
28
29
29
Arduino IDE Setup
30
Using with Arduino IDE
32
•
•
•
•
Install Drivers (Windows 7 Only)
Blink
Manually bootloading
Ubuntu & Linux Issue Fix
FONA Test
•
•
•
•
Download Adafruit_FONA
Wire up and Power!
Load Demo
Using the Test Sketch
34
36
37
38
38
38
38
39
41
Hardware Test
41
• Battery voltage
• Check SIM CCID
41
42
©Adafruit Industries
Page 2 of 58
Network Test
• Check RSSI (network signal strength)
• Checking Network Registration
Audio Settings & Test
• Set and Get audio volume
• Setting Headset or External audio
• Playing Toolkit Tones
Phone Calls
• Make Phone Calls
SMS
• Send and Read SMS
42
42
43
44
44
44
45
45
45
46
46
FM Radio (FONA800)
49
• FM Radio (FONA 800 only)
49
Feather FONA FAQ
50
Feather HELP!
51
Downloads
56
•
•
•
•
Datasheets & Files
Schematic
Fabrication Print
Datasheets:
©Adafruit Industries
56
57
57
57
Page 3 of 58
©Adafruit Industries
Page 4 of 58
Overview
Feather is the new development board from Adafruit, and like its namesake it is thin,
light, and lets you fly! We designed Feather to be a new standard for portable
microcontroller cores.
This is the Adafruit Feather 32u4 FONA - our take on an 'all-in-one' Arduinocompatible + audio/sms/data capable cellular with built in USB and battery charging.
Its an Adafruit Feather 32u4 with a FONA800 module (http://adafru.it/1946), ready to
rock! We have other boards and accessories in the Feather family, check'em out here
(https://adafru.it/l7B).
At the Feather 32u4's heart is at ATmega32u4 clocked at 8 MHz and at 3.3V logic, a
chip setup we've had tons of experience with as it's the same as the Flora (https://
adafru.it/dVl). This chip has 32K of flash and 2K of RAM, with built in USB so not only
does it have a USB-to-Serial program & debug capability built in with no need for an
FTDI-like chip, it can also act like a mouse, keyboard, USB MIDI device, etc.
©Adafruit Industries
Page 5 of 58
Since you'll be taking this on the road, we added a connector for any of our 3.7V
Lithium polymer batteries and built in battery charging. A 500mAh+ Lipoly battery is
required for use, it keeps the cellular module happy during the high current spikes.
Plug the Feather into microUSB to charge at 500mA.
Here's some handy specs! Like all Feather 32u4's you get:
• Measures 2.4" x 0.9" x 0.28" (51mm x 23mm x 8mm) without headers soldered in
• Light as a (large?) feather - 8.2 grams
• ATmega32u4 @ 8MHz with 3.3V logic/power
©Adafruit Industries
Page 6 of 58
• 3.3V regulator with 500mA peak current output
• USB native support, comes with USB bootloader and serial port debugging
• You also get tons of pins - 20 GPIO pins
• Hardware Serial, hardware I2C, hardware SPI support
• 7 x PWM pins
• 10 x analog inputs
• Built in 500mA lipoly charger with charging status indicator LED
• Pin #13 red LED for general purpose blinking
• Power/enable pin for the 3.3V regulator
• 4 mounting holes
• Reset button
Connect your Feather to the Internet or make phone calls with our trusted-and-tested
FONA module. At the heart is a GSM cellular module (we use the latest SIM800) the
size of a postage stamp. This module can do just about everything.
• Quad-band 850/900/1800/1900MHz - connect onto any global GSM network
with any 2G SIM (in the USA, T-Mobile is suggested)
• Make and receive voice calls using an external 8Ω speaker + electret
microphone
• Send and receive SMS messages
• Send and receive GPRS data (TCP/IP, HTTP, etc.)
• Scan and receive FM radio broadcasts (yeah, we don't exactly know why this
was included but it works really well)
• AT command interface with "auto baud" detection
©Adafruit Industries
Page 7 of 58
• Pair-able Bluetooth client interface with SPP (for controlling the module) as well
as audio.
You will also need some required accessories to make Feather FONA work. These are
not included!
• SIM Card! A 2G Micro SIM card is required to do anything on the cellular
network. US AT&T no longer sells 2G SIMs and will shut off their 2G network, so
for American customers we recommend any T-Mobile or reseller (TING, SIMPLE
mobile, etc) that uses the T-Mobile network. (http://adafru.it/2505)
• Lipoly Battery - 500mAh or larger! This 500mAh (https://adafru.it/drL)battery, or
this 1200mAh (http://adafru.it/258) will work great.
• MicroUSB cable (http://adafru.it/592) for charging the battery.
• External Antenna - We like this slim sticker-type (http://adafru.it/1991), which
plugs right in. Alternatively, this straight SMA one (http://adafru.it/1859) or this
right-angle SMA one will work (http://adafru.it/1858) but you'll also need a uFL to
SMA adapter cable (http://adafru.it/851) so you can connect to your SMA
antenna
• External Mic & Speaker - If you want to make phone calls, you'll also need this
electret mic (https://adafru.it/dDa) and mini 8 ohm speaker (https://adafru.it/dDb)
©Adafruit Industries
Page 8 of 58
Pinouts
The Feather 32u4 FONA is chock-full of microcontroller goodness. There's also a lot
of pins and ports. We'll take you a tour of them now!
©Adafruit Industries
Page 9 of 58
Power Pins
• GND - this is the common ground for all power and logic
• BAT - this is the positive voltage to/from the JST jack for the optional Lipoly
battery
• USB - this is the positive voltage to/from the micro USB jack if connected
• EN - this is the 3.3V regulator's enable pin. It's pulled up, so connect to ground
to disable the 3.3V regulator. Note that the cellular module is powed by VBAT so
this will only disable the microcontroller
• 3V - this is the output from the 3.3V regulator, it can supply 500mA peak
©Adafruit Industries
Page 10 of 58
Logic pins
This is the general purpose I/O pin set for the microcontroller. All logic is 3.3V
• #0 / RX - GPIO #0, also receive (input) pin for Serial1 and Interrupt #2
• #1 / TX - GPIO #1, also transmit (output) pin for Serial1 and Interrupt #3
• #2 / SDA - GPIO #2, also the I2C (Wire) data pin. There's no pull up on this pin
by default so when using with I2C, you may need a 2.2K-10K pullup. Also
Interrupt #1
• #3 / SCL - GPIO #3, also the I2C (Wire) clock pin. There's no pull up on this pin
by default so when using with I2C, you may need a 2.2K-10K pullup. Can also do
PWM output and act as Interrupt #0.
• #5 - GPIO #5, can also do PWM output. Also connected to the FONA's DTR pin if
you want to use it for powersaving functionality, which is not enabled by default
• #6 - GPIO #6, can also do PWM output and analog input A7. Also connected to
FONA RTS in case you want to use flow control, which is not enabled by default
• #9 - GPIO #9, connected to FONA RXD.
• #10 - GPIO #10, also analog input A10 and can do PWM output.
• #11 - GPIO #11, can do PWM output.
• #12 - GPIO #12, also analog input A11 and can do PWM output.
• #13 - GPIO #13, can do PWM output and is connected to the red LED next to the
USB jack
• A0 thru A5 - These are each analog input as well as digital I/O pins.
• SCK/MOSI/MISO - These are the hardware SPI pins. Also used to reprogram the
chip with an AVR programmer if you need.
Cellular Module
©Adafruit Industries
Page 11 of 58
Now to the fun part, the cellular module. THere's a few pins that are used to control
the module. It uses SoftwareSerial to communicate with the microcoller
• #8 - used as the FONA TXD (data out from module to AVR). This pin is not
exposed on the Feather
• #9 - used as the FONA RXD (data out from AVR to module)
• #7 - used as the FONA RI (ring interrupt) pin, you can use this to alert you when
an SMS or phone call comes in. Note that this is interrupt #4 (but on pin #7). This
pin is not exposed on the Feather
• #4 - used as the FONA Reset pin. You can pulse this pin low to reset the FONA,
handy when starting up. This pin is not exposed on the Feather
Optional pins:
• #5 - This pin is available on the breakout and is also connected to the FONA's
DTR pin if you want to use it for powersaving functionality, which is not enabled
by default
• #6 - This pin is available on the breakout and is connected to FONA RTS in case
you want to use flow control, which is not enabled by default
Other Pins!
• RST - this is the Reset pin, tie to ground to manually reset the AVR, as well as
launch the bootloader manually
• ARef - the analog reference pin. Normally the reference voltage is the same as
the chip logic voltage (3.3V) but if you need an alternative analog reference,
connect it to this pin and select the external AREF in your firmware. Can't go
higher than 3.3V!
• Key - this is by default tied to ground, cut the trace on the bottom and wire to a
microcontroller pin to manually turn the module on and off. (Pulse low for a few
©Adafruit Industries
Page 12 of 58
seconds to change from on to off) This is the only way to truly disable the
cellular module.
• Mic+ and Mic- connections for attaching an electret microphone for audio
applications (external audio interface)
• Spk+ and Spk- connections for attaching a 8 ohm 1W speaker for audio
applications (external audio interface)
FONA connections & LEDs
All the way to the right we have the cellular-only connection parts. Up top is a
standard uFL connector, you attach your GSM antenna here
Below that is the bluetooth antenna (small white rectangle with red marking)
At the bottom are the two cell-status LEDs.
The middle PWR LED will light up green whenever the cellular module is active and
has good power.
The NET LED will blink in blue let you know the status of the cellular connection You
can use this for checking the current state without sending an AT command:
• 64ms on, 800ms off - the module is running but hasn't made connection to the
cellular network yet
• 64ms on, 3 seconds off - the module has made contact with the cellular network
and can send/receive voice and SMS
• 64ms on, 300ms off - the GPRS data connection you requested is active
©Adafruit Industries
Page 13 of 58
By watching the blinks you can get a visual feedback on whats going on
On the bottom is a microSIM push-push holder. Slot your microSIM in here and press
in until it clicks
There's also a spot you can solder an antenna if you want to use the FM receiver
capability.
Above that is nicely labeled Mic/Speaker pads
At the very bottom is the jumper for the KEY pad - cut this to let you control the
module's on/off key manually. By default KEY is tied to ground so the module is
always powered and on.
Assembly
We ship Feathers fully tested but without headers attached - this gives you the most
flexibility on choosing how to use and configure your Feather
Header Options!
Before you go gung-ho on soldering, there's a few options to consider!
©Adafruit Industries
Page 14 of 58
The first option is soldering in plain male
headers, this lets you plug in the Feather
into a solderless breadboard
Another option is to go with socket
female headers. This won't let you plug
the Feather into a breadboard but it will
let you attach featherwings very easily
©Adafruit Industries
Page 15 of 58
We also have 'slim' versions of the
female headers, that are a little shorter
and give a more compact shape
Finally, there's the "Stacking Header"
option. This one is sort of the best-ofboth-worlds. You get the ability to plug
into a solderless breadboard and plug a
featherwing on top. But its a little bulky
©Adafruit Industries
Page 16 of 58
Soldering in Plain Headers
Prepare the header strip:
Cut the strip to length if necessary. It will
be easier to solder if you insert it into a
breadboard - long pins down
©Adafruit Industries
Page 17 of 58
Add the breakout board:
Place the breakout board over the pins
so that the short pins poke through the
breakout pads
And Solder!
Be sure to solder all pins for reliable
electrical contact.
(For tips on soldering, be sure to check
out our Guide to Excellent
Soldering (https://adafru.it/aTk)).
©Adafruit Industries
Page 18 of 58
Solder the other strip as well.
You're done! Check your solder joints
visually and continue onto the next steps
©Adafruit Industries
Page 19 of 58
Soldering on Female Header
Tape In Place
For sockets you'll want to tape them in
place so when you flip over the board
they don't fall out
©Adafruit Industries
Page 20 of 58
Flip & Tack Solder
After flipping over, solder one or two
points on each strip, to 'tack' the header
in place
©Adafruit Industries
Page 21 of 58
And Solder!
Be sure to solder all pins for reliable
electrical contact.
(For tips on soldering, be sure to check
out our Guide to Excellent
Soldering (https://adafru.it/aTk)).
©Adafruit Industries
Page 22 of 58
You're done! Check your solder joints
visually and continue onto the next steps
Power Management
©Adafruit Industries
Page 23 of 58
Battery + USB Power
Feather FONA is a little special and different with how it manages battery and USB
power. Whereas other Feathers can run direct from 3.3V and thus from USB or
battery...
You must have a Lipoly/LiIon battery plugged in at all times for using the Feather
FONA
This is because the cellular module cannot run off of 3.3V, and it has thin but common
spikes of an amp or two when connecting/sending data on the cellular network. We
could have gone with a huge voltage regulator but instead we decided to just power
the FONA module direct from the lipoly battery. If this isn't plugged in, the battery
charger ends up trying to source an amp, which it cant, and the board will reset
So, yeah. Use a battery! It will keep topped up when using USB, and allow the cellular
module to draw current spikes without issue
The JST connector polarity is matched to Adafruit LiPoly batteries. Using wrong
polarity batteries can destroy your Feather
The above shows the Micro USB jack (left), Lipoly JST jack (top left), as well as the
3.3V regulator and changeover diode (just to the right of the JST jack) and the Lipoly
charging circuitry (to the right of the Reset button). There's also a CHG LED, which will
light up while the battery is charging. This LED might also flicker if the battery is not
connected or when the cellular module is in action
©Adafruit Industries
Page 24 of 58
Power supplies
You have a lot of power supply options here! We bring out the BAT pin, which is tied
to the lipoly JST connector, as well as USB which is the +5V from USB if connected.
We also have the 3V pin which has the output from the 3.3V regulator. We use a
500mA peak AP2112. While you can get 500mA from it, you can't do it continuously
from 5V as it will overheat the regulator. It's fine for, say, powering an ESP8266 WiFi
chip or XBee radio though, since the current draw is 'spiky' & sporadic. Note that the
regulator doesn't power the cellular module, that's directly powered from VBAT
Measuring Battery
If you're running off of a battery, chances are you wanna know what the voltage is at!
That way you can tell when the battery needs recharging. Lipoly batteries are 'maxed
out' at 4.2V and stick around 3.7V for much of the battery life, then slowly sink down
to 3.2V or so before the protection circuitry cuts it off. By measuring the voltage you
can quickly tell when you're heading below 3.7V
Other Feather's have a resistor divider to read the battery voltage. We decided to skip
this and instead let you read the battery voltage via the cellular module using the AT+
CBC command, which will give you the battery voltage in millivolts
ENable pin
If you'd like to turn off the 3.3V regulator, you can do that with the EN(able) pin. Simply
tie this pin to Ground and it will disable the 3V regulator. The BAT and USB pins will
still be powered
©Adafruit Industries
Page 25 of 58
Note that this will not disable power to the cellular module! If you want to depower
the cell module, cut the KEY trace on the bottom of the board, wire KEY to an unused
pad, and toggle the pin low for 100ms to completely turn on/off the module
Alternative Power Options
The two primary ways for powering a feather are a 3.7/4.2V LiPo battery plugged into
the JST port or a USB power cable.
If you need other ways to power the Feather, here's what we recommend:
• For permanent installations, a 5V 1A USB wall adapter (https://adafru.it/duP) will
let you plug in a USB cable for reliable power
• For mobile use, where you don't want a LiPoly, use a USB battery pack! (https://
adafru.it/e2q)
• If you have a higher voltage power supply, use a 5V buck converter (https://
adafru.it/DHs) and wire it to a USB cable's 5V and GND input (https://adafru.it/
DHu)
Here's what you cannot do:
• Do not use alkaline or NiMH batteries and connect to the battery port - this will
destroy the LiPoly charger and there's no way to disable the charger
• Do not use 7.4V RC batteries on the battery port - this will destroy the board
The Feather is not designed for external power supplies - this is a design decision to
make the board compact and low cost. It is not recommended, but technically
possible:
• Connect an external 3.3V power supply to the 3V and GND pins. Not
recommended, this may cause unexpected behavior and the EN pin will no
longer. Also this doesn't provide power on BAT or USB and some Feathers/
Wings use those pins for high current usages. You may end up damaging your
Feather.
• Connect an external 5V power supply to the USB and GND pins. Not
recommended, this may cause unexpected behavior when plugging in the USB
port because you will be back-powering the USB port, which could confuse or
damage your computer.
©Adafruit Industries
Page 26 of 58
Cellular Power Usage
If you think WiFi is power hungry, you will be surprised at how much power draw you'll
need to manage with a cellular module.
Here's some power traces for common events with a cellular module:
Turning on the FONA Feather
Booting cell module + connecting to network
Sending an SMS
send SMS: 6.5s, 150uAh, 300mW, 52mA
recv sms: 6.5s, 140uAh, 330mW, 78mA
©Adafruit Industries
Page 27 of 58
Enabling GPRS
enabling GPRS: about 8 seconds, 850uAh, 300mW, 70mA avg
TCPIP connection
grab mini webpage: 4.5 sec, 203uAh, 650mW, 150mA avg
©Adafruit Industries
Page 28 of 58
Sending an MQTT packet (about 200 bytes)
Disabling GPRS
disabling GPRS: about 4 seconds, 120uAh, 480mW, 113 mA avg
You can put the FONA into sleep mode (with the AT+CSCLK command) which will drop
the current draw but keep the cellular connection open so you can still receive an
SMS and/or wakeup quickly.
©Adafruit Industries
Page 29 of 58
Note that the quiescent current drops from 40mA to 20mA and of that 20mA, about
~12mA is the ATmega32u4. Like we said, the best way to really reduce power for longterm usage is to completely turn off the module with KEY
Arduino IDE Setup
The first thing you will need to do is to download the latest release of the Arduino
IDE. You will need to be using version 1.8 or higher for this guide
Arduino IDE Download
https://adafru.it/f1P
After you have downloaded and installed the latest version of Arduino IDE, you will
need to start the IDE and navigate to the Preferences menu. You can access it from
the File menu in Windows or Linux, or the Arduino menu on OS X.
©Adafruit Industries
Page 30 of 58
A dialog will pop up just like the one shown below.
We will be adding a URL to the new Additional Boards Manager URLs option. The list
of URLs is comma separated, and you will only have to add each URL once. New
Adafruit boards and updates to existing boards will automatically be picked up by the
Board Manager each time it is opened. The URLs point to index files that the Board
Manager uses to build the list of available & installed boards.
To find the most up to date list of URLs you can add, you can visit the list of third party
board URLs on the Arduino IDE wiki (https://adafru.it/f7U). We will only need to add
one URL to the IDE in this example, but you can add multiple URLS by separating
them with commas. Copy and paste the link below into the Additional Boards
Manager URLs option in the Arduino IDE preferences.
©Adafruit Industries
Page 31 of 58
https://adafruit.github.io/arduino-board-index/
package_adafruit_index.json
Here's a short description of each of the Adafruit supplied packages that will be
available in the Board Manager when you add the URL:
• Adafruit AVR Boards - Includes support for Flora, Gemma, Feather 32u4,
ItsyBitsy 32u4, Trinket, & Trinket Pro.
• Adafruit SAMD Boards - Includes support for Feather M0 and M4, Metro M0 and
M4, ItsyBitsy M0 and M4, Circuit Playground Express, Gemma M0 and Trinket
M0
• Arduino Leonardo & Micro MIDI-USB - This adds MIDI over USB support for the
Flora, Feather 32u4, Micro and Leonardo using the arcore project (https://
adafru.it/eSI).
If you have multiple boards you want to support, say ESP8266 and Adafruit, have
both URLs in the text box separated by a comma (,)
Once done click OK to save the new preference settings. Next we will look at
installing boards with the Board Manager.
Now continue to the next step to actually install the board support package!
Using with Arduino IDE
Since the Feather 32u4 uses an ATmega32u4 chip running at 8 MHz, you can pretty
easily get it working with the Arduino IDE. Many libraries (including the popular ones
like NeoPixels and display) work great with the '32u4 and 8 MHz clock speed.
©Adafruit Industries
Page 32 of 58
Now that you have added the appropriate URLs to the Arduino IDE preferences, you
can open the Boards Manager by navigating to the Tools->Board menu.
Once the Board Manager opens, click on the category drop down menu on the top
left hand side of the window and select Contributed. You will then be able to select
and install the boards supplied by the URLs added to the prefrences. In the example
below, we are installing support for Adafruit AVR Boards, but the same applies to all
boards installed with the Board Manager.
Next, quit and reopen the Arduino IDE to ensure that all of the boards are properly
installed. You should now be able to select and upload to the new boards listed in the
Tools->Board menu.
©Adafruit Industries
Page 33 of 58
Install Drivers (Windows 7 Only)
When you plug in the Feather, you'll need to possibly install a driver
Windows 10 folks can skip this, the drivers now come built into Windows 10!
Click below to download our Driver Installer
Download Adafruit Drivers Installer
https://adafru.it/AB0
Download and run the installer
©Adafruit Industries
Page 34 of 58
Run the installer! Since we bundle the SiLabs and FTDI drivers as well, you'll need to
click through the license
Select which drivers you want to install:
Click Install to do the installin'
©Adafruit Industries
Page 35 of 58
Blink
Now you can upload your first blink sketch!
Plug in the Feather 32u4 and wait for it to be recognized by the OS (just takes a few
seconds). It will create a serial/COM port, you can now select it from the dropdown,
it'll even be 'indicated' as Feather 32u4!
Now load up the Blink example
©Adafruit Industries
Page 36 of 58
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH);
// turn the LED on (HIGH is the voltage level)
delay(1000);
// wait for a second
digitalWrite(13, LOW);
// turn the LED off by making the voltage LOW
delay(1000);
// wait for a second
}
And click upload! That's it, you will be able to see the LED blink rate change as you
adapt the delay() calls.
Manually bootloading
If you ever get in a 'weird' spot with the bootloader, or you have uploaded code that
crashes and doesn't auto-reboot into the bootloader, double-click the RST button to
get back into the bootloader. The red LED will pulse, so you know that its in
bootloader mode. Do the reset button double-press right as the Arduino IDE says its
attempting to upload the sketch, when you see the Yellow Arrow lit and the Uploadin
g... text in the status bar.
Don't click the reset button before uploading, unlike other bootloaders you want this
one to run at the time Arduino is trying to upload
©Adafruit Industries
Page 37 of 58
Ubuntu & Linux Issue Fix
If you're on Linux, and are seeing multi-second delays connecting to the serial
console, or are seeing "AT" and other gibberish when you connect, follow the steps
on this page. (https://adafru.it/iOE)
FONA Test
Download Adafruit_FONA
To begin reading sensor data, you will need to download the Adafruit_FONA Library
from the Arduino library manager.
Open up the Arduino library manager:
Search for the Adafruit FONA library and install it
We also have a great tutorial on Arduino library installation at:
http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use (https://
adafru.it/aYM)
Wire up and Power!
Insert a micro SIM, attach a GSM antenna, then connect battery and micro USB
©Adafruit Industries
Page 38 of 58
Load Demo
Open up File->Examples->Adafruit_FONA->FONAtest
Don't upload the sketch yet!
You'll need to make a simple change to the sketch. At the top find these lines:
#include "Adafruit_FONA.h"
©Adafruit Industries
Page 39 of 58
#define FONA_RX 2
#define FONA_TX 3
#define FONA_RST 4
and change them to:
#define
#define
#define
#define
FONA_RX
FONA_TX
FONA_RST
FONA_RI
9
8
4
7
Once uploaded to your Arduino, open up the serial console at 115200 baud speed to
begin the tester sketch
©Adafruit Industries
Page 40 of 58
Make sure you also have Both NL & CR for the serial command sender option. This
means when you send data to the Arduino via the console, it will put a newline/return
at the end.
Using the Test Sketch
The test sketch has a menu interface so you can test out just about everything the
FONA can do. The menu may change slightly as we add more functionality and
update code!
Continue onto the next few sections to see what functionality you can test with the
sketch
Hardware Test
Battery voltage
Lets begin by reading the battery voltage. That's the lipoly battery. This is handy if you
need to track when the battery is low! type b into the command window and hit Send
You'll see a print-out of the battery voltage in mV, so in this case its 3.726V
©Adafruit Industries
Page 41 of 58
Check SIM CCID
You can verify that the SIM is inserted and correct by reading the CCID, which is the
unique identifier printed on it with C
Network Test
Check RSSI (network signal strength)
You can ask the FONA for the signal strength with the command i. The reply is a
number, but you can convert it to dBm. Try to have the signal strength higher than 5 in
order to make calls, SMSs, etc. In this case, I've got a 10
©Adafruit Industries
Page 42 of 58
Checking Network Registration
If the FONA has good signal it will immediately try to locate a cell tower and register
to it.
You can check the status of the network with n
Once it's Home Registered, give it like 5-10 more seconds before trying to access/
send SMS's or phone calls.
©Adafruit Industries
Page 43 of 58
Audio Settings & Test
Set and Get audio volume
You can set the audio volume with v and retrieve it with V - its in % so ranges from 0
to 100
Setting Headset or External audio
There are two audio paths on the FONA. One is the headset, thru the 3.5mm audio
jack. The other is "external" - using the two speaker and mic pins for wiring up
external speaker and mic. FM audio, phone calls, tones, etc can be routed to one or
the other.
To set the audio to headset, use the command H
To set the audio to external, use the command e
Note the FONA 808 only has Headset audio, so setting External audio wont do
anything. The Feather FONA does not have headphone brought out, so use
external only!
©Adafruit Industries
Page 44 of 58
Playing Toolkit Tones
You can test the audio path with the toolkit tones. These are tones that mimic what
some phone services sound like. For a full list of tones, you can check the AT+STTON
E command in the AT command datasheet. We'll use tone #20 which is the American
dial tone.
You can switch to headset mode, play a tone, then try it on the external audio mode.
This is a very easy way to try out both speakers for debugging
Phone Calls
Make Phone Calls
OK now we're onto the good stuff. You can make a phone call with FONA pretty
easily. Make sure you have the right audio interface selected (external or headset!)
©Adafruit Industries
Page 45 of 58
before you go forward
Make a call with c - the call happens in the 'background'. When you're done then you
can hang up with h
SMS
Send and Read SMS
Another easy thing you can do is send and receive SMS messages. Lets start by
sending an SMS. We'll use twitter's 40404 short code, which will auto respond,
making it easy to verify both sending and receiving
You can send multi-line SMS's using the library API but for this example, its easier to
parse the data if its a single line!
You can then ask the SIM how many SMS's it has with N and read all of them with R
©Adafruit Industries
Page 46 of 58
Note that SMS's are referred to by slots but the number does not include empty slots.
We'll show this in detail in a bit
You can read individual SMS's with r
©Adafruit Industries
Page 47 of 58
And delete SMS's by slot # with d
Note that before I deleted SMS #2, so if I read them again, that SMS # will be an
empty slot. SMS number #3 doesn't "move slots"!
©Adafruit Industries
Page 48 of 58
FM Radio (FONA800)
FM radio tuning/listening is only for FONA 800, the FONA 808 and FONA 3G
does not contain a tuner
FM Radio (FONA 800 only)
The FONA has an FM receive in it. It uses the headset as the 'antenna' but it works
pretty well considering! The FM radio goes thru whatever audio path you have set up
You can open and tune to an FM frequency in units of 100KHz. So if you want to tune
to 88.1MHz, type in 881. For 102.3, type in 1023.
Use the f command to open and tune, and F to close it
©Adafruit Industries
Page 49 of 58
Feather FONA FAQ
I'm having a lot of problems with my Feather FONA - data
garbled, bad responses. It doesn't work!
Do you have a battery connected? A 500mAh or larger battery is required to use
the FONA! Even if it is powered directly from USB
When I get an incoming call the Feather FONA 'resets' !
Wer're not sure why this is but it has something to do with the default audio being
set to 'Headset'. You can fix this easily by calling
fona.setAudio(FONA_EXTAUDIO)
during init, or sending the fona the direct command AT+CHFA=1
You may also want to set the audio volume to 0 if you're not using audio output.
We think it's the ringtone signal coupling in and resetting the SIM card?
My Feather FONA resets during use!
There's a few things that seem to be causing Feather FONAs to sponaneously
reset.
1. Battery charge is too low, and the FONA tries to talk on the network, which
draws 1A from the battery, which drops the power supply voltage and the
main chip resets. 500mAh is minimal, 1200mAh is better for battery sizing.
Keep it charged, it acts as the main power source for the cell module
2. Antenna is too close to the Feather. The antenna is a radiator of massive
amounts of RF keep its as far away as possible from the Feather itself. If you
©Adafruit Industries
Page 50 of 58
have an antenna attached put it so it sticks out and away from the Feather
and definitely as far as possible from the processor chip!
3. The above incoming call reset issue, which is unclear why its happening - but
easy to fix
Feather HELP!
Even though this FAQ is labeled for Feather, the questions apply to ItsyBitsy's as
well!
My ItsyBitsy/Feather stopped working when I unplugged
the USB!
A lot of our example sketches have a
while (!Serial);
line in setup(), to keep the board waiting until the USB is opened. This makes it a
lot easier to debug a program because you get to see all the USB data output. If
you want to run your Feather without USB connectivity, delete or comment out that
line
My Feather never shows up as a COM or Serial port in the
Arduino IDE
A vast number of Itsy/Feather 'failures' are due to charge-only USB cables
We get upwards of 5 complaints a day that turn out to be due to charge-only
cables!
Use only a cable that you know is for data syncing
If you have any charge-only cables, cut them in half throw them out. We are
serious! They tend to be low quality in general, and will only confuse you and
others later, just get a good data+charge USB cable.
A quality USB port is critical. Avoid plugging into USB keyboards and when
possible use a USB-2 HUB to avoid USB3 issues.
©Adafruit Industries
Page 51 of 58
Ack! I "did something" and now when I plug in the Itsy/
Feather, it doesn't show up as a device anymore so I cant
upload to it or fix it...
No problem! You can 'repair' a bad code upload easily. Note that this can happen if
you set a watchdog timer or sleep mode that stops USB, or any sketch that
'crashes' your board
1. Turn on verbose upload in the Arduino IDE preferences
2. Plug in Itsy or Feather 32u4/M0, it won't show up as a COM/serial port that's
ok
3. Open up the Blink example (Examples->Basics->Blink)
4. Select the correct board in the Tools menu, e.g. Feather 32u4, Feather M0,
Itsy 32u4 or M0 (physically check your board to make sure you have the right
one selected!)
5. Compile it (make sure that works)
6. Click Upload to attempt to upload the code
7. The IDE will print out a bunch of COM Ports as it tries to upload. During this
time, double-click the reset button, you'll see the red pulsing LED that tells
you its now in bootloading mode
8. The board will show up as the Bootloader COM/Serial port
9. The IDE should see the bootloader COM/Serial port and upload properly
©Adafruit Industries
Page 52 of 58
I can't get the Itsy/Feather USB device to show up - I get
"USB Device Malfunctioning" errors!
This seems to happen when people select the wrong board from the Arduino
Boards menu.
If you have a Feather 32u4 (look on the board to read what it is you have) Make
sure you select Feather 32u4 for ATMega32u4 based boards! Do not use anything
else, do not use the 32u4 breakout board line.
If you have a Feather M0 (look on the board to read what it is you have) Make sure
you select Feather M0 - do not use 32u4 or Arduino Zero
If you have a ItsyBitsy M0 (look on the board to read what it is you have) Make sure
you select ItsyBitsy M0 - do not use 32u4 or Arduino Zero
©Adafruit Industries
Page 53 of 58
I'm having problems with COM ports and my Itsy/Feather
32u4/M0
Theres two COM ports you can have with the 32u4/M0, one is the user port and
one is the bootloader port. They are not the same COM port number!
When you upload a new user program it will come up with a user com port,
particularly if you use Serial in your user program.
If you crash your user program, or have a program that halts or otherwise fails, the
user COM port can disappear.
When the user COM port disappears, Arduino will not be able to automatically start
the bootloader and upload new software.
So you will need to help it by performing the click-during upload procedure to restart the bootloader, and upload something that is known working like "Blink"
I don't understand why the COM port disappears, this
does not happen on my Arduino UNO!
UNO-type Arduinos have a seperate serial port chip (aka "FTDI chip" or "Prolific
PL2303" etc etc) which handles all serial port capability seperately than the main
chip. This way if the main chip fails, you can always use the COM port.
M0 and 32u4-based Arduinos do not have a seperate chip, instead the main
processor performs this task for you. It allows for a lower cost, higher power
setup...but requires a little more effort since you will need to 'kick' into the
bootloader manually once in a while
I'm trying to upload to my 32u4, getting "avrdude:
butterfly_recv(): programmer is not responding" errors
This is likely because the bootloader is not kicking in and you are accidentally
trying to upload to the wrong COM port
The best solution is what is detailed above: manually upload Blink or a similar
working sketch by hand by manually launching the bootloader
©Adafruit Industries
Page 54 of 58
I'm trying to upload to my Feather M0, and I get this error
"Connecting to programmer: .avrdude: butterfly_recv():
programmer is not responding"
You probably don't have Feather M0 selected in the boards drop-down. Make sure
you selected Feather M0.
I'm trying to upload to my Feather and i get this error
"avrdude: ser_recv(): programmer is not responding"
You probably don't have Feather M0 / Feather 32u4 selected in the boards dropdown. Make sure you selected Feather M0 (or Feather 32u4).
I attached some wings to my Feather and now I can't read
the battery voltage!
Make sure your Wing doesn't use pin #9 which is the analog sense for the lipo
battery!
The yellow LED Is flickering on my Feather, but no battery
is plugged in, why is that?
The charge LED is automatically driven by the Lipoly charger circuit. It will try to
detect a battery and is expecting one to be attached. If there isn't one it may flicker
once in a while when you use power because it's trying to charge a (non-existant)
battery.
It's not harmful, and its totally normal!
The Arduino IDE gives me "Device Descriptor Request Failed"
This can require "manual bootloading".
If you ever get in a 'weird' spot with the bootloader, or you have uploaded code that
crashes and doesn't auto-reboot into the bootloader, double-click the RST button to
get back into the bootloader. The red LED will pulse, so you know that its in
bootloader mode. Do the reset button double-press right as the Arduino IDE says its
attempting to upload the sketch, when you see the Yellow Arrow lit and the Uploadin
g... text in the status bar.
©Adafruit Industries
Page 55 of 58
(h
ttps://adafru.it/UJA)
Don't click the reset button before uploading, unlike other bootloaders you want this
one to run at the time Arduino is trying to upload
Downloads
Datasheets & Files
• Adafruit FONA Arduino Library (https://adafru.it/ncj)
• Adafruit Feather 32u4 PCB files (https://adafru.it/nck)
• Fritzing object available in the Adafruit Fritzing Library (https://adafru.it/aP3)
The huge number of relevant app notes and datasheets for the SIM800H cellular
module are over here in the FONA 800 tutorial (https://adafru.it/qpf)
Feather 32u4 FONA Pinout Diagram
https://adafru.it/z3B
©Adafruit Industries
Page 56 of 58
Schematic
Click to enlarge
Fabrication Print
Dimensions in Inches
Datasheets:
• SIM800 Command Manual (https://adafru.it/vTb) - All the basic commands that
the module supports
• SIM800 Hardware Design (https://adafru.it/kDW)
• SIM800 Sleep App Note (https://adafru.it/vTc)
• SIM800 Embedded AT App Note (https://adafru.it/vTd)
©Adafruit Industries
Page 57 of 58
• SIM800 Compiling Environments (https://adafru.it/vTe)
• SIM800 Bluetooth App Note (https://adafru.it/vTf)
• SIM800 FM App Note (https://adafru.it/vTA)
• SIM800 FS App Note (https://adafru.it/vTB)
• SIM800 GNSS Location App Note (https://adafru.it/vTC)
• SIM800 GSM Location App Note (https://adafru.it/vTD)
• SIM800 IP App Note (https://adafru.it/vTE)
• SIM800 MMS App Note (https://adafru.it/vTF)
• SIM800 Multiplexer App Note (https://adafru.it/vUa)
• SIM800 NTP App Note (https://adafru.it/vUb)
• SIM800 PCM App Note (https://adafru.it/vUc)
• SIM800 Software Upgrade App Note (https://adafru.it/vUd)
• SIM800 SSL App Note (https://adafru.it/vUe)
• SIM800 STK App Note (https://adafru.it/vUf)
• SIM800 TCPIP App Note (https://adafru.it/vUA)
• SIM800HL Schematic and PCB Reference Design (https://adafru.it/vUB)
• SIM800H GCF I13GC9551_RSE-E Report (https://adafru.it/vUC)
• SIM800H CE Certificate (https://adafru.it/vUD)
• SIM800H CTTL + GCF Test Report (https://adafru.it/vUE)
• I14Z46950-GPM01 Test Report (https://adafru.it/kEi)
• SIM800H PTCRB Test Report (https://adafru.it/vUF)
• SIM800H RoHS Test Report (https://adafru.it/vVa)
• SIM800H REACH Test Report (https://adafru.it/vVb)
• SIM800H GCF I13GC9551 Test Report (https://adafru.it/vVc)
• SIM800H FCC PCB Grant Final (https://adafru.it/vVd)
• SIM800H FCC DSS Grant Final (https://adafru.it/vVe)
• SIM800H CE EMC Test Report (https://adafru.it/vVf)
• SIM800H CE RF-BT Test Report (https://adafru.it/vVA)
• SIM800H CE RF-GSM Test Report (https://adafru.it/vVB)
• SIM800H SAFETY Test Report (https://adafru.it/vVC)
• SIM800H EPL Certificate (https://adafru.it/vVD)
• FCC TCB BT (https://adafru.it/jSb)
• R&TTE Statement of Opinion (https://adafru.it/jSc)
• FCC Part 15B Test Report (https://adafru.it/jSd)
• FCC Part 15C Test Report (https://adafru.it/jSe)
• FCC RF Test Report (https://adafru.it/jSf)
• FCC TCB (https://adafru.it/jSA)
©Adafruit Industries
Page 58 of 58