<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Firmware WiFi Data usage]]></title><description><![CDATA[<p dir="auto">Hello everyone,</p>
<p dir="auto">I'm building a low data IoT device, it calls an API around 100 times a day. A single API call consumes around <code>500 bytes</code> (see details on how I measured this below). My expectation is that the daily consumption (in KB) is <code>500 bytes * 100 / 1024 = ~49KB</code> for 100 API calls.</p>
<p dir="auto">To my surprise, after one day of testing, the device used around <code>1.5MB-2MB</code>. This is way too much compared to my expectation. My device uses a SIM card so I really have to keep the data usage as low as possible.</p>
<p dir="auto">I'm suspecting the m5stack firmware is sending some telemetry by default. This makes sense because when I look at UiFlow 2.0, and I click on available devices, I can see that UiFlow know if the device is Online or not. That means at least there is some keepalive call is being done to M5Stack servers for this.</p>
<p dir="auto">Then I created a simple application that just connects to the WiFi router and just blinks the RGB LED, without any WiFi or internet access, and after some time (few minutes) I see data being used, 30KBs.</p>
<p dir="auto"><strong>Questions</strong><br />
Has anyone else seen this same issue?<br />
And do you know what's the best way to handle it?</p>
<p dir="auto"><strong>Details on how I measured my API usage:</strong></p>
<p dir="auto">I measured my API call data usage using CURL and a few options to extract the data usage and request/response trace, and the call is around 500 bytes</p>
<p dir="auto"><code>curl -X POST "http://0.0.0.0:8000/api/example”  -H "Authorization: Bearer MY_API_KEY"    --write-out "\nSize of response body: %{size_download} bytes\nSize of request body: %{size_upload} bytes\n"  --trace curl_trace.log  -o /dev/null \ -s</code></p>
<p dir="auto"><strong>Output:</strong></p>
<pre><code>Size of response: 16 bytes
Size of request: 0 bytes
</code></pre>
<p dir="auto"><strong>From the curl_trace.log file the total size estimate:</strong></p>
<pre><code>* Request headers: 174 bytes
* Response headers: 317 bytes
* Response body: 16 bytes
* Thus, the total size for the transaction is:
	174 + 317 + 16 = 507 bytes
</code></pre>
<hr />
<p dir="auto">Device: <code>Atom S3 Lite</code><br />
Firmware: <code>v2.1.3-ATOMS3-LITE</code><br />
Language: <code>MicroPython</code></p>
<p dir="auto">Thanks,<br />
Carlos</p>
]]></description><link>https://community.m5stack.com/topic/6927/firmware-wifi-data-usage</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 16:18:30 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/topic/6927.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Oct 2024 19:41:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Firmware WiFi Data usage on Mon, 28 Oct 2024 13:59:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ajb2k3" aria-label="Profile: ajb2k3">@<bdi>ajb2k3</bdi></a> said in <a href="/post/26872">Firmware WiFi Data usage</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/cchakons" aria-label="Profile: cchakons">@<bdi>cchakons</bdi></a> is the packet sent increasing with each transmission? It could also be the buffer is not being emptied and it’s sending the buffer consisting of old and new data</p>
</blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ajb2k3" aria-label="Profile: ajb2k3">@<bdi>ajb2k3</bdi></a> its actually consuming data even if I am just toggling the RGB LED. So, its all coming from the UiFlow firmware.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kuriko" aria-label="Profile: kuriko">@<bdi>kuriko</bdi></a><br />
I have a pretty functional code already in MicroPython so it would be nice if the M5stack Team can provide a way to disable WiFi usage by their firmware. If not I'm going to have to migrate all my code to C.</p>
]]></description><link>https://community.m5stack.com/post/26876</link><guid isPermaLink="true">https://community.m5stack.com/post/26876</guid><dc:creator><![CDATA[cchakons]]></dc:creator><pubDate>Mon, 28 Oct 2024 13:59:05 GMT</pubDate></item><item><title><![CDATA[Reply to Firmware WiFi Data usage on Mon, 28 Oct 2024 08:27:01 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/cchakons" aria-label="Profile: cchakons">@<bdi>cchakons</bdi></a> is the packet sent increasing with each transmission? It could also be the buffer is not being emptied and it’s sending the buffer consisting of old and new data</p>
]]></description><link>https://community.m5stack.com/post/26872</link><guid isPermaLink="true">https://community.m5stack.com/post/26872</guid><dc:creator><![CDATA[ajb2k3]]></dc:creator><pubDate>Mon, 28 Oct 2024 08:27:01 GMT</pubDate></item><item><title><![CDATA[Reply to Firmware WiFi Data usage on Mon, 28 Oct 2024 06:30:50 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="/user/cchakons" aria-label="Profile: cchakons">@<bdi>cchakons</bdi></a><br />
As you said, the UiFlow firmware will periodically send heartbeat packets to the server to ensure that the device is online, and sometimes synchronize some information. Please forgive me I can't provide you precise parameters.<br />
UiFlow is just an easy-to-use development platform. If you want to accurately control these parameters, it is recommended to use traditional programming methods such as Arduino IDE or ESP-IDF.</p>
]]></description><link>https://community.m5stack.com/post/26871</link><guid isPermaLink="true">https://community.m5stack.com/post/26871</guid><dc:creator><![CDATA[kuriko]]></dc:creator><pubDate>Mon, 28 Oct 2024 06:30:50 GMT</pubDate></item></channel></rss>