Simple but important questions for a commercial product

Hi there,

we are building a new connected device and studying several M2M, IoT providers such as particle. Well, over the air update is very important for us. Here are our questions :wink: :

  • Is it possible to use OTA for cellular devices, electron ? If yes, it’s similar for 2G and 3G ? Is OTA data counted as user data, we mean do we have to pay for it or not ?
  • In the case of 2G, we found out that it might be kind of obsolete in several countries that are crucial for us such as US and JP, right ? Can we have a detailed prediction for 2G ? this is important because if we go on 3G, it seems like we have to develop 2 or 3 versions for each zone, right ? Or ther is a universal solution too ?

Thanks guys,

OTA updates work well for cellular. Yes, you have to pay for the data it uses.

We picked 3G for the obsolescence reason in the US. However, since our desiction, T-mobile has promised to support 2G through 2020. Although I hope to have endpoints last longer than 3 years.

Yes, it is possible and yes, that counts towards the data quota.

That’s up to the respective providers and Particle would have to rely on their info and correctness of that.

The 3G Electrons do have 2G fallback and the firmware does not really differ between G350, U260 and U270 Electrons. So only one code base for 3 device types (there are only two 3G zones and 2G is worldwide).

AFAIK, there is a possibility for a new (worldwide) ublox 3G (maybe 4G) module, but no ETA yet.

Guys you rock, I like your responsiveness.

well, we are not too deep into tech right now but is we get it correct, electron or photon have your firmware + eventually our app code ? what is the size of that firmware ? do we have to reload it each time we deploy an update OTA ? Our product is very versatile and we may have frequent OTAs so having an idea about exchange data is important.


There’s a system part and a user part. The system part needs to have a version >= use part. So, as long as you don’t use a higher user version, you’ll have no need to update the system firmware, and can send the user firmware only. When there’s a discrepancy in versions, you’ll have to update the system firmware as well, which is quite a bit larger than the user firmware. I haven’t got exact numbers, but the IDE can give you rough estimates when compiling.

The next system version will with ~450KB be slightly bigger than previous systems (~250KB)
Current application firmware can be up to 128KB.