I'm having trouble sending commands to the GSM/GPS/3G module from Adafruit. It gives me status data at bootup without any issues (takes a few seconds).

The product in use is this: https://learn.adafruit.com/adafruit-fona-3g-cellular-gps-breakout?view=all#pinouts

The guide says (all be it at the very bottom) that a battery is required. And that might be the case. However I've managed to recieve data from the breakout board, but I'm struggling with sending data to the board.

I'm mainly wondering if anyone else has managed to drive this board without a LiPo battery?

I'm planning on putting it in a car where I have a constant power source, with a 5V regulator that can handle a few amps. The board boots, looks to behave normal, except that I can't send anything in on the RX pin.


  • 5V -> 5V regulator (12-18V power supply)
  • GND -> 5V regulator/Power-supply ground
  • Vio -> Tried both 3.3V on the Arduino, 5V on the arduino and 5V regulator
  • RST -> D4 on Arduino
  • RX -> D2 on Arduino
  • TX -> D3 on Arduino
  • Key -> Ground

Two antennas connected, and that's about it.

The code I'm using is this one: https://pastebin.com/N0Yn5udm

And the result looks like this:

enter image description here

Again, when I send the AT command, I get nothing in response. The I know it's been sent because the internal LED flickers pretty quickly.

I've run out of ideas except pulling ~3.7V from a voltage divider or regulator off the 5V supply and plug that into the JST connector. Unfortunately I don't have any JST's at home.

But if a battery is the only way out, I'd like to learn why that is. Because there aren't much information for this module, only a tutorial saying "That's just how it is".

  • \$\begingroup\$ Adafruit has a test sketch specifically for this. You should run that. And you should connect a battery as the instructions say is required - these things are the repurposed guts of feature phones, designed to be directly connected to a battery, not a power supply. Finally Adafruit has their own support forums backed by specific knowledge of their products. \$\endgroup\$ Aug 2 '18 at 14:27
  • 2
    \$\begingroup\$ Have you put a scope on the TX and RX lines to see what is happening? \$\endgroup\$ Aug 2 '18 at 14:58
  • \$\begingroup\$ @ElliotAlderson You are a wizard, you got me thinking, so I did. Turns out that for some reason. The Arduino doesn't do Software serial-TX on Digital pin 3. But instead, some of the higher pins can be used for this purpose. I switched to RX being connected to PIN 10, and TX on PIN 11, and now it's all working without a battery :) Happy times! Cheers for the down vote (thought the question was at least well formulated and raised a good question/opportuinity to learn.) \$\endgroup\$
    – Torxed
    Aug 2 '18 at 15:06
  • \$\begingroup\$ The down vote wasn't from me, just so you know. When I teach microcontroller labs I am always asking "Have you put a scope on it?" \$\endgroup\$ Aug 2 '18 at 15:14
  • \$\begingroup\$ @ElliotAlderson Cheers for teaching yet another person this. It's probably obvious to anyone who's ever worked with hardware on a regular basis. But to a software nerd like myself, it didn't come as a first thing to try for some reason hehe. I figured you weren't the down voter btw, it's just one of the trades of this community - getting down votes asap. Anyway, appreciate the quick tip and if you write up a answer, i'd be happy to give you the points for it. \$\endgroup\$
    – Torxed
    Aug 2 '18 at 15:31

In situations like this I always recommend putting a scope on the signals in question. Looking at the voltages can reveal many problems that staring at the code will not, such as

  • Incorrect baud rates

  • Incorrect signalling levels (true RS232 vs. TTL vs 3V)

  • Incorrect pin assignments

  • Neglecting to set the TX pin as output

  • Excessive loading by pullup/pulldown resistors

If the RX LED is blinking then something is getting out. Try to determine the baud rate by looking for the narrowest pulse width. Check the RX line to see if any kind of response is coming back, if so check its baud rate and make sure both TX and RX use the same voltages.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.