<html aria-label="message body"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">OK, I have just committed this. The two new commands are:<div><br></div><div><ul class="MailOutline"><li>ota partitions list</li><li>ota partitions upgrade [-noconfirm]</li></ul></div><div><br></div><div>Rollback is via:</div><div><br></div><div><ul class="MailOutline"><li>wget <a href="http://api.openvehicles.com/firmware/ota/v3.1/main/partitions.bin">http://api.openvehicles.com/firmware/ota/v3.1/main/partitions.bin</a></li><li>esptool.py -p <path-to-usb> write_flash 0x8000 partitions.bin </li></ul><div><br></div><div>General approach to manual upgrade:</div><div><br></div><div><ol class="MailOutline"><li>Upgrade to firmware supporting this feature (3.3.005-711-g4feca695 or later)</li><li>Copy running ota firmware to factory</li><li>Set to boot from flash and reboot</li><li>Use ‘ota partitions upgrade’ to upgrade</li><li>Reboot</li></ol></div><div><br></div><div>Items still to be addressed:</div><div><br></div><div><ul class="MailOutline"><li>Documentation (including rollback procedure).</li><li>Modify partitions.csv to use this new format (when ready for production).</li><li>Web interface (in particular concept of factory vs ota), if necessary (haven’t checked this).</li><li>OTA flash builds. We will need a way to support 6MB builds for those that can use them. I suggest to change GetOVMSProduct() to return v3.5 for these modules that are running this new 6MB capable partition table. Then on server we can build a production release final 4MB firmware including this support, and then use v3.5 tree to build future 6MB only builds. The ‘ota flash’ system would automatically support that and give people time to upgrade (as well as new users with 4MB partition modules for many months).</li><li>Investigate any simple way to make this a simple one-command (current ota->factory, boot factory, reboot, partitions upgrade, reboot).</li></ul></div><div><br></div><div>For the moment, please try this out and let me know if you find any problems. We can then decide on the items still to be addressed.</div><div><br></div><div>Regards, Mark.</div><div><br></div><div>P.S. There is a possibility to do this another way to make even more flash space available, but that would mean moving the store partition right to the end of the 16MB flash, which is not so simple. Is 6MB really enough? Probably so if we can move to javascript vehicle modules, otherwise probably not (long-term).</div><div><br><blockquote type="cite"><div>On Feb 23, 2026, at 12:27 AM, Michael Balzer <dexter@expeedo.de> wrote:</div><br class="Apple-interchange-newline"><div>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<div>
Awesome :-)<br>
<br>
We need to update the user manual's firmware rescue guide
(<a class="moz-txt-link-freetext" href="https://docs.openvehicles.com/en/latest/userguide/factory.html#flash-factory-firmware-via-usb">https://docs.openvehicles.com/en/latest/userguide/factory.html#flash-factory-firmware-via-usb</a>)
accordingly, so in case anything goes wrong, users can help
themselves or get local help.<br>
<br>
The 4KB RAM overhead shouldn't be an issue I think, but we could add
a free memory check and recommend switching to the "NONE" vehicle
while performing the operation, if memory is too tight.<br>
<br>
<blockquote type="cite">
<div>P.S. OVMS v2 had to fit in 96KB of flash ;-)</div>
</blockquote>
<br>
…and 3328 bytes of RAM in total… so much for the "overhead" ;-)<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
<div class="moz-cite-prefix">Am 22.02.26 um 16:00 schrieb Mark
Webb-Johnson:<br>
</div>
<blockquote type="cite" cite="mid:D1C69B8E-43DC-4BDA-BBCF-5B0D11EB0B6C@webb-johnson.net">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
I’ve made some progress with this:
<div><br>
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div><font face="Andale Mono">OVMS# ota status nocheck</font></div>
<div><font face="Andale Mono">Hardware: OVMS WIFI BLE
BT cores=2 rev=ESP32/1</font></div>
<div><font face="Andale Mono">Firmware:
3.3.005-704-g6a1fed98-dirty/factory/edge (build idf
v3.3.4-854-g9063c8662-dirty Feb 22 2026 22:28:00)</font></div>
<div><font face="Andale Mono">Partition type: v3-f12
(factory, ota1, ota2)</font></div>
<div><font face="Andale Mono">Partition table: 0x8000</font></div>
<div><font face="Andale Mono">Running partition: factory</font></div>
<div><font face="Andale Mono">Boot partition: factory</font></div>
<div><font face="Andale Mono">Factory image:
3.3.005-704-g6a1fed98-dirty</font></div>
<div><font face="Andale Mono">OTA_O image:
3.3.005-662-g1f318f04</font></div>
<div><font face="Andale Mono">OTA_1 image:
3.3.005-643-gdbec4a13</font></div>
<div><font face="Andale Mono"><br>
</font></div>
<div><span style="font-family: "Andale Mono";">OVMS#
ota partitions list</span></div>
<div><font face="Andale Mono">Partition table:</font></div>
<div><font face="Andale Mono">Label Type Subtype
Address Size</font></div>
<div><font face="Andale Mono">nvs data nvs
0x00009000 16 KB</font></div>
<div><font face="Andale Mono">otadata data ota
0x0000d000 8 KB</font></div>
<div><font face="Andale Mono">phy_init data phy
0x0000f000 4 KB</font></div>
<div><font face="Andale Mono">factory app factory
0x00010000 4 MB</font></div>
<div><font face="Andale Mono">ota_0 app ota_0
0x00410000 4 MB</font></div>
<div><font face="Andale Mono">ota_1 app ota_1
0x00810000 4 MB</font></div>
<div><font face="Andale Mono">store data fat
0x00c10000 1 MB</font></div>
<div><font face="Andale Mono">Digest:
cfe36765a6bfe1b802a2abd4ec9f6851 pass</font></div>
<div><font face="Andale Mono"><br>
</font></div>
<div><span style="font-family: "Andale Mono";">##
Before upgrade, user needs to copy current OTA to FACTORY,
set boot partition to FACTORY, then reboot</span></div>
<div><font face="Andale Mono">## The upgrade process checks this
and will refuse to upgrade unless that is the case</font></div>
<div><span style="font-family: "Andale Mono";"><br>
</span></div>
<div><font face="Andale Mono">OVMS# ota partitions upgrade</font></div>
<div><font face="Andale Mono">0x00009000 Skipping over data/nvs
partition</font></div>
<div><font face="Andale Mono">0x0000d000 Skipping over data/ota
partition</font></div>
<div><font face="Andale Mono">0x0000f000 Skipping over data/phy
partition</font></div>
<div><font face="Andale Mono">0x00010000 Converted factory
partition to 6MB OTA 0</font></div>
<div><font face="Andale Mono">0x00610000 Converted OTA 0
partition to 6MB OTA 1</font></div>
<div><font face="Andale Mono">0x00c10000 Moved data/fat
partition up one position</font></div>
<div><font face="Andale Mono"> Recalculated MD5
checksum</font></div>
<div><font face="Andale Mono"> Clearing trailing old
MD5 checksum record</font></div>
<div><font face="Andale Mono">Erasing old partition table (4096
bytes at 0x00008000)...</font></div>
<div><font face="Andale Mono">Writing new partition table (4096
bytes at 0x00008000)...</font></div>
<div><font face="Andale Mono">Partition table upgraded
successfully - reboot required</font></div>
<div><font face="Andale Mono"><br>
</font></div>
<div><font face="Andale Mono">OVMS# ota partitions list</font></div>
<div><font face="Andale Mono">Partition table:</font></div>
<div><font face="Andale Mono">Label Type Subtype
Address Size</font></div>
<div><font face="Andale Mono">nvs data nvs
0x00009000 16 KB</font></div>
<div><font face="Andale Mono">otadata data ota
0x0000d000 8 KB</font></div>
<div><font face="Andale Mono">phy_init data phy
0x0000f000 4 KB</font></div>
<div><font face="Andale Mono">ota_0 app ota_0
0x00010000 6 MB</font></div>
<div><font face="Andale Mono">ota_1 app ota_1
0x00610000 6 MB</font></div>
<div><font face="Andale Mono">store data fat
0x00c10000 1 MB</font></div>
<div><font face="Andale Mono">Digest:
a0d94b1efa7f6d8852b44150db218e8d pass</font></div>
</blockquote>
<div>
<div><br>
</div>
<div>This is mostly implemented in a new ovms_partitions.{h,cpp}
in ovms_ota component, with only minor extensions to ovms_ota
itself. I have removed the ‘factory’ commands from ovms_ota if
the new partition layout is detected at boot.</div>
<div><br>
</div>
<div>One big ‘gotcha’ I found was that we need to
set CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORT=
and CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED=y in
our sdkconfig - otherwise the partition table cannot be
re-flashed.</div>
<div><br>
</div>
<div>The partition table must also be held in internal (not
external SPI) RAM - which is about a 4KB overhead just for
these checks.</div>
<div><br>
</div>
<div>The usual app-flash still works (and now targets the first
OTA at 0x0010000, rather than factory), so this approach seems
feasible and workable now. Once we are happy with this, and
have a production firmware supporting this layout, I can also
provide a new partitions.bin to the factory for new units to
ship with.</div>
<div><br>
</div>
<div>I have a few minor enhancements to make: (a) add a ‘yes/no’
(like factory reset), (b) an option to load partition table in
internal/external ram (internal only at the moment), and (c)
some minor tidy-ups. I suggest then to just check it in with
this basic manual functionality that can be experimented with.
Absent any comments / suggestions, I should be able to commit
this early in the coming week.</div>
<div><br>
</div>
<div>Regards, Mark.</div>
<div><br>
</div>
<div>P.S. OVMS v2 had to fit in 96KB of flash ;-)</div>
<div><br>
</div>
<div>
<blockquote type="cite">
<div>On Jan 21, 2026, at 11:12 AM, Mark Webb-Johnson
<a class="moz-txt-link-rfc2396E" href="mailto:mark@webb-johnson.net"><mark@webb-johnson.net></a> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Michael,
<div><br>
</div>
<div>The links are very helpful.</div>
<div><br>
</div>
<div>I have some time, and inclination to handle this
(now that my new home build host is up and running and
a make of OVMS from clean, with 32 cores and a fast
SSD, is under 25 seconds).</div>
<div><br>
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>
<div><font face="American Typewriter">real<span class="Apple-tab-span" style="white-space: pre;"> </span>0m24.642s</font></div>
<div><font face="American Typewriter">user<span class="Apple-tab-span" style="white-space:pre"> </span>5m50.376s</font></div>
<div><font face="American Typewriter">sys<span class="Apple-tab-span" style="white-space: pre;"> </span>0m38.276s</font></div>
</div>
</blockquote>
<div>
<div><br>
</div>
<div>We’ve already got the ‘ota copy’ command, so I
will start with trying to work on manipulation of
the partition table and improving the ‘ota status’
command to show partition table format and sizes.</div>
<div><br>
</div>
<div>Regards, Mark.</div>
<div><br>
<blockquote type="cite">
<div>On 11 Jan 2026, at 5:34 PM, Michael Balzer
via OvmsDev
<a class="moz-txt-link-rfc2396E" href="mailto:ovmsdev@lists.openvehicles.com"><ovmsdev@lists.openvehicles.com></a> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<meta charset="UTF-8">
<div style="position: relative;">
<div class="protected-part-7BD01625-5127-40F2-A5D3-0E6C4E74C73A" style="padding-top: 0px; position: relative; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-line: none; text-decoration-thickness: auto; text-decoration-style: solid;">
<div class="protected-title-7BD01625-5127-40F2-A5D3-0E6C4E74C73A" style="position: absolute; margin-top: -5px; background-color: rgb(255, 255, 255); margin-left: 20px; font-weight: bold;">Signed
PGP part</div>
<div class="protected-content-7BD01625-5127-40F2-A5D3-0E6C4E74C73A" style="border: 3px solid rgb(204, 204, 204); padding: 16px 16px 16px 20px;">On
the migration tool for changing the
partition table from a running
application, we're (of course) not the
first having that issue.<br>
<br>
If we're about to go that way, here is an
implementation of the process:<br>
<ul>
<li>Explanation:<span class="Apple-converted-space"> </span><a class="moz-txt-link-freetext" href="https://johnmu.com/2024-esp32-partition-update/" moz-do-not-send="true">https://johnmu.com/2024-esp32-partition-update/</a></li>
<li>Source:<span class="Apple-converted-space"> </span><a class="moz-txt-link-freetext" href="https://github.com/softplus/Esp32Repartition" moz-do-not-send="true">https://github.com/softplus/Esp32Repartition</a></li>
</ul>
It's written for the Arduino IDE with the
PlatformIO lib to create a UI, but the
core function is straight forward and
should be adaptable for us.<br>
<br>
The implementation allows for direct
manipulations of the partition table, i.e.
doesn't need a prepared table blob to
flash.<br>
<br>
Using a prepared blob should be even more
simple, basically just a matter of
`spi_flash_erase_range()` &
`spi_flash_write()` (→<a class="moz-txt-link-freetext" href="https://github.com/softplus/Esp32Repartition/blob/main/src/part_mgr.cpp#L297" moz-do-not-send="true">https://github.com/softplus/Esp32Repartition/blob/main/src/part_mgr.cpp#L297</a>).
We probably don't even need
`getPartitionTableAddr()`, as our table is
fixed at 0x8000.<br>
<br>
The code needed is small. When using a
blob, the table in theory uses a full
flash sector of 4096 bytes, but probably
doesn't fill the whole sector.<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
<div class="moz-cite-prefix">Am 08.12.25
um 07:01 schrieb Mark Webb-Johnson via
OvmsDev:<br>
</div>
<blockquote type="cite" cite="mid:1EAA8F91-A8E9-43D0-9705-CF40927F337A@webb-johnson.net">Michael,
Carsten,
<div><br>
</div>
<div>I think that if targeting things to
cull, we would need to be balance size
vs importance. For example, the RE
tools mentioned is just 10KB total
size. By comparison TPMS is 9KB, and
web server is 538KB.</div>
<div><br>
</div>
<div>We learned with OVMS v2 that the
biggest culprits in the long-run are
always the vehicle modules. The core
system stays pretty stable, but the
space required for *all* vehicle
modules grows with the number of
vehicles supported.</div>
<div><br>
</div>
<div>I don’t think we can simply switch
to 32MB flash, as that would abandon
the existing users. We would also need
to source a standard certified 32MB
module (which I don’t think Espressif
offer themselves).</div>
<div><br>
</div>
<div>Looking at the partition table:</div>
<div><br>
</div>
<blockquote style="margin: 0px 0px 0px 40px; border: medium; padding: 0px;">
<div>
<div><font face="Andale Mono"># OVMS
16MB flash ESP32 Partition Table</font></div>
<div><font face="Andale Mono">#
Name, Type, SubType, Offset,
Size</font></div>
<div><font face="Andale Mono">nvs,
data, nvs, 0x9000,
0x4000</font></div>
<div><font face="Andale Mono">otadata,
data, ota, 0xd000, 0x2000</font></div>
<div><font face="Andale Mono">phy_init,
data, phy, 0xf000, 0x1000</font></div>
<div><font face="Andale Mono">factory,
app, factory, 0x10000, 4M</font></div>
<div><font face="Andale Mono">ota_0,
app, ota_0, , 4M</font></div>
<div><font face="Andale Mono">ota_1,
app, ota_1, , 4M</font></div>
<div><font face="Andale Mono">store,
data, fat, , 1M</font></div>
</div>
</blockquote>
<div><br>
</div>
<div>Assuming we could (and that is a
big assumption given our older SDK)
change that at runtime, then a
possible migration path could be:</div>
<div><br>
</div>
<div>
<ol class="MailOutline">
<li>Have our code support both old
and new partition table formats,
and refuse to update to old format
if firmware > 4MB. Get that
code out into the hands of users.</li>
<li>Provide a migration tool for
partition table:</li>
<ol class="MailOutline">
<li>Copy running code to factory
(from ota_0 or ota_1, whichever
is current).</li>
<li>Reboot</li>
<li>Change partition table (most
likely replacing the entire
table with a binary blob of the
new format)</li>
<ol class="MailOutline">
<li>factory 4MB -> ota_0 same
offset, 6MB size</li>
<li>ota_0 -> ota_1 6MB
offset, 6MB size</li>
</ol>
<li>Change boot to ota_0.</li>
<li>Reboot</li>
</ol>
<li>Liase with factory so new
modules use new partition format
(and ship with firmware that
supports it).</li>
<li>Wait a reasonable time for users
to update before releasing any
firmware > 4MB.</li>
</ol>
</div>
<div><br>
</div>
<div>That would work more similarly to
other more modern ESP frameworks which
don’t bother with ‘factory’. It would
allow us another 50% expansion. But it
does run the risk of bricking
(requiring espflash to recover) during
the process.</div>
<div><br>
</div>
<div>But longer-term, the solution to me
seems to be to allow the vehicle
module code to overlay - so only the
single vehicle you choose is loaded.
And (absent any dynamic linking of
modular code in freertos), the only
straightforward way of doing that I
know of is migrating vehicle support
to Javascript (which comes along with
a host of other advantages - most
notably not having to be a C++
embedded developer to add/refine
vehicle support).</div>
<div><br>
</div>
<div>Regards, Mark.<br id="lineBreakAtBeginningOfMessage">
<div><br>
<blockquote type="cite">
<div>On 7 Dec 2025, at 4:39 PM,
Carsten Schmiemann via OvmsDev<span class="Apple-converted-space"> </span><a class="moz-txt-link-rfc2396E" href="mailto:ovmsdev@lists.openvehicles.com" moz-do-not-send="true"><ovmsdev@lists.openvehicles.com></a><span class="Apple-converted-space"> </span>wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Hi
Michael,
<div><br>
</div>
<div>
<div>It was to be expected
that we would eventually
run out of flash storage.
That’s why I would
immediately question
whether we should detach
ourselves from components
that aren’t really being
used. We could even start
a survey or something like
that.</div>
<div><br>
</div>
<div>For example, the RE
tools — the idea behind
them is great, but without
documentation they’re not
easy to use, and every
time I tried to work with
them, it just resulted in
crashes.</div>
<div><br>
</div>
<div>Then there’s the
question of who actually
uses Telnet, SSH, the
Duktape framework, the DBC
parser, OBD2ECU, or
CANopen (yes, the Twizy
integration is the only
one that uses it). </div>
<div><br>
</div>
<div>All great ideas, but in
the end, how many users
really make use of them?</div>
<div>The fewer active
components we have to
maintain, the ‘easier’ it
would also be to port the
code to a more current
ESP-IDF version — and that
would bring significant
benefits such as improved
networking features,
including firewall
capabilities and a much
more stable switching
between LTE and Wi-Fi.
I’ve looked at llanges
attempts and it’s
extremely tough.</div>
<div><br>
</div>
<div>As an example, in my
own custom firmware
builds, I don’t enable the
components (and of course
not all vehicles, so not
100 percent
representative) mentioned
above. This requires small
modifications in the code
because, for example, the
ESP logger is missing but
referenced in another
file, etc. But my firmware
file is only about 2.8 MB.</div>
<div><br>
</div>
<div>Just my 2 cents</div>
<div>Carsten</div>
<div><br>
</div>
<div>
<blockquote type="cite">
<div>Am 07.12.2025 um
08:57 schrieb Michael
Balzer via OvmsDev<span class="Apple-converted-space"> </span><a class="moz-txt-link-rfc2396E" href="mailto:ovmsdev@lists.openvehicles.com" moz-do-not-send="true"><ovmsdev@lists.openvehicles.com></a>:</div>
<br class="Apple-interchange-newline">
<div>
<div>FYI: use `make
size-components` to
create a report on
all component sizes
(`make size-files`
for source file
level).<br>
<br>
Unsurprisingly the
webserver is on top,
even with all assets
precompressed
already.<br>
<br>
<br>
<b><u>Top 10
components:</u></b><br>
<br>
<font face="monospace">Per-archive
contributions to
ELF file:<br>
<span class="Apple-converted-space"> </span>Archive File DRAM .data &
.bss IRAM Flash
code & rodata
Total<br>
libovms_webserver.a
0 255
0 134342
399846 534443<br>
libstdc++.a
149 5640
0 141045
72513 219347<br>
libmain.a
15 2104 0
139216
40086 181421<br>
<span class="Apple-converted-space"> </span>libduktape.a 0 0
0 141641
20367 162008<br>
libvehicle_renaulttwizy. 0 29 0 86517 75357
161903<br>
libc-psram-workaround.a 1854 66 18391 118283 10943
149537<br>
liblwip.a
17 3873 0
118366
16722 138978<br>
libnet80211.a
938 9042
10475 92339
21900 134694<br>
<span class="Apple-converted-space"> </span>libmbedtls.a 100 560
76 107079
26785 134600<br>
<span class="Apple-converted-space"> </span>libvehicle_vweup.a 8
8 0
60846 43432
104294</font><br>
<br>
<br>
<b><u>Vehicles:</u></b><br>
<br>
<font face="monospace">Per-archive
contributions to
ELF file:<br>
<span class="Apple-converted-space"> </span>Archive File DRAM .data &
.bss IRAM Flash
code & rodata
Total<br>
libvehicle_renaulttwizy. 0 29 0 86517 75357
161903<br>
<span class="Apple-converted-space"> </span>libvehicle_vweup.a 8
8 0
60846 43432
104294<br>
libvehicle_mgev.a
156 26
0 47756
33998 81936<br>
<span class="Apple-converted-space"> </span>libvehicle_smarteq.a 82
15 0
59267 19527
78891<br>
<span class="Apple-converted-space"> </span>libvehicle_smarted.a 0
9 0
48481 28801
77291<br>
libvehicle_renaultzoe_ph 4 10 0 44622 29564
74200<br>
<span class="Apple-converted-space"> </span>libvehicle.a 0 68
0 57735
12062 69865<br>
<span class="Apple-converted-space"> </span>libvehicle_bmwi3.a 0
2 0
33370 14357
47729<br>
libvehicle_minise.a
9432 2
0 35360
2210 47004<br>
libvehicle_hyundai_ioniq 176 7 0 32921 13425
46529<br>
libvehicle_nissanleaf.a 0 3 0 35491 8941
44435<br>
<span class="Apple-converted-space"> </span>libvehicle_kiasoulev.a 240
9 0
32508 5473
38230<br>
<span class="Apple-converted-space"> </span>libvehicle_kianiroev.a 108
7 0
24070 4006
28191<br>
libvehicle_mitsubishi.a 0 5 0 21645 3893
25543<br>
libvehicle_boltev.a
0 5
0 15999
7864 23868<br>
<span class="Apple-converted-space"> </span>libvehicle_niu_gtevo.a 4
12 0
18248 3733
21997<br>
libvehicle_maxus_edelive 156 3 0 10713 7477
18349<br>
libvehicle_renaultzoe.a 0 6 0 14828 2859
17693<br>
libvehicle_maxus_euniq56 156 3 0 8363 6840
15362<br>
libvehicle_voltampera.a 0 5 0 13221 1932
15158<br>
libvehicle_hyundai_ioniq 0 3 0 11081 3191
14275<br>
libvehicle_teslaroadster 0 6 0 10367 2238
12611<br>
<span class="Apple-converted-space"> </span>libvehicle_thinkcity.a 0
3 0
6114 3449
9566<br>
libvehicle_jaguaripace.a 0 8 0 5445 3941
9394<br>
libvehicle_fiatedoblo.a 0 2 0 4262 2126
6390<br>
libvehicle_teslamodels.a 0 2 0 5361 948
6311<br>
libvehicle_toyotarav4ev. 0 2 0 5023 1255
6280<br>
<span class="Apple-converted-space"> </span>libvehicle_maxus_t90.a 0
3 0
2567 2204
4774<br>
<span class="Apple-converted-space"> </span>libvehicle_byd_atto3.a 0
2 0
3503 947
4452<br>
libvehicle_energica.a
0 1
0 3319
880 4200<br>
libvehicle_demo.a
0 2
0 3205
795 4002<br>
libvehicle_maxus_euniq6. 0 2 0 2470 1182
3654<br>
<span class="Apple-converted-space"> </span>libvehicle_fiat500.a 0
2 0
2838 732
3572<br>
libvehicle_zombie_vcu.a 0 4 0 1882 1259
3145<br>
libvehicle_mercedesb250e 0 2 0 2113 955
3070<br>
libvehicle_zeva.a
0 2
0 2209
688 2899<br>
<span class="Apple-converted-space"> </span>libvehicle_dbc.a 0
2 0
1278 1395
2675<br>
libvehicle_cadillac_c2_c 0 7 0 1293 1105
2405<br>
libvehicle_maple60s.a
0 2
0 1416
698 2116<br>
libvehicle_chevrolet_c6_ 0 2 0 1053 1049
2104<br>
<span class="Apple-converted-space"> </span>libvehicle_obdii.a 0
2 0
957 1007
1966<br>
libvehicle_teslamodel3.a 0 2 0 458 713
1173<br>
libvehicle_none.a
0 2
0 418
684 1104<br>
<span class="Apple-converted-space"> </span>libvehicle_track.a 0
2 0
416 680
1098</font><br>
<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
<div class="moz-cite-prefix">Am 06.12.25 um 10:33 schrieb Michael Balzer via
OvmsDev:<br>
</div>
<blockquote type="cite" cite="mid:6aad0365-f942-45ea-948d-5b9d67fc7073@expeedo.de">Everyone,<span class="Apple-converted-space"> </span><br>
<br>
with the latest
vehicle additions,
the firmware size
has now grown to
4,015,328 bytes in
build
3.3.005-485-gc4664881.<span class="Apple-converted-space"> </span><br>
<br>
Our flash
partitioning
scheme is
currently designed
to provide three
firmware
partitions
(factory, ota_0
& ota_1) of
4MB = 4,194,304
bytes each.<span class="Apple-converted-space"> </span><br>
<br>
So we've now got
178,976 bytes =
~4% left.<span class="Apple-converted-space"> </span><br>
<br>
Options beyond the
4 MB limit:<span class="Apple-converted-space"> </span><br>
<br>
a) split
features, e.g.
vehicle support,
into two or more
builds<span class="Apple-converted-space"> </span><br>
<br>
b) repartition
into two firmware
partitions of 6 MB
each, reusing the
factory partition
for OTA<span class="Apple-converted-space"> </span><br>
<br>
c) switch to an
ESP32 WROOM module
with 32 MB flash
(possible?)<span class="Apple-converted-space"> </span><br>
<br>
We've got some
time left, new
vehicles normally
don't need that
much space, I just
wanted to raise
awareness.<span class="Apple-converted-space"> </span><br>
<br>
Regards,<span class="Apple-converted-space"> </span><br>
Michael<span class="Apple-converted-space"> </span><br>
<br>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre wrap="" class="moz-quote-pre">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">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>
</div>
_______________________________________________<br>
OvmsDev mailing list<br>
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a><br>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br>
</div>
</blockquote>
</div>
<br>
</div>
</div>
_______________________________________________<br>
OvmsDev mailing list<br>
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a><br>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br>
</div>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre wrap="" class="moz-quote-pre">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">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>
</div>
</div>
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">_______________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-line: none; text-decoration-thickness: auto; text-decoration-style: solid;">
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">OvmsDev
mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-line: none; text-decoration-thickness: auto; text-decoration-style: solid;">
<a href="mailto:OvmsDev@lists.openvehicles.com" style="font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-line: none; text-decoration-thickness: auto; text-decoration-style: solid;">
<a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" style="font-family: Helvetica; font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div>
</div>
</blockquote>
</div>
<br>
</div>
</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>
</div>
</div></blockquote></div><br></div></body></html>