LTE Beacon not synchronizing with Estimote Cloud via LTE connection

Hello,

I have developed and deployed both my MicroApp and Cloud App, everything works fine on Bluetooth connection (when my notebook is a bridge between a beacon and Estimote Cloud). But when LTE is disconnected, there is no synchronization between the Estimote Cloud and the LTE Beacon. Test was done in a few cities, everywhere results are the same. Some technical details:

  1. I have tried to use two SIM cards: Orange card (works on data connection on smartphone) and the original Hologram one, results are the same for both cards. Beacon is fully charged.

  2. Both cards have no PIN code active.

  3. I use the following method to initially set LTE modem:

function setRadioTech() {
 if (sensors.battery.getVoltage() < 3.6) {
    print('battery is too low for cellular operations, recharge the beacon');
    location.stop;
    io.setLedColor(io.Color.RED);
    io.led(true);
  }

  //modem.setAirplaneMode(false);
  
  lte.setTech(lte.Tech.GSM_LTE, lte.Region.EUROPE)
   .then(() => {
    print('lte.setTech(lte.Tech.GSM_LTE, lte.Region.EUROPE) success');
  })
  .catch((error) => {
    print('lte.setTech(lte.Tech.GSM_LTE, lte.Region.EUROPE) error: ' + error); 

    // if your micro-app can't function without cellular connectivity, you might
    // want to keep re-trying until setTech succeeds
    print('will retry setTech in 1 minute');
    timers.single('1 min', () => modem.setRadioTech());
  });
}
  1. Afterwards I wait over 10 minutes and (for diagnostic purposes) execute LTE diagnostic methods, I obtain the following results (no detailed error for getStatus function):
[07:38:02] getStatus error: Error

[07:38:47] getOperators: [{"name":"Orange","status":"curr","type":"gsm"},{"name":"Plus","status":"forbid","type":"gsm"},{"name":"T-Mobile.pl","status":"forbid","type":"gsm"},{"name":"Play","status":"forbid","type":"gsm"}]

[07:39:21] getCells: [{"name":"Orange PL","rssi":-73,"mcc":260,"mnc":3,"lac":53101,"cell":42291,"tech":"GSM","band":"GSM 900","channel":94},{"name":"Plus","rssi":-78,"mcc":260,"mnc":1,"lac":21405,"cell":29592,"tech":"GSM","band":"GSM 900","channel":8},{"name":"Play","rssi":-80,"mcc":260,"mnc":6,"lac":2125,"cell":27395,"tech":"GSM","band":"GSM 900","channel":997},{"name":"T-Mobile.pl","rssi":-78,"mcc":260,"mnc":2,"lac":53101,"cell":42574,"tech":"GSM","band":"GSM 900","channel":25}]

[07:39:21] getInfo: {"iccid":"/* ...correct serial number of inserted SIM card ... *","imei":"/* Beacon's IMEI number */","imsi":" /* ...correct IMSI number of inserted SIM card ... */ "}
  1. Communication between beacon and cloud is done using the following code, it works fine on Bluetooth connection:

On beacon side:

cloud.enqueue('my_type', { ...... });
sync.now();

On cloud side:

module.exports = async function (event) {
  if (event.type === 'my_type') {
    ......
  }
};
  1. In Web Estimote application, on " LTE Beacon Settings" page, information about SIM card is not updating:

IMSI (SIM Card) Number: /* IMSI number of original Hologram card /
IMEI Number: /
device IMEI number */
Last Carrier: T-Mobile.pl Hologram
Data usage: 2 pings (304 KB) from Aug 6, 2019

  1. To test LTE connection I disconnect Bluetooth as described in the movie: https://www.youtube.com/watch?reload=9&v=UvTvzO5YstQ

Thanks in advance for your help!

Best regards

Additional information - I have carried out some tests in place with LTE-M range.

If network is activated too early there is a message:

getOperators error: Error: ESR0602 🔗 New operation

ESR0602 New operation
Previous async operation is still pending and there can be only one operation in progress. Previous promise has been rejected.

So I waited long enough to prevent that.

The behaviour for GSM and GSM_LTE modes was the same as previously described. For LTE_NB_IOT mode the behaviour was different. Device was unstable and after a few minutes it disconnected from Bluetooth. If getStatus/getOperatiors/getCells sequence of diagnostic methods was executed, device returned getStatus error without further information and further methods were not executed.

I have done tests for Orange and Hologram cards, waiting time was increased even to 10 minutes, and results were the same. Below please find some exemplary results.

LTE-M, Hologram SIM:

[11:14:18] lte.setTech(4, lte.Region.EUROPE) success
[11:14:39] Disconnected from the LTE Beacon

LTE-M, Orange SIM:

[11:04:38] lte.setTech(4, lte.Region.EUROPE) success

Waiting a few minutes…

[11:07:44] Starting connectivity scan...
[11:08:06] getStatus error: Error
  1. Other SIM cards than provided are not supported right now.
  2. Enabling NB-IoT is not a good idea when your operator does not support it (and Hologram SIM card does not) or there is no coverage. It only greatly increases network scan and registration time.
  3. Bluetooth sometimes disconnects itself for many reasons. Check out device uptime to see if beacon rebooted itself.
  4. modem.getOperators may take minutes to complete, calling it again before it finishes will cause ESR0602 this is a described behaviour mentioned in API reference. This error is delivered to previous promise to avoid situation where there are promises that never will get resolved or rejected. Operation is still going on and result will be delivered to newly returned promise.
  5. Checking voltage level and doing retry is not necessary (it is checked and retried internally). Just call modem.setTech(....).
  6. modem.getStatus() only ends with success when modem is able to register to network. This error message probably means network registration timeout (you probably have quite old firmware because this error message was fixed some time ago).

Hello,

Thank you for a reply. If I would like to use LTE-M connectivity, is it possible to order device fitted with such a card? What is the standard monthly fee for connectivity/Estimote cloud usage per device?

Best regards,

Stefan Marasek

LTE Beacon has LTE-M connectivity out of the box with the card that is already there. You can find all this information (about monthly fees) on our main website in Products section: https://estimote.com/products/