Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Breakout boards, sensors, Drawdio, Game of Life, other Adafruit kits, etc.

Moderators: adafruit_support_bill, adafruit

Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby Red13 » Wed May 02, 2012 11:08 am

Hello.

I'm having some trouble using the two products together. I admit, I'm not a hardware engineer and I am just getting my feet wet with the Arduino and all of its possibilities. I recently picked up the GPS and LCD shield from Adafruit and I'm trying to find a way to test the GPS and make sure I can get a satellite fix.

To do this I was trying to use the LCD shield to display the status of the GPS. While I was able to get everything working while connected to the USB on my computer (where I can get no fix), when I try to use either battery power (6xAA, product 248) or a 9v DC 650mA wall adapter, I'm having issues keeping both powered up. If I have both the GPS wired up as well as the shield seated on my Uno (R2) when I plug the power in the LCD screen's backlight doesn't appear to be functioning. (I'm getting a faint dark grey "########" on the first line of the LCD display) If I pull the positive voltage wire from the GPS, the backlight works.

I can only assume that I have a current issue. I checked the voltage over the GPS and its jumping around between 4 and 5 volts.

Is there anything you can suggest to help me get this working short of taking my desktop outside?

Thanks for your patience with a newcomer.
Red13
 
Posts: 11
Joined: Wed Oct 05, 2011 1:54 pm

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby adafruit_support_bill » Wed May 02, 2012 12:10 pm

That's strange. A 6xAA pack should be capable of much higher current than a USB port. Is the voltage regulator on the Arduino getting hot? Does the Arduino itself run well from the pack?
User avatar
adafruit_support_bill
 
Posts: 16068
Joined: Sat Feb 07, 2009 9:11 am

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby Red13 » Wed May 02, 2012 12:22 pm

I'll have to recheck when I get home tonight. I have used the pack with my Uno previously with no issue. I was using brand new batteries last night to test this setup. What is the current draw for the RGB LCD shield? Is it reasonable to expect that I could power the Uno, GPS, and LCD shield with one of the the power supplies I have (excluding the USB)?

Thanks for your help. I will update tonight with answers to your questions.
Red13
 
Posts: 11
Joined: Wed Oct 05, 2011 1:54 pm

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby adafruit_support_bill » Wed May 02, 2012 12:29 pm

I don't have a figure for the RGB shield, but I'd be surprised if it were more than 100mA at full backlight brightness. USB ports are typically limited to 500mA. Either one of your power sources should be able to run this no problem.

It is possible you have a short somewhere on the VIN pin. If you post photos of the front & back of the board, we'll take a look for any assembly issues.
User avatar
adafruit_support_bill
 
Posts: 16068
Joined: Sat Feb 07, 2009 9:11 am

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby Red13 » Wed May 02, 2012 8:59 pm

I'm sorry for the size of the images. I didn't want to shrink them in case they would lose some detail for the soldering.

Image - The first picture shows the project when it is plugged into the USB on my laptop

Image - This next picture is when I remove the USB and plug in the 6xAA power supply

Image - Closeup of the screen when the 6xAA power supply is plugged in

Image - When the GPS wiring is removed the shield's backlight appears to work again

Image - Back of the LCD Shield

Image - Closeup of the soldering on the GPS breakout

Image - Closeup of the top of the LCD Shield front
Red13
 
Posts: 11
Joined: Wed Oct 05, 2011 1:54 pm

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby adafruit_support_bill » Thu May 03, 2012 5:01 am

When the GPS wiring is removed the shield's backlight appears to work again

That should be a clue. What connections do you have between the GPS and the Arduino?.. I can only see one end of the wires in the photos.
User avatar
adafruit_support_bill
 
Posts: 16068
Joined: Sat Feb 07, 2009 9:11 am

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby Red13 » Thu May 03, 2012 11:19 am

Thank you again for your help. I have VERY temporary wiring thus far. My intention is to order a Wingshield kit, but I wanted to make sure I didn't need anything else to solve my issue. When I seat the LCD shield, I make sure that the leads are not touching any of the other pins. I assumed this would be okay as I was getting 4.99 volts out of the power supply to the GPS.

Image

Image

Image

Image
Red13
 
Posts: 11
Joined: Wed Oct 05, 2011 1:54 pm

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby adafruit_support_bill » Thu May 03, 2012 11:35 am

Hmmm. :?
You show the uno/shield working fine with the 6xAA pack & no wires connected. So that much must be fine.
You also show 5v on the power/ground leads, but no display backlight in your last photo with just the data lines connected.
What happens if you have the wires connected to the uno/shield, but the GPS removed from the breadboard?
(just trying to isolate the problem here)
User avatar
adafruit_support_bill
 
