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.
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.
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).
All great ideas, but in the end, how many users
really make use of them?
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.
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.
Just my 2 cents
Carsten
FYI: use `make size-components` to create a
report on all component sizes (`make
size-files` for source file level).
Unsurprisingly the webserver is on top, even
with all assets precompressed already.
Top 10 components:
Per-archive
contributions to ELF file:
Archive File DRAM .data &
.bss IRAM Flash code & rodata Total
libovms_webserver.a 0 255
0 134342 399846 534443
libstdc++.a 149 5640
0 141045 72513 219347
libmain.a 15 2104
0 139216 40086 181421
libduktape.a 0 0
0 141641 20367 162008
libvehicle_renaulttwizy. 0 29
0 86517 75357 161903
libc-psram-workaround.a 1854 66
18391 118283 10943 149537
liblwip.a 17 3873
0 118366 16722 138978
libnet80211.a 938 9042
10475 92339 21900 134694
libmbedtls.a 100 560
76 107079 26785 134600
libvehicle_vweup.a 8 8
0 60846 43432 104294
Vehicles:
Per-archive
contributions to ELF file:
Archive File DRAM .data &
.bss IRAM Flash code & rodata Total
libvehicle_renaulttwizy. 0 29
0 86517 75357 161903
libvehicle_vweup.a 8 8
0 60846 43432 104294
libvehicle_mgev.a 156 26
0 47756 33998 81936
libvehicle_smarteq.a 82 15
0 59267 19527 78891
libvehicle_smarted.a 0 9
0 48481 28801 77291
libvehicle_renaultzoe_ph 4 10
0 44622 29564 74200
libvehicle.a 0 68
0 57735 12062 69865
libvehicle_bmwi3.a 0 2
0 33370 14357 47729
libvehicle_minise.a 9432 2
0 35360 2210 47004
libvehicle_hyundai_ioniq 176 7
0 32921 13425 46529
libvehicle_nissanleaf.a 0 3
0 35491 8941 44435
libvehicle_kiasoulev.a 240 9
0 32508 5473 38230
libvehicle_kianiroev.a 108 7
0 24070 4006 28191
libvehicle_mitsubishi.a 0 5
0 21645 3893 25543
libvehicle_boltev.a 0 5
0 15999 7864 23868
libvehicle_niu_gtevo.a 4 12
0 18248 3733 21997
libvehicle_maxus_edelive 156 3
0 10713 7477 18349
libvehicle_renaultzoe.a 0 6
0 14828 2859 17693
libvehicle_maxus_euniq56 156 3
0 8363 6840 15362
libvehicle_voltampera.a 0 5
0 13221 1932 15158
libvehicle_hyundai_ioniq 0 3
0 11081 3191 14275
libvehicle_teslaroadster 0 6
0 10367 2238 12611
libvehicle_thinkcity.a 0 3
0 6114 3449 9566
libvehicle_jaguaripace.a 0 8
0 5445 3941 9394
libvehicle_fiatedoblo.a 0 2
0 4262 2126 6390
libvehicle_teslamodels.a 0 2
0 5361 948 6311
libvehicle_toyotarav4ev. 0 2
0 5023 1255 6280
libvehicle_maxus_t90.a 0 3
0 2567 2204 4774
libvehicle_byd_atto3.a 0 2
0 3503 947 4452
libvehicle_energica.a 0 1
0 3319 880 4200
libvehicle_demo.a 0 2
0 3205 795 4002
libvehicle_maxus_euniq6. 0 2
0 2470 1182 3654
libvehicle_fiat500.a 0 2
0 2838 732 3572
libvehicle_zombie_vcu.a 0 4
0 1882 1259 3145
libvehicle_mercedesb250e 0 2
0 2113 955 3070
libvehicle_zeva.a 0 2
0 2209 688 2899
libvehicle_dbc.a 0 2
0 1278 1395 2675
libvehicle_cadillac_c2_c 0 7
0 1293 1105 2405
libvehicle_maple60s.a 0 2
0 1416 698 2116
libvehicle_chevrolet_c6_ 0 2
0 1053 1049 2104
libvehicle_obdii.a 0 2
0 957 1007 1966
libvehicle_teslamodel3.a 0 2
0 458 713 1173
libvehicle_none.a 0 2
0 418 684 1104
libvehicle_track.a 0 2
0 416 680 1098
Regards,
Michael
Am 06.12.25 um
10:33 schrieb Michael Balzer via OvmsDev:
Everyone,
with the latest vehicle additions, the
firmware size has now grown to 4,015,328
bytes in build 3.3.005-485-gc4664881.
Our flash partitioning scheme is currently
designed to provide three firmware
partitions (factory, ota_0 & ota_1) of
4MB = 4,194,304 bytes each.
So we've now got 178,976 bytes = ~4% left.
Options beyond the 4 MB limit:
a) split features, e.g. vehicle support,
into two or more builds
b) repartition into two firmware partitions
of 6 MB each, reusing the factory partition
for OTA
c) switch to an ESP32 WROOM module with 32
MB flash (possible?)
We've got some time left, new vehicles
normally don't need that much space, I just
wanted to raise awareness.
Regards,
Michael
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.openvehicles.com
http://lists.openvehicles.com/mailman/listinfo/ovmsdev
--
Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
Fon 02330 9104094 * Handy 0176 20698926
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.openvehicles.com
http://lists.openvehicles.com/mailman/listinfo/ovmsdev