<?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[gpy modem upgrade alternative]]></title><description><![CDATA[<p dir="auto">While the instructions at <a href="https://docs.pycom.io/tutorials/lte/firmware/" target="_blank" rel="noopener noreferrer nofollow">https://docs.pycom.io/tutorials/lte/firmware/</a> work, I find the whole sd card/serial uart pathway for GPY modem upgrades cumbersome. Herewith an alternative approach;</p>
<ol>
<li>upgrade the gpy to the latest version with the Pycom firmware updater tool</li>
<li>check your modem version with lte.send_at_cmd('ATI1').split('\r\n'), usually 33080 for most new GPYs</li>
</ol>
<pre><code>&gt;&gt;&gt; import network; lte=network.LTE()
&gt;&gt;&gt; lte.send_at_cmd('ATI1').split('\r\n')
['', 'UE5.0.0.0d', 'LR5.1.1.0-33080', '', 'OK', '']
</code></pre>
<ol>
<li>mod your project settings in Atom so that elf &amp; dup extensions are in sync_file_types for uploads</li>
</ol>
<pre><code>&quot;sync_file_types&quot;: [
        &quot;py&quot;,
        &quot;txt&quot;,
        &quot;log&quot;,
        &quot;json&quot;,
        &quot;xml&quot;,
        &quot;html&quot;,
        &quot;js&quot;,
        &quot;css&quot;,
        &quot;mpy&quot;,
        &quot;pem&quot;,
        &quot;cet&quot;,
        &quot;crt&quot;,
        &quot;key&quot;,
        &quot;dup&quot;,
        &quot;elf&quot;
</code></pre>
<ol>
<li>put updater.elf(only needed for 1st time modem upgrades) &amp; upgdiff_33080-to-41065.dup files in your Atom<br />
upload folder</li>
<li>click upload. Despite claims to the contrary they both fit in the gpy flash</li>
<li>Do import sqnsupgrade; sqnsupgrade.run('/flash/upgdiff_33080-to-41065.dup', '/flash/updater.elf') for 1st time modem upgrades or import sqnsupgrade; sqnsupgrade.run('/flash/upgdiff_33080-to-39529.dup') for subsequents</li>
</ol>
<pre><code>&gt;&gt;&gt; import sqnsupgrade; sqnsupgrade.run('/flash/upgdiff_33080-to-41065.dup', '/flash/updater.elf')
&lt;&lt;&lt; Welcome to the SQN3330 firmware updater [1.2.5] &gt;&gt;&gt;
&gt;&gt;&gt; GPy with firmware version 1.18.2.r6
Attempting AT auto-negotiation...
Session opened: version 1, max transfer 2048 bytes
Sending 430284 bytes: [########################################] 100%
Waiting for updater to load...
Attempting AT wakeup...
Session opened: version 1, max transfer 8192 bytes
Sending 1658508 bytes: [########################################] 100%
Waiting for modem to finish the update...
&lt;&lt;&lt;=== DO NOT DISCONNECT POWER ===&gt;&gt;&gt;
Resetting......
Your modem has been successfully updated.
Here is the current firmware version:

UE5.0.0.0d
LR5.1.1.0-41065
</code></pre>
<ol>
<li>Enjoy the fruits of your effort</li>
</ol>
<pre><code>&gt;&gt;&gt; sqnsupgrade.info()
&lt;&lt;&lt; Welcome to the SQN3330 firmware updater [1.2.5] &gt;&gt;&gt;
&gt;&gt;&gt; GPy with firmware version 1.18.2.r6
Your modem is in application mode. Here is the current version:
UE5.0.0.0d
LR5.1.1.0-41065
</code></pre>
]]></description><link>https://forum.pycom.io/topic/4999/gpy-modem-upgrade-alternative</link><generator>RSS for Node</generator><lastBuildDate>Wed, 10 Jun 2026 12:02:53 GMT</lastBuildDate><atom:link href="https://forum.pycom.io/topic/4999.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Jul 2019 01:28:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to gpy modem upgrade alternative on Fri, 12 Jul 2019 01:28:15 GMT]]></title><description><![CDATA[<p dir="auto">While the instructions at <a href="https://docs.pycom.io/tutorials/lte/firmware/" target="_blank" rel="noopener noreferrer nofollow">https://docs.pycom.io/tutorials/lte/firmware/</a> work, I find the whole sd card/serial uart pathway for GPY modem upgrades cumbersome. Herewith an alternative approach;</p>
<ol>
<li>upgrade the gpy to the latest version with the Pycom firmware updater tool</li>
<li>check your modem version with lte.send_at_cmd('ATI1').split('\r\n'), usually 33080 for most new GPYs</li>
</ol>
<pre><code>&gt;&gt;&gt; import network; lte=network.LTE()
&gt;&gt;&gt; lte.send_at_cmd('ATI1').split('\r\n')
['', 'UE5.0.0.0d', 'LR5.1.1.0-33080', '', 'OK', '']
</code></pre>
<ol>
<li>mod your project settings in Atom so that elf &amp; dup extensions are in sync_file_types for uploads</li>
</ol>
<pre><code>&quot;sync_file_types&quot;: [
        &quot;py&quot;,
        &quot;txt&quot;,
        &quot;log&quot;,
        &quot;json&quot;,
        &quot;xml&quot;,
        &quot;html&quot;,
        &quot;js&quot;,
        &quot;css&quot;,
        &quot;mpy&quot;,
        &quot;pem&quot;,
        &quot;cet&quot;,
        &quot;crt&quot;,
        &quot;key&quot;,
        &quot;dup&quot;,
        &quot;elf&quot;
</code></pre>
<ol>
<li>put updater.elf(only needed for 1st time modem upgrades) &amp; upgdiff_33080-to-41065.dup files in your Atom<br />
upload folder</li>
<li>click upload. Despite claims to the contrary they both fit in the gpy flash</li>
<li>Do import sqnsupgrade; sqnsupgrade.run('/flash/upgdiff_33080-to-41065.dup', '/flash/updater.elf') for 1st time modem upgrades or import sqnsupgrade; sqnsupgrade.run('/flash/upgdiff_33080-to-39529.dup') for subsequents</li>
</ol>
<pre><code>&gt;&gt;&gt; import sqnsupgrade; sqnsupgrade.run('/flash/upgdiff_33080-to-41065.dup', '/flash/updater.elf')
&lt;&lt;&lt; Welcome to the SQN3330 firmware updater [1.2.5] &gt;&gt;&gt;
&gt;&gt;&gt; GPy with firmware version 1.18.2.r6
Attempting AT auto-negotiation...
Session opened: version 1, max transfer 2048 bytes
Sending 430284 bytes: [########################################] 100%
Waiting for updater to load...
Attempting AT wakeup...
Session opened: version 1, max transfer 8192 bytes
Sending 1658508 bytes: [########################################] 100%
Waiting for modem to finish the update...
&lt;&lt;&lt;=== DO NOT DISCONNECT POWER ===&gt;&gt;&gt;
Resetting......
Your modem has been successfully updated.
Here is the current firmware version:

UE5.0.0.0d
LR5.1.1.0-41065
</code></pre>
<ol>
<li>Enjoy the fruits of your effort</li>
</ol>
<pre><code>&gt;&gt;&gt; sqnsupgrade.info()
&lt;&lt;&lt; Welcome to the SQN3330 firmware updater [1.2.5] &gt;&gt;&gt;
&gt;&gt;&gt; GPy with firmware version 1.18.2.r6
Your modem is in application mode. Here is the current version:
UE5.0.0.0d
LR5.1.1.0-41065
</code></pre>
]]></description><link>https://forum.pycom.io/post/28677</link><guid isPermaLink="true">https://forum.pycom.io/post/28677</guid><dc:creator><![CDATA[kjm]]></dc:creator><pubDate>Fri, 12 Jul 2019 01:28:15 GMT</pubDate></item><item><title><![CDATA[Reply to gpy modem upgrade alternative on Fri, 12 Jul 2019 06:35:49 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.pycom.io/uid/3449">@kjm</a> For people using Atom the this is a possible approach. But not all people do, and this approach makes quite a few assumptions, like that the image fits into flash. And there a lot if threads about problems with Atom and syncing. Your approach is an alternative, but people will too have issues with it.</p>
]]></description><link>https://forum.pycom.io/post/28682</link><guid isPermaLink="true">https://forum.pycom.io/post/28682</guid><dc:creator><![CDATA[robert-hh]]></dc:creator><pubDate>Fri, 12 Jul 2019 06:35:49 GMT</pubDate></item></channel></rss>