Posts: 16068
Joined: Sat Feb 07, 2009 9:11 am

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby Red13 » Thu May 03, 2012 11:38 am

The last photo is misleading. The GPS power is connected. I ran two small wires out of the same breadboard lane (terminology?) and connected them to the multimeter.
Red13
 
Posts: 11
Joined: Wed Oct 05, 2011 1:54 pm

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby adafruit_support_bill » Thu May 03, 2012 12:31 pm

OK. But still interested in what happens with all the wiring there but the GPS module removed.
User avatar
adafruit_support_bill
 
Posts: 16068
Joined: Sat Feb 07, 2009 9:11 am

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby Red13 » Thu May 03, 2012 12:32 pm

Will do. I'll test tonight and post results.
Red13
 
Posts: 11
Joined: Wed Oct 05, 2011 1:54 pm

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby Red13 » Thu May 03, 2012 10:18 pm

After the results below, I double checked and when all the wires are connected the backlight is still off...

Image - GPS removed from breadboard, Backlight on

Image - TX and RX disconnected, Backlight on

Image - TX disconnected, Backlight on

Image - RX disconnected, Backlight on
Red13
 
Posts: 11
Joined: Wed Oct 05, 2011 1:54 pm

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby Red13 » Fri May 04, 2012 12:38 am

Okay, so now I am completely lost. If I plug the project in with the TX wire unplugged and then plug it in once the backlight comes on, everything works on 6xAA power.

I realized that the only thing I have yet to show is my code. I have included it in case that will help.

Code: Select all
#include <Wire.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
#define RED 0x1
#define YELLOW 0x3
#define GREEN 0x2
#define TEAL 0x6
#define BLUE 0x4
#define VIOLET 0x5
#define WHITE 0x7

#include <Adafruit_GPS.h>
#if ARDUINO >= 100
#include <SoftwareSerial.h>
#else
#include <NewSoftSerial.h>
#endif

#if ARDUINO >= 100
  SoftwareSerial mySerial(4, 2);
#else
  NewSoftSerial mySerial(4, 2);
#endif
Adafruit_GPS GPS(&mySerial);

#define GPSECHO  true

boolean usingInterrupt = false;
void useInterrupt(boolean); // Func prototype keeps Arduino 0023 happy

void setup() 
{
  //LCD Setup
  Serial.begin(115200);
  lcd.begin(16, 2);
  lcd.setBacklight(RED);

  //GPS Setup
  GPS.begin(9600); 
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ);   // 1 Hz update rate
  useInterrupt(true);

  delay(1000);
}


// Interrupt is called once a millisecond, looks for any new GPS data, and stores it
SIGNAL(TIMER0_COMPA_vect) {
  char c = GPS.read();
  if (GPSECHO)
    if (c) UDR0 = c; 
}

void useInterrupt(boolean v) {
  if (v) {
    OCR0A = 0xAF;
    TIMSK0 |= _BV(OCIE0A);
    usingInterrupt = true;
  } else {
    TIMSK0 &= ~_BV(OCIE0A);
    usingInterrupt = false;
  }
}

uint32_t timer = millis();
void loop()                     // run over and over again
{
  if (! usingInterrupt) {
    char c = GPS.read();
    if (GPSECHO)
      if (c) UDR0 = c;
  }
 
  if (GPS.newNMEAreceived()) {
    if (!GPS.parse(GPS.lastNMEA()))   // this also sets the newNMEAreceived() flag to false
      return;  // we can fail to parse a sentence in which case we should just wait for another
  }

  if (timer > millis())  timer = millis();

  if (millis() - timer > 2000) {
    timer = millis(); // reset the timer
    lcd.setCursor(0, 0);
    lcd.print("Fix: "); lcd.print((int)GPS.fix);
    lcd.print(" Qual: "); lcd.print((int)GPS.fixquality);
    if (GPS.fix) {
      lcd.setCursor(0, 1);
      lcd.print("Lat: ");
      lcd.print(GPS.latitude, 4); Serial.print(GPS.lat);
      delay(1000);
      lcd.setCursor(0, 1);
      lcd.print("Lon: ");
      lcd.print(GPS.longitude, 4); Serial.println(GPS.lon);
    }
  }
}
Red13
 
Posts: 11
Joined: Wed Oct 05, 2011 1:54 pm

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby adafruit_support_bill » Fri May 04, 2012 5:02 am

Interesting. So all the components work once you get past that initial phase. The only thing I can think of is possibly some interaction between the I2C initialization and your timer interrupt.
User avatar
adafruit_support_bill
 
