Create firmware for Particle Electron to do geolocation

Dear all

I am a biologist based in the UK and new with Particle with very basic Arduino/C/programming skills.

We are studying bird navigation and need a technology to get positions of migratory birds remotely. We are also happy with very approximate (+/-10s of km) and infrequent positions. We do not have lots of funds. For our current project we need 10s of trackers and we can afford 10s of Particles Electron but we can’t buy satellite trackers (cost >$3k + $100s/device for satellite service, off-the-shelf cellular trackers costs 1000 eur/piece etc).

The idea is to use cellular trackers that send cellular network information to a server (I will be able to map this raw data on map even manually). I tried several off-the-shelf proprietary products and they have occurred to be unreliable, not flexible enough (can’t change settings) or both. So it all came down to Particle now.

I found this Particle project

but it’s overkill for me. The code is doing too much and I am too slow and unqualified to developing my code from scratch.

What I basically want is a firmware doing the follwoing

  • most of the time Particle is sleeping saving battery
  • once per 3 days it wakes up for 2-3 minutes, send AT+UCELLINFO command to find cellular network information, parses out the following

< mcc > : mobile country code
< mnc > : mobile network code
< bsic > : base station identification code
< lac > : location area code

Basically it goes through Cellular.command() and other functions but I am struggling to make a working firmware

These pieces of information are the pushed to Particle Cloud (and then via webhook to my server to be saved in any log file).

Note: I am working only with 2G Particle Electron in Europe (UK and continent)

Any help and suggestions will be very appreciated!


1 Like

Dmitry, have you considered the Particle GPS shield with the electron and using the assettracker project from the community libraries? . The googlemaps geolocation will clearly only work when the electron is within range of cellular network towers - if that is OK for you then you can try the library: Both these I have tried and both work without much work.


Hi Armor

Yes I heard of asset tracker. I may try it as well bc it has libraries and documentation. My concern is that it has biggish (for my birds) size and weight.

For my current project I would like a smaller device and the approach I described is tailored for the task. I am aware that 1) I will get very coarse (+/- few kms) position and 2) only if there is cellular coverage which is fine because in my regions (Europe) coverage is quite dense and some gaps between positions is fine.


Hi Armor

Could you provide any links to Getting started with Asset Tracker (v1 or v2 does not matter)? If no videos any forum blog posts or anything to kick start using it. I have ordered v1 btw to try.



Hopefully you got your boards in Particle’s Black Friday sale.

If I were you I would look on Hackster for a project example if you need step by step instructions. I appreciate that there is an initially steep learning curve for new users. I don’t know of any specific videos - have you looked through all the tutorials on the community?

If your requirement needs the GPS then you can look to create a custom PCB to make the tracker smaller and just suited to your specific requirements. Battery size and weight will also be an issue for you I would guess.

While I’d also go with a GPS solution (there are even smaller ones than the Particle Asset Tracker - e.g. at :mag: GPS module ) but as a starter you should give the aforementioned google-maps-device-locator library a shot.

Looking at your requirements, isn’t that what the tutorial you mentioned does, along with an explation of what it’s doing?

Hi Moors7

Yes but I did not get it working so far. Maybe I will try again. It seems to do the job I need but with lots of behind the scene things (e.g. I do not need to get connection to Google maps API, just basically need 4 pieces of information from a serving cell logged (published in Particle terms?) namely < mcc > : mobile country code, < mnc > : mobile network code
< bsic > : base station identification code, < lac > : location area code

Hi Armor I bought Asset Tracker v1 for testing and the Particle web-shop says that v2 is sold out and I need to check for v2 late Dec.

Hi ScruffR Yes as I started I have bought Asset Tracker v1 and once it arrives I will try the libraries mentioned. Once I have it under my belt I can move on and maybe have somebody make me a bare-bone PCB with only components I need doing the job. That’s the idea for now.

That’s exactly what it does, isn’t it? It gets the cell data and publishes it to the cloud. Then it uses a webhook and does the googly stuff, but you could just as easily have it send the data to your server instead, just change the adress.