Estimating Electrons data plan


#1

Hi everybody,
I have a bunch of Electrons with me and I’m planning to make them connect to MY server in order to make further evaluations.
In my scenario (France) the price is 0.40€/MB.
I found that I can send UDP packet from the Electron but I’m not sure how much is the final price.
Let’s say I need to send a 50byte string, then a packet will be: 8byte UDP header + 20byte IP header + 50byte payload: 78byte.
14285 UDP packets/month
0.40€/3 months sending 1 packet every minute

BUT

If I understood correctly, I have to consider ‘handshake’s cost’. Does it happen everytime I turn the Electron on? My plan is get the sample, sleep 60sec than awake and sample again.
That mean an handshake every minute? 6kB every minute more?

Does it exist a function that put MCU to sleep, but keeps cell/connection information?
Does the handshake happens every 23min anyway? (with Particle sim)

Note: I’ve already read https://docs.particle.io/tutorials/cellular-connectivity/data/ but I still have the doubts above.

Thank you!


#2

This document describes the various sleep modes and tradeoffs for data vs. power.

It assumes Particle.publish, not sending directly to your own server. If you are going to send data directly to your own server using UDP, you can only connect at the cellular level and not to the cloud.


#3

Hi @rickkas7, are you saying that the handshake described in that page (6kB handshake) is the Particle Cloud’s handshake?
What about packets size for the cell connection? As you said my plan is to connect at the cellular cell, then send data trought UDP.


#4

Correct, the 3-6K handshake the Particle cloud handshake.

You’re only billed for cellular IP data (GPRS). The cellular handshake occurs outside of that and you’re not billed for that. You’ll only be billed for I think the IP and UDP headers and data.


#5

Hi @rickkas7, I recently came back to this problem and I may need a double confirmation from you, if possible.

USING A 3rd PARTY Sim card, will I be charged by Particle IN CASE I send UDP packets directly to my server?
I’m actually thinking about the (only Particle) function:
Particle.keepAlive(300) that prevents the sim to stuck.

The script doesn’t cointain any connect() or publish() though, only udp.begin and udp.sendPacket/receivePacket.

The doubt comes also from the Electron’s led. I thought cyan and breathing cyan meant “Cloud connection and Cloud connection established” but I got them without any (supposed) Cloud connection. :face_with_raised_eyebrow:

Plus: If I understood correctly, Time.now() only gets time from RTC, it doesn’t ask the Cloud to sync. So if I set it manually with Time.setTime(123456) and if I don’t remove the battery, the RTC should keep the time.

Could you confirm?
Thank you :slight_smile:


#6

When using a 3rd-party SIM, there is no data charge from Particle.

For up to 100 3rd-party developer SIMs in your account, or up to 100 3rd-party product SIMs in a product, there is no monthly charge or data charge.

The default mode (AUTOMATIC) enables the Particle cloud connection. This works with both Particle and 3rd-party SIM cards. It allows OTA code flash, time sync, publish and subscribe, functions, and variables.

If you do not want to use the cloud connection at all, you need to use SYSTEM_MODE(SEMI_AUTOMATIC) and call Cellular.connect(). This will only connect the cellular layer and once connected you can call UDP.begin(). The Electron will breathe green.


#7

I use a 3rd party SIM and for the last 10 days I’ve had AssertTracker2 shield running firmware without sleep … I average Kbps at data usage markers. I have only used a total of 3.4MBs my SIM is free service and only has 200MBs per month. Works perfectly. I also use System mode Semi_auto and I can still flash OTA and use functions variables and subscribe . Maybe I should rethink my firmware and I could actually save on data… btw I am publishing Lat.lng, accuracy, Accell., volts and bat%.all data saves to Google sheet using iFtTT