Posts: 16068
Joined: Sat Feb 07, 2009 9:11 am

Re: Power Issue: Adafruit Ultimate GPS Breakout (746) with RGB LCD Shield (714/716)

Postby Red13 » Fri May 04, 2012 9:17 am

In an effort to remove variables from the problem, I replaced the sketch on the Arduino with the default HelloWorld sketch from the LCD library and have the same results.

If the GPS TX is removed and then inserted after the backlight comes on everything works.

In case you are interested, I have posted a quick video (2 mins) on YouTube to show you exactly what I'm seeing. It can be found at: http://youtu.be/1o5UozU3700

The sketch that is installed:

Code: Select all
/*********************

Example code for the Adafruit RGB Character LCD Shield and Library

This code displays text on the shield, and also reads the buttons on the keypad.
When a button is pressed, the backlight changes color.

**********************/

// include the library code:
#include <Wire.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>

// The shield uses the I2C SCL and SDA pins. On classic Arduinos
// this is Analog 4 and 5 so you can't use those for analogRead() anymore
// However, you can connect other I2C sensors to the I2C bus and share
// the I2C bus.
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();

// These #defines make it easy to set the backlight color
#define RED 0x1
#define YELLOW 0x3
#define GREEN 0x2
#define TEAL 0x6
#define BLUE 0x4
#define VIOLET 0x5
#define WHITE 0x7

void setup() {
  // Debugging output
  Serial.begin(9600);
  // set up the LCD's number of rows and columns:
  lcd.begin(16, 2);

  // Print a message to the LCD. We track how long it takes since
  // this library has been optimized a bit and we're proud of it :)
  int time = millis();
  lcd.print("Hello, world!");
  time = millis() - time;
  Serial.print("Took "); Serial.print(time); Serial.println(" ms");
  lcd.setBacklight(BLUE);
}

uint8_t i=0;
void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);

  uint8_t buttons = lcd.readButtons();

  if (buttons) {
    lcd.clear();
    lcd.setCursor(0,0);
    if (buttons & BUTTON_UP) {
      lcd.print("UP ");
      lcd.setBacklight(RED);
    }
    if (buttons & BUTTON_DOWN) {
      lcd.print("DOWN ");
      lcd.setBacklight(YELLOW);
    }
    if (buttons & BUTTON_LEFT) {
      lcd.print("LEFT ");
      lcd.setBacklight(GREEN);
    }
    if (buttons & BUTTON_RIGHT) {
      lcd.print("RIGHT ");
      lcd.setBacklight(TEAL);
    }
    if (buttons & BUTTON_SELECT) {
      lcd.print("SELECT ");
      lcd.setBacklight(VIOLET);
    }
  }
}
Red13
 
Posts: 11
Joined: Wed Oct 05, 2011 1:54 pm

Next

Return to Other Adafruit products

Who is online

Users browsing this forum: No registered users and 6 guests

Stuff to buy from the Adafruit store and links to product documentation!


New Products [107]

Raspberry Pi[80]
 
FLORA[23]
 
Bunnie Studios[9]
 
FPGA[1]
 
mbed[11]
Arduino[60]
 
NETduino[14]
 
BeagleBone[24]
 
Android[6]
 
XBee[10]
More Dev Boards[31]


 
BoArduino[8]
 
SpokePOV[4]
 
TV-B-Gone[4]
 
MiniPOV[3]
 
SIM reader[3]
 
Microtouch[5]
 
Clocks & Watches[18]
 
Drawdio[4]
 
Brain Machine[1]
 
Game of Life[2]
 
MintyBoost[2]
More DIY Kits[16]


 
MaKey MaKey[3]
 
Tweet-a-Watt[5]
 
Young Engineers[33]
 
Discover Electronics[2]
 
Snap Circuits[4]
 
littleBits[3]
 
Project packs[8]


 
Breakout Boards[33]
LCDs & Displays[48]
Components & Parts[70]
Batteries & Power[49]
EL Wire/Tape/Panel[52]
LEDs[111]
 
Wireless[14]
Cables[62]
 
Lasers[6]
Sensors/Parts[145]
 
Enclosures/Cases[11]
 
Solar[11]
 
RFID / NFC[13]
Prototyping[70]
 
iDevices[13]
Tools[71]
 
Wearables[39]
 
CNC[37]
 
Robotics[29]
 
3D printing[1]
 
Materials[24]


 
Stickers[41]
 
Skill badges[55]
 
Books[25]
 
Circuit Playground[7]
 
Gift Certificates[4]