Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - IanBZa

#1
Hi.

I am trying to connect a TinyDuino to a Rockblock Iridium but im getting compile errors and I have no idea why.

The error i'm getting is:

lto1: internal compiler error: in lto_output_varpool_node, at lto-cgraph.c:624
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
lto-wrapper: fatal error: /Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avr-gcc returned 1 exit status
compilation terminated.
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino Pro or Pro Mini.


I'm using the stock standard example for the Rockblock - but i've switched it to software serial:

#include <IridiumSBD.h>
#include <time.h>
/*
* Time
*
* This sketch demonstrates how to retrieve the Iridium system time
* from the modem using the new getSystemTime method. This uses
* the Iridium command AT-MSSTM to acquire the time.  The method will
* fail if the Iridium network has not yet been acquired.
*
* Assumptions
*
* The sketch assumes an Arduino Mega or other Arduino-like device with
* multiple HardwareSerial ports. It assumes the satellite modem is
* connected to Serial3. Change this as needed. SoftwareSerial on an Uno
* works fine as well.
*/
#include <SoftwareSerial.h>


SoftwareSerial IridiumSerial(4, 5);
/*#define IridiumSerial Serial3*/
#define DIAGNOSTICS false // Change this to see diagnostics

// Declare the IridiumSBD object
IridiumSBD modem(IridiumSerial);

void setup()
{
  int err;
 
  // Start the console serial port
  Serial.begin(115200);
  while (!Serial);

  // Start the serial port connected to the satellite modem
  IridiumSerial.begin(19200);

  // If we're powering the device by USB, tell the library to
  // relax timing constraints waiting for the supercap to recharge.
  modem.setPowerProfile(IridiumSBD::USB_POWER_PROFILE);

  // Begin satellite modem operation
  Serial.println("Starting modem...");
  err = modem.begin();
  if (err != ISBD_SUCCESS)
  {
    Serial.print("Begin failed: error ");
    Serial.println(err);
    if (err == ISBD_NO_MODEM_DETECTED)
      Serial.println("No modem detected: check wiring.");
    return;
  }
}

void loop()
{
   struct tm t;
   int err = modem.getSystemTime(t);
   if (err == ISBD_SUCCESS)
   {
      char buf[32];
      sprintf(buf, "%d-%02d-%02d %02d:%02d:%02d",
         t.tm_year + 1900, t.tm_mon + 1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec);
      Serial.print("Iridium time/date is ");
      Serial.println(buf);
   }

   else if (err == ISBD_NO_NETWORK)
   {
      Serial.println("No network detected.  Waiting 10 seconds.");
   }

   else
   {
      Serial.print("Unexpected error ");
      Serial.println(err);
      return;
   }

   // Delay 10 seconds
   delay(10 * 1000UL);
}

#if DIAGNOSTICS
void ISBDConsoleCallback(IridiumSBD *device, char c)
{
  Serial.write(c);
}

void ISBDDiagsCallback(IridiumSBD *device, char c)
{
  Serial.write(c);
}
#endif


Any ideas as to what could be happening?

Thanks in advance.

Ian
SMF spam blocked by CleanTalk