Boron Time to Connect

After discussing with @Rftop I was curious what a typical time to connection is for the Boron in good and poor conditions. I setup a quick code to sample at 1 minute intervals and drove though good, poor, and no reception areas.
Boron LTE in Southern Alberta using Firmware 1.4.4 and the provided antenna on the front of my dash.
It would be great to see results from other areas of the world or more aspirationally build a full heat map for LTE-M.
Here are the results.

  • Average 34.2
  • Median 26.4
  • Samples 61

CODE:

SYSTEM_MODE(MANUAL);
SYSTEM_THREAD(ENABLED);

int sleepTime =         1 * 60    ;     // (# Minutes * 60 seconds)
int connectionFail =    3 * 60000 ;     // (# Minutes * 60,000 ms ) During the Connection Process, Boron will "Give-Up" after this amount of time and Sleep if un-successful.

void setup()  {
  uint32_t startTime = millis();
  Cellular.on();
  Particle.connect();
  while (!Particle.connected() && (millis() < startTime + connectionFail)){
    Particle.process();
  }
  if (Particle.connected()) { 
    String data = String::format("%4.4f", (float)(millis() - startTime) /1000);
    Particle.publish("TimeToLive", data, 60, PRIVATE, NO_ACK);
    delay(5000);
  }
  goToSleep(); 
  System.reset();
}

void loop()   {
  //will never get here
  Particle.process();
}

void goToSleep() {
  // Step through the process safely to ensure the lowest Modem Power.    
  Particle.disconnect();
  delay(2000);
  Cellular.off();
  delay(2000); 
  System.sleep( {}, {}, (sleepTime));
}
4 Likes

Thanks for doing this and thanks for sharing @jack4566! Can you share which Boron you’re using (2/3G or LTE), what area of the world you’re in and the Device OS version this Boron was running?

Thanks!