Spark for commercial asset tracking?

I have an asset tracking project that requires data logging from remote locations; so remote that I would need GSM/GPRS and perhaps satellite radios in addition to the WiFi radio. The assets would sleep most of the time, waking up every hour or so to send data to a host. A web app would then provide user/customer access to this data.

As I understand the Spark concept, it has no storage capability - correct? So I would have to use Google Datastore or AWS for storage, then another service to host the web app to manipulate the data - also correct?

Also, because the assets are live for such short periods, they need to query a host occasionally to determine if a firmware update or remote procedure needs to be executed. This would have to be done outside of Spark.io?

So if I understand correctly, for this use case Spark would allow rapid prototyping and a secure firmware update facility, but most of my effort would require 3rd party services? Can anyone comment on this?

Thanks,
Ray

Heya @rayz,

Good questions, I'll try to break them out and address them one by one:

I have an asset tracking project that requires data logging from remote locations; so remote that I would need GSM/GPRS and perhaps satellite radios in addition to the WiFi radio. The assets would sleep most of the time, waking up every hour or so to send data to a host. A web app would then provide user/customer access to this data.

1.) Cool!

As I understand the Spark concept, it has no storage capability - correct?

2.) The core has an external flash chip with 2 megs of storage. 1 Meg is generally reserved for stuff like encryption keys and firmware backups, and the other meg is free for whatever. The photon also has a meg of internal storage, and some misc space for small values, but it's tougher to write to. I really really like this SD card hack, and it's a great way to cheaply add offline storage to your project ( Micro SD card library - #29 by BDub - Libraries - Particle )

So I would have to use Google Datastore or AWS for storage, then another service to host the web app to manipulate the data - also correct?

3.) We love being open, so your data is your data. :slight_smile: We're building some tools to make it easier to let you save data from your core to a database. So you could host a database somewhere, and pipe messages directly to a table easily. I think this would work well for your project. I'll hopefully be able to beta test this after this sprint. So please ping me if you want to help test it.

Also, because the assets are live for such short periods, they need to query a host occasionally to determine if a firmware update or remote procedure needs to be executed. This would have to be done outside of Spark.io?

4.) We've been thinking about deferred function calls and deferred flashes. I am beta testing deferred flashing at the moment which would happen automatically when your device came back online and agreed to the update. I think a similar process for function calls, variables, and events would be cool and super useful for these scenarios.

So if I understand correctly, for this use case Spark would allow rapid prototyping and a secure firmware update facility, but most of my effort would require 3rd party services? Can anyone comment on this?

5.) We've been thinking about this a lot lately, and we have something in the works that addresses this. I'm hoping we can talk more about it in a few sprints (March/April)

I hope that helps!

Thanks,
David

2 Likes

@Dave, thanks for the insight. I should have added that I have much experience doing the hardware and firmware part of this, but zero on the remote storage and web interface side.
re #2 above, I was referring to the Spark Cloud and remote storage, but the SD hack was useful because it requires a logging facility for traceability and debug support. But it also needs a way to upload the log(s), which may be 10’s of K data.

re #3, it would be awesome if your “tools” included a Google Datastore library :smile:.

re #4, deferred flashing is exactly what I need. Please keep in mind that I may have a small fleet of these in the wild, segregated into different groups by customer and options, and would need a way to manage the herd.

So it sounds like you’re planning at least part of what I need, and I could start prototyping with WiFi quickly. I’ll know in a couple weeks if we have funding for the project, then we can talk more about specifics. And any pointers you can offer on where to start for the web interface for management, data display, billing, etc. would be fantastic.

Thanks,
Ray

1 Like

Hi @rayz,

Good to know! We’re also building out our fleet management tools for product creators which will help you manage and track many of these things. I think a lot of the features we have planned will save you a lot of time. (with sending/receiving logs / files, and more) :slight_smile:

Google Datastore looks interesting… :slight_smile:

Let me know if we can help!

Thanks,
David

@rayz for a simple logs, you can use Particle and Google Drive creating a recipe at https://ifttt.com, this can save the data from a custom function you publish to a google doc spreadsheet

-Sin