Micro app stops after few minutes


I’m scanning for ibeacons and has to update the cloud very frequently with in secs, I kept for 1 minute it runs for 10 to 20 mins only after it stopped working.

What are should I do to update for every seconds, what are limitations and subscriptions to take for seemless running continously.


Can you share your code?

And just to be sure, you want to send a cloud request every 1 second? That … sounds like a bad idea, from a battery life and data cost perspective. I’d strongly recommend to rethink this approach. What exactly are you trying to do, maybe we can brainstorm some ideas together.


Our Idea is to trace the visitors(carries a beacon) in a museum and we have museum give live traffic flows with visitors.

And how long in distance, can LTE-Beacons detects the beacon?

Micro-app doesn't sync/deploy to the LTE Beacon

In a use case like that, I’d probably only send events to Estimote Cloud when I (a) detect a new visitor (= beacon) came in range of the LTE Beacon (an “enter” event) and (b) when I stop detecting that visitor for, say, 1 minute (= they left the range = an “exit” event).

This way, you can keep the real-time’iness, but are a little more efficient with the requests, since you only report changes, instead of constantly reporting the entire state of the system.

Also, if real-time’iness is what you want, having the LTE Beacon plugged in will probably be a requirement. When on battery power, the LTE radio’s default state is to sleep, which means there might be a minute or two of delay to wake it up, log into the network, and send data. When connected to USB power, the LTE radio will stay logged in to the network. (Note that this behavior is something I’d consider an implementation detail, so we may change this in the future.)

And how long in distance, can LTE-Beacons detects the beacon?

This mostly depends on the beacon and its broadcasting power/range. Proximity Beacons have something around 70–100 m in an open field when set to max broadcasting power of +4 dBm. Indoors, this number will go down.


But our requirement is not matching, We have track the dwelling, and track multiple visitors (beacons)
So, Visitor can win the merchandise products at the end of the day.

How to change the hearbeat of LTE Beacon


Correct me if I’m wrong, but if you know the enter and exit events for each beacon (= visitor), you can calculate dwell time (; (time of exit minus time of enter)

You set the heartbeat via sync.setSyncPeriod(syncPeriod), where syncPeriod is in seconds. Min allowed value is 120 = a heartbeat every two minutes.


A part of battery or data, can we update every sec, any limitations that override by taking the subscriptions?

  1. If We use monitoring, does LTE-Beacon can detect multiple visitors(beacons) at a time.
  2. Vistors can any number they can be more than 500. How can we start 500 monitoring region in LTE-Beacon?
  3. Can we use both ranging and monitoring in LTE-Beacon?

You can always do sync.now() to force a sync. No need to wait for the heartbeat.

For your other questions, see this topic:


Then as your previous replies, you are saying entry and exit to check beacon dwelling time.
How can we achieve this in LTE-Beacon?


Here’s what I’ve been using for enter/exit events in my own projects:

    '76e88a19542a64f7c32c7af48192d129', // lemon 
    '3a7dc6f68d15043f9f83097dcb5b5822', // candy
    '17d8274ffe6eb174e6dabd081923dd35', // beetroot
var BEACON_EXIT_TIMEOUT = 60; // seconds

var beaconsInRange = {};

ble.startScan((scanRecord) => {
    var packet = ble.parse(scanRecord);
    // ignore non-Estimote-Location packets
    if (!packet || packet.type !== 'est_loc') return;
    // ignore non-whitelisted beacons
    if (WHITELISTED_BEACONS.indexOf(packet.id) === -1) return;
    if (beaconsInRange[packet.id]) {
        // already in range of this beacon, reset the exit timer
        print('still in range: ' + packet.id);
    } else {
        // just came in range of this beacon, trigger an enter...
        print('enter: ' + packet.id);
        cloud.enqueue('beacon-enter-range', {beaconId: packet.id});
        // ...and schedule an exit timer if we don't hear from the beacon for BEACON_EXIT_TIMEOUT seconds
        beaconsInRange[packet.id] = timers.single(BEACON_EXIT_TIMEOUT * 1000, () => {
            // exit timer kicked in, trigger an exit
            print('exit: ' + packet.id);
            cloud.enqueue('beacon-exit-range', {beaconId: packet.id});
            delete beaconsInRange[packet.id];
}, 0)
1 Like
LTE Beacon to Scan thousands of ibeacons

Our LTE-Beacons are awaiting for sync for 3 days, I found thier next heartbeat as June 1st. till then they won’t sync the production app on them?

How to sync with apps immediately. To execute our apps on them.
Some times, Force sync by pressing side button and center button won’t working by holding them together event more than 30sec (actually it has sync after 10sec)

Sometimes, three LEDs were blinking, but syncing and heart beat not updating


Just FYI, since this one topic grew to cover a lot of different, unrelated issues, I’ll be locking it now. It’s much easier for us and our LTE team to track individual topics each focused on one, specific problem/question. Please try to follow this principle in the future, it’ll make our life easier, which in turns means we can help you better/quicker.

Moved the conversation/your latest post here:

closed #13