<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Thinking about the web UI:<br>
    <br>
    I intend to add a fourth tab "Partitioning" to Config→Firmware that
    checks the current partitioning scheme and guides through the
    upgrade process, so this can be done with just a couple of clicks (+
    reboots).<br>
    <br>
    The UI will provide info & links on each step, what to do if
    something fails.<br>
    <br>
    So the process will now become this?
    <ol>
      <li>Copy running ota image to "factory", reboot into "factory"</li>
      <li>Upgrade store partition, reboot</li>
      <li>Upgrade OTA partitions, reboot</li>
    </ol>
    If step 2 fails, can we provide a fallback, i.e. re-enabling the old
    store partition, so the user can retry after another reboot?<br>
    <br>
    Regards,<br>
    Michael<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 25.02.26 um 17:18 schrieb Michael
      Balzer via OvmsDev:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6bc29a0d-687c-4888-b819-0ac678f167ca@expeedo.de">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      Mark,<br>
      <br>
      I don't think the recursive copy operation is an issue. We already
      do a similar, but much more memory hungry operation with the
      config backup & restore operations (zip/unzip).<br>
      <br>
      The config backup doesn't add all directories, but includes "usr"
      meant for anything not fitting our standard /store layout:<br>
      <br>
      <font face="monospace">  backup_dir[] =<br>
          {<br>
            { "ovms_config", false },<br>
            { "events", true },<br>
            { "scripts", true },<br>
            { "obd2ecu", true },<br>
            { "dbc", true },<br>
            { "plugin", true },<br>
            { "tls", true },<br>
            { "trustedca", true },<br>
            { "usr", true },<br>
            { NULL, false }<br>
          };</font><br>
      <br>
      We could say that's also what we copy over to the new store,
      anything else is left to the user, if you think that's necessary.<br>
      <br>
      But I doubt anyone has been using multi level custom directory
      structures on /store, due to the limited space and the frequent
      corruption issues we had with /store that would have turned out
      impractical very soon. Could be an option now, as I didn't hear
      about any corruption since introducing the config transaction
      scheme, but that's still new and only on edge, but I'd still
      recommend using /sd for that kind of storage.<br>
      <br>
      Regards,<br>
      Michael<br>
      <br>
      <br>
      <div class="moz-cite-prefix">Am 25.02.26 um 14:13 schrieb Mark
        Webb-Johnson:<br>
      </div>
      <blockquote type="cite"
        cite="mid:F58EC152-9035-4847-8722-547B75D455E3@webb-johnson.net">
        <meta http-equiv="content-type"
          content="text/html; charset=UTF-8">
        Craig, Michael,
        <div><br>
        </div>
        <div>I have fixed the (a) partition type in ‘ota’ after upgrade,
          and (b) copy to factory. Both commits pushed.</div>
        <div><br>
        </div>
        <div>I also experimented with store.</div>
        <div><br>
        </div>
        <div>
          <ul class="MailOutline">
            <li>I can modify the partition table, rename old store to
              xstore, and create a new store at 0xe10000 same size 1MB,
              copy over the store partition. Reboot and all comes up
              fine (with repositioned store accessible).</li>
          </ul>
          <div><br>
          </div>
          <ul class="MailOutline">
            <li>If I do the same, but set new store size to 0x1f0000,
              then the store can’t be mounted (corrupt, presumably). I
              guess the wear-leveling thing, or maybe internal fat
              filesystem metadata is messing things up.</li>
          </ul>
          <div><br>
          </div>
          <div>So it seems that either we leave store at 1MB (move it to
            the end of flash and make the code partitions as big as we
            can), or we resize it to the 0x1f0000 and handle the
            complexities of first modifying the partition table for the
            new store, then mounting two fat file systems, recursively
            copying over the files, and then adjusting the partition
            tables again. The recursive copy worries me (memory
            consumption and if deeply nested then all those directory
            handles open at the same time - one for each level).</div>
          <div><br>
          </div>
          <div>Thoughts?</div>
          <div><br>
          </div>
          <div>Regards, Mark.</div>
          <div><br>
          </div>
          <div>
            <blockquote type="cite">
              <div>On Feb 25, 2026, at 3:59 PM, Michael Balzer <a
                  class="moz-txt-link-rfc2396E"
                  href="mailto:dexter@expeedo.de" moz-do-not-send="true"><dexter@expeedo.de></a>
                wrote:</div>
              <br class="Apple-interchange-newline">
              <div>
                <meta http-equiv="Content-Type"
                  content="text/html; charset=UTF-8">
                <div> @Craig: nice find!<br>
                  <div class="moz-cite-prefix"><br>
                    Am 25.02.26 um 02:58 schrieb Mark Webb-Johnson:<br>
                  </div>
                  <blockquote type="cite"
cite="mid:829E9A31-0BE7-4AA1-8597-2EB28E61DA73@webb-johnson.net">
                    <meta http-equiv="content-type"
                      content="text/html; charset=UTF-8">
                    Michael,
                    <div><br>
                    </div>
                    <div>
                      <blockquote type="cite">AFAICT "ota partitions
                        upgrade" currently does not verify the system
                        has booted from "factory" before allowing the
                        operation -- I think that should be added as a
                        safety measure.</blockquote>
                      <div><br>
                      </div>
                      I thought it did that check. Maybe not working?</div>
                  </blockquote>
                  <br>
                  No, you're right, should be OK that way. But as
                  Craig's result shows, I still should test it ;-)<br>
                  <br>
                  <blockquote type="cite"
cite="mid:829E9A31-0BE7-4AA1-8597-2EB28E61DA73@webb-johnson.net">
                    <div><br>
                      <div>Here are the three partition table options:</div>
                      <div><br>
                      </div>
                    </div>
                    <blockquote
style="margin: 0 0 0 40px; border: none; padding: 0px;">
                      <div>
                        <div>Original (f12):</div>
                      </div>
                      <div><br>
                      </div>
                      <div><google-sheets-html-origin>
                          <table xmlns="http://www.w3.org/1999/xhtml"
                            cellspacing="0" cellpadding="0" dir="ltr"
                            border="1" data-sheets-root="1"
                            data-sheets-baot="1"
style="table-layout: fixed; font-size: 10pt; font-family: Arial; width: 0px; border-collapse: collapse; border: medium;">
                            <colgroup><col width="100"><col width="100"><col
                                width="100"><col width="100"><col
                                width="100"><col width="100"><col
                                width="100"><col width="100"></colgroup><tbody>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold;">Label</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold;">Type</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold;">Subtype</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Offset
                                  (Hex)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Size
                                  (Hex)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Next
                                  (Hex)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Offset
                                  (Dec)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Size
                                  (Dec)</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">bootloader</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">bootloader</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">bootloader</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x0000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x8000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">8000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">32768</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">partition_table</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">partition_table</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">partition_table</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x8000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x1000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">9000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">32768</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">4096</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">nvs</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">nvs</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x9000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x4000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">D000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">36864</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">16384</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">otadata</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xD000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x2000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">F000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">53248</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">8192</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">phy_init</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">phy</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xF000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x1000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">61440</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">4096</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">factory</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">app</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">factory</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x400000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">410000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">65536</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">4194304</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_0</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">app</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_0</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x410000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x400000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">810000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">4259840</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">4194304</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_1</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">app</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_1</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x810000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x400000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">C10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">8454144</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">4194304</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">store</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">fat</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xC10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x100000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">D10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">12648448</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">1048576</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">*unused*</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"><br>
                                </td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"><br>
                                </td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xD10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x2F0000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">1000000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">13697024</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">3080192</td>
                              </tr>
                            </tbody>
                          </table>
                        </google-sheets-html-origin></div>
                    </blockquote>
                    <div>
                      <div><br>
                      </div>
                    </div>
                    <blockquote
style="margin: 0 0 0 40px; border: none; padding: 0px;">
                      <div>
                        <div>Current (12):</div>
                      </div>
                      <div><br>
                      </div>
                      <div><google-sheets-html-origin>
                          <table xmlns="http://www.w3.org/1999/xhtml"
                            cellspacing="0" cellpadding="0" dir="ltr"
                            border="1" data-sheets-root="1"
                            data-sheets-baot="1"
style="table-layout: fixed; font-size: 10pt; font-family: Arial; width: 0px; border-collapse: collapse; border: medium;">
                            <colgroup><col width="100"><col width="100"><col
                                width="100"><col width="100"><col
                                width="100"><col width="100"><col
                                width="100"><col width="100"></colgroup><tbody>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold;">Label</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold;">Type</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold;">Subtype</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Offset
                                  (Hex)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Size
                                  (Hex)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Next
                                  (Hex)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Offset
                                  (Dec)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Size
                                  (Dec)</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">bootloader</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">bootloader</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">bootloader</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x0000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x8000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">8000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">32768</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">partition_table</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">partition_table</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">partition_table</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x8000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x1000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">9000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">32768</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">4096</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">nvs</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">nvs</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x9000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x4000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">D000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">36864</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">16384</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">otadata</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xD000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x2000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">F000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">53248</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">8192</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">phy_init</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">phy</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xF000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x1000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">61440</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">4096</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_0</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">app</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_0</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x600000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">610000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">65536</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">6291456</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_1</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">app</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_1</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x610000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x600000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">C10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">6356992</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">6291456</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">store</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">fat</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xC10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x100000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">D10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">12648448</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">1048576</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">*unused*</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"><br>
                                </td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"><br>
                                </td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xD10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x2F0000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">1000000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">13697024</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">3080192</td>
                              </tr>
                            </tbody>
                          </table>
                        </google-sheets-html-origin></div>
                    </blockquote>
                    <div>
                      <div><br>
                      </div>
                    </div>
                    <blockquote
style="margin: 0 0 0 40px; border: none; padding: 0px;">
                      <div>
                        <div>Suggested (12, 7MB code, more store):</div>
                      </div>
                      <div><br>
                      </div>
                      <div><google-sheets-html-origin>
                          <table xmlns="http://www.w3.org/1999/xhtml"
                            cellspacing="0" cellpadding="0" dir="ltr"
                            border="1" data-sheets-root="1"
                            data-sheets-baot="1"
style="table-layout: fixed; font-size: 10pt; font-family: Arial; width: 0px; border-collapse: collapse; border: medium;">
                            <colgroup><col width="100"><col width="100"><col
                                width="100"><col width="100"><col
                                width="100"><col width="100"><col
                                width="100"><col width="100"></colgroup><tbody>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold;">Label</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold;">Type</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold;">Subtype</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Offset
                                  (Hex)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Size
                                  (Hex)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Next
                                  (Hex)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Offset
                                  (Dec)</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; font-weight: bold; text-align: right;">Size
                                  (Dec)</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">bootloader</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">bootloader</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">bootloader</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x0000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x8000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">8000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">32768</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">partition_table</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">partition_table</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">partition_table</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x8000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x1000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">9000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">32768</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">4096</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">nvs</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">nvs</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x9000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x4000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">D000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">36864</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">16384</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">otadata</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xD000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x2000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">F000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">53248</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">8192</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">phy_init</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">phy</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xF000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x1000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">61440</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">4096</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_0</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">app</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_0</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x700000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">710000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">65536</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">7340032</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_1</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">app</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">ota_1</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x710000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x700000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">E10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">7405568</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">7340032</td>
                              </tr>
                              <tr style="height: 21px;">
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">store</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">data</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">fat</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0xE10000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">0x1F0000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">1000000</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">14745600</td>
                                <td
style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom; text-align: right;">2031616</td>
                              </tr>
                            </tbody>
                          </table>
                        </google-sheets-html-origin></div>
                    </blockquote>
                    <div>
                      <div><br>
                      </div>
                      <div>It would make sense to resize store *now* if
                        we are going to do it, but I am wary of
                        requiring a factory reset. Also need to double
                        check that the unused space at the end is truly
                        unused. I am assuming the boot loader is in the
                        first 32KB, but haven’t actually checked.</div>
                      <div><br>
                      </div>
                      <div>Looking at the third (resize store)
                        arrangement, it would be moving
                        0xC10000-0xD0FFFF to 0xE10000-0xFFFFFF, which
                        doesn’t seem to overlap. I wonder what simply
                        copy that partition over (without reformatting
                        flash) would do? Either corrupt the filesystem,
                        ignore the extra space, or magically have the
                        new space available to FAT? I suspect
                        corruption. So, there is another (more complex)
                        alternative:</div>
                      <div>
                        <ol class="MailOutline">
                          <li>Create a 2nd fat store partition
                            (0xE10000-0xFFFFFF)</li>
                          <li>Format and mount that as FAT</li>
                          <li>Copy files from old to new</li>
                          <li>Unmount and drop the old store</li>
                          <li>Finish the rest of the partition upgrade</li>
                        </ol>
                      </div>
                      <div><br>
                      </div>
                      <div>I suspect #3 would be the most complex step.</div>
                      <div><br>
                      </div>
                      <div>Or the store move and resize could be done
                        first as a separate step.</div>
                      <div><br>
                      </div>
                      <div>Thoughts? Much more complex and risky...</div>
                    </div>
                  </blockquote>
                  <br>
                  There's the fatresize tool, didn't check the code, but
                  given we can simply create the new partition cleanly
                  and copy the files there, we should go that way.<br>
                  <br>
                  I second the store resize should be the first upgrade
                  step:<br>
                  <br>
                  Unmounting /store while running may be risky, that was
                  never needed and up to now only occurrs during
                  shutdown as a final step.<br>
                  <br>
                  I suggest we just relable the old "store" partition
                  and do a reboot instead. esp_vfs_fat_spiflash_mount()
                  searches for the partition by name, so the system
                  should automatically mount & use the new "store"
                  on boot.<br>
                  <br>
                  Regards,<br>
                  Michael<br>
                  <br>
                  <pre class="moz-signature" cols="72">-- 
Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
Fon 02330 9104094 * Handy 0176 20698926</pre>
                  <br>
                </div>
              </div>
            </blockquote>
          </div>
          <br>
        </div>
      </blockquote>
      <br>
      <pre class="moz-signature" cols="72">-- 
Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
Fon 02330 9104094 * Handy 0176 20698926</pre>
      <br>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre wrap="" class="moz-quote-pre">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
Fon 02330 9104094 * Handy 0176 20698926</pre>
    <br>
  </body>
</html>