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

Pages: [1]
TinyDuino / Compile error when linking TinyDuino with Rockblock
« on: January 07, 2019, 07:14:56 AM »

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:
Code: [Select]
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:
Code: [Select]
#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
  while (!Serial);

  // Start the serial port connected to the satellite modem

  // If we're powering the device by USB, tell the library to
  // relax timing constraints waiting for the supercap to recharge.

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

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 ");

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

      Serial.print("Unexpected error ");

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

void ISBDConsoleCallback(IridiumSBD *device, char c)

void ISBDDiagsCallback(IridiumSBD *device, char c)

Any ideas as to what could be happening?

Thanks in advance.

Pages: [1]