11 posts / 0 new
Last post
mariusb57
Try to make my own OVMS board ...

Hello ! Having some experience in electronics, I am trying to build my own OVMS device, for the wife's car, a wv e-up!. For now, I tried to load on an esp 32 kit the latest files available on https://ovms.dexters-web.de/firmware/. I have not connected the other accessories, I mean the CAN controllers, the MAX 7317 expansion chip and the GSM module, it is only the kit that contains the ESP 32 module with the reset part and the USB/serial converter. After the first boot, the module restarts and gives me an error with checksum failed, factory app partition is not bootable! I am attaching a log with the errors. The question is whether the error appears from the version of the files downloaded from the server or because the esp 32 kit does not have peripherals connected? Thank you .

..........

[0;32mI (3324) esp32wifi: AP started with SSID: OVMS, MAC: 30:ae:a4:c7:02:c5, IP: 192.168.4.1
I (3334) ovms-mdns: Starting MDNS

Welcome to the Open Vehicle Monitoring System (OVMS) - Async Console
Firmware: 3.3.002/factory/main
Hardware: OVMS WIFI BLE BT cores=2 rev=ESP32/1
I (3314) ovms-duktape: Duktape: Creating heap (size: 524288 bytes)
I (3354) webserver: Launching Web Server
I (3364) webserver: Binding to port 80 (http)

OVMS# I (3494) ovms-duktape: Duktape: Initialising module systemGuru Meditation Error: Core  1 panic'ed (InstrFetchProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x00000000  PS      : 0x00060030  A0      : 0x00000000  A1      : 0x3ffeaf00  
A2      : 0x3f82d7e8  A3      : 0x00000000  A4      : 0x00000000  A5      : 0x00000000  
A6      : 0x00000000  A7      : 0x00000000  A8      : 0x800ef334  A9      : 0x00000000  
A10     : 0x3f82d7e8  A11     : 0x00000000  A12     : 0x00060023  A13     : 0xffffffff  
A14     : 0x7fffffff  A15     : 0x3ffb7258  SAR     : 0x00000000  EXCCAUSE: 0x00000014  
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  

ELF file SHA256: 9bd3b0e5966c2323

Backtrace: 0x00000000:0x3ffeaf00 0x7ffffffd:0x3ffeaf30

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5328
ho 0 tail 12 room 4
load:0x40078000,len:11332
load:0x40080400,len:6204
entry 0x400806cc
E (1036) esp_image: Checksum failed. Calculated 0x48 read 0x39
E (1036) boot: Factory app partition is not bootable
E (2043) esp_image: Checksum failed. Calculated 0x48 read 0x39
E (2043) boot: OTA app partition slot 0 is not bootable
E (3049) esp_image: Checksum failed. Calculated 0x48 read 0x39
E (3049) boot: OTA app partition slot 1 is not bootable
E (3050) boot: No bootable app partitions in the partition table
ets Jun  8 2016 00:22:57
 

markwj
markwj's picture
Is your esp module esp32

Is your esp module esp32 WROVER with at 16MB flash? That is the OVMS default firmware.

Have you flashed everything (including partition table, boot loader, and App)?

Even if it boots, you may have issues as the other peripherals are not present, but used in firmware.

dexter
dexter's picture
Try to make my own OVMS board ...

According to the log it first boots normally but crashes during the Duktape init. The checksum error afterwards may be caused by the crash.

You didn't post the specs of your ESP32 kit. The OVMS firmware relies on having SPIRAM of at least 4 MB. You can see the hardware info in the early boot log, it should have a line like this:

[…] spiram: Adding pool of 4096K of external SPI memory to heap allocator

Consider building your own firmware to accomodate to the missing hardware. See "make menuconfig" → Component config → Open Vehicle… → Component options.

Regards,
Michael

mariusb57
Thank you for yours replays .

Thank you for yours replays . I post entire log here  :

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5328
ho 0 tail 12 room 4
load:0x40078000,len:11332
load:0x40080400,len:6204
entry 0x400806cc
I (1053) psram: This chip is ESP32-D0WD
I (1053) spiram: Found 64MBit SPI RAM device
I (1054) spiram: SPI RAM mode: flash 40m sram 40m
I (1057) spiram: PSRAM initialized, cache is in low/high (2-core) mode.
I (1064) cpu_start: Pro cpu up.
I (1068) cpu_start: Application information:
I (1073) cpu_start: Project name:     ovms3
I (1078) cpu_start: App version:      3.3.002
I (1083) cpu_start: Compile time:     Mar  7 2022 07:33:15
I (1089) cpu_start: ELF file SHA256:  9bd3b0e5966c2323...
I (1095) cpu_start: ESP-IDF:          v3.3.4-848-g1ff5e24b1b
I (1101) cpu_start: Starting app cpu, entry point is 0x400818d4
I (0) cpu_start: App cpu up.
I (1976) spiram: SPI SRAM memory test OK
I (1977) heap_init: Initializing. RAM available for dynamic allocation:
I (1977) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (1983) heap_init: At 3FFBF770 len 00020890 (130 KiB): DRAM
I (1990) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (1996) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (2002) heap_init: At 4009CCFC len 00003304 (12 KiB): IRAM
I (2009) cpu_start: Pro cpu start user code
I (2014) spiram: Adding pool of 4096K of external SPI memory to heap allocator
I (20) ovms_main: Set default logging level for * to INFO
I (21) ovms_main: Initialising WATCHDOG...
I (21) ovms-duktape: Initialising DUKTAPE Registry (1000)
I (28) command: Initialising COMMAND (1010)
I (33) command: Expanding DUKTAPE javascript engine
I (38) boot: Initialising BOOT (1100)
I (42) boot: Power cycle reset detected
I (47) events: Initialising EVENTS (1200)
I (52) config: Initialising CONFIG (1400)
I (57) time: Initialising TIME (1500)
I (61) script: Initialising SCRIPTS (1600)
I (66) ovms-duk-http: Installing DUKTAPE HTTP (1710)
I (71) ovms-duk-util: Installing DUKTAPE Utilities (1710)
I (77) ovms-duk-vfs: Installing DUKTAPE VFS (1710)
I (82) metrics: Initialising METRICS (1810)
I (88) metrics: Expanding DUKTAPE javascript engine
I (93) metrics: Persistent metrics serial 1 using 820 bytes, 0/100 slots used
I (113) notify: Initialising NOTIFICATIONS (1820)
I (115) notify: Registered notification type info
I (115) notify: Registered notification type error
I (119) notify: Registered notification type alert
I (125) notify: Registered notification type data
I (130) notify: Registered notification type stream
I (135) notify: Expanding DUKTAPE javascript engine
I (141) location: Initialising LOCATIONS (1900)
I (149) location: Expanding DUKTAPE javascript engine
I (152) vehicle: Initialising VEHICLE Factory (2000)
I (160) tls: Initialising TLS (3000)
I (162) pcp: Initialising POWER (4000)
I (167) max7317: Initialising MAX7317 EGPIO (4200)
I (172) sdcard: Initialising SD CARD (4400)
I (177) ota: Initialising OTA (4400)
I (182) canformat: Initialising CAN Format Factory (4500)
I (187) canformat-crtd: Registering CAN Format: CS11 (4505)
I (193) canformat-crtd: Registering CAN Format: CRTD (4505)
I (200) canformat-gvret: Registering CAN Format: GVRET (4505)
I (206) canformat-lawricel: Registering CAN Format: LAWRICEL (4505)
I (213) canformat-pcap: Registering CAN Format: PCAP (4505)
I (219) canformat-raw: Registering CAN Format: RAW (4505)
I (225) can: Initialising CAN (4510)
I (233) dbc-app: Initialising DBC (4520)
I (236) canlog: Initialising CAN logging (4550)
I (240) canlog-monitor: Initialising CAN logging to MONITOR (4560)
I (247) canlog-tcpclient: Initialising CAN logging as TCP client (4560)
I (255) canlog-tcpserver: Initialising CAN logging as TCP server (4560)
I (262) canlog-udpclient: Initialising CAN logging as UDP client (4560)
I (269) canlog-vfs: Initialising CAN logging to VFS (4560)
I (275) canplay: Initialising CAN play framework (4570)
I (280) canplay-vfs: Initialising CAN playing from VFS (4580)
I (287) cellular: Initialising CELLULAR (4600)
I (293) cellular-modem-factory: Initialising CELLULAR MODEM Factory (4601)
I (299) cellular-modem-auto: Registering auto-detect modem driver (4650)
I (307) SIM5360: Registering SIM5360 modem driver (4650)
I (313) SIM7000: Registering SIM7000 modem driver (4650)
I (319) SIM7600: Registering SIM7600 modem driver (4650)
I (325) tpms: Initialising TPMS (4700)
I (330) test: Initialising TEST (5000)
I (334) module: Initialising MODULE (5100)
I (339) vfs: Initialising VFS (5200)
I (343) ovms-server: Initialising OVMS Server (6000)
I (348) ovms-server-v2: Initialising OVMS V2 Server (6100)
I (355) ovms-server-v3: Initialising OVMS V3 Server (6200)
I (361) obd2ecu: Initialising OBD2ECU (7000)
I (366) canopen: Initialising CANopen (7000)
I (373) pluginstore: Initialising PLUGINS (7100)
I (377) esp32wifi: Initialising ESP32WIFI (8000)
I (382) ovms-mdns: Initialising MDNS (8100)
I (386) webserver: Initialising WEBSERVER (8200)
I (394) ssh: Initialising SSH (8300)
I (396) powermgmt: Initialising POWERMGMT (8500)
I (401) re: Initialising RE Tools (8800)
I (407) pushover: Initialising Pushover client (8800)
I (412) netmanager: Initialising NETMANAGER (8999)
I (421) v-zeva: Registering Vehicle: ZEVA (9000)
I (422) v-vweup: Registering Vehicle: VW e-Up (9000)
I (427) v-voltampera: Registering Vehicle: Chevrolet Volt/Ampera (9000)
I (435) v-track: Registering Vehicle: TRACK (9000)
I (440) v-thinkcity: Registering Vehicle: THINK CITY (9000)
I (446) v-teslaroadster: Registering Vehicle: Tesla Roadster (9000)
I (453) v-teslamodels: Registering Vehicle: Tesla Model S (9000)
I (460) v-teslamodel3: Registering Vehicle: Tesla Model 3 (9000)
I (467) v-smarteq: Registering Vehicle: SMART EQ (9000)
I (473) v-smarted: Registering Vehicle: SMART ED (9000)
I (478) v-zoe: Registering Vehicle: Renault Zoe/Kangoo (9000)
I (485) v-twizy: Registering Vehicle: Renault Twizy (9000)
I (491) v-obdii: Registering Vehicle: OBDII (9000)
I (496) v-none: Registering Vehicle: NONE (9000)
I (502) v-nissanleaf: Registering Vehicle: Nissan Leaf (9000)
I (508) v-mitsubishi: Registering Vehicle: Mitsubishi iMiEV, Citroen C-Zero, Peugeot iOn (9000)
I (518) v-mgev: Registering Vehicle: MG EV (UK/EU) (9000)
I (524) v-mgev: Registering Vehicle: MG EV (TH) (9000)
I (529) v-mbb250e: Registering Vehicle: MERCEDESB250E (9000)
I (536) v-maxed3: Registering Vehicle: Maxus eDeliver3 (9000)
I (542) v-kiasoulev: Registering Vehicle: Kia Soul EV (9000)
I (549) v-kianiroev: Registering Vehicle: Kia Niro / Hyundai Kona EV (9000)
I (556) v-jaguaripace: Registering Vehicle: Jaguar Ipace (9000)
I (563) v-hyundaivfl: Registering Vehicle: Hyundai Ioniq vFL (9000)
I (570) v-fiat500e: Registering Vehicle: FIAT 500e (9000)
I (576) v-demo: Registering Vehicle: DEMO (9000)
I (581) v-dbc: Registering Vehicle: DBC based vehicle (9000)
I (587) v-chevroletc6corvette: Registering Vehicle: Chevrolet C6 Corvette (9000)
I (596) v-cadillacc2cts: Registering Vehicle: Cadillac 2nd gen CTS (9000)
I (603) v-boltev: Registering Vehicle: Bolt EV (9000)
I (609) v-bmwi3: Registering Vehicle: BMW i3 (9000)
I (614) version: Initialising Versioning (9900)
I (624) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (0) ovms-duktape: Duktape: Scripting task is running
I (654) ovms_main: Executing on CPU core 0
I (654) ovms_main: Mounting CONFIG...
W (934) vfs_fat_spiflash: f_mount failed (13)
I (934) vfs_fat_spiflash: Formatting FATFS partition, allocation unit size=4096
I (1334) vfs_fat_spiflash: Mounting again
I (1344) config: Initialising OVMS CONFIG within STORE
E (1624) config: RewriteConfig: can't open '/store/ovms_config/modem': Invalid argument
E (1624) config: RewriteConfig: can't open '/store/ovms_config/modem': Invalid argument
E (1634) config: RewriteConfig: can't open '/store/ovms_config/module': Invalid argument
I (1634) ovms_main: Configure logging...
I (1644) location: UpdateParkPosition: vehicle is parking @0.000000,0.000000 gpslock=0 satcount=0 hdop=0.0 invalid=1
I (1644) ovms_main: Registering default configs...
I (1664) ovms_main: Starting HOUSEKEEPING...
I (1664) tls: Built trusted CA cache (5 entries, 8101 bytes)
I (1664) housekeeping: Initialising HOUSEKEEPING Framework...
W (1674) webserver: UpdateGlobalAuthFile: no password set => no auth for web console
I (1684) housekeeping: Executing on CPU core 1
I (1694) housekeeping: reset_reason: cpu0=1, cpu1=14
I (1694) housekeeping: Starting PERIPHERALS...
I (1704) peripherals: Initialising OVMS Peripherals...
I (1704) peripherals:   TCP/IP Adaptor
I (1714) peripherals:   ESP32 system
I (1714) peripherals:   SPI bus
I (1724) peripherals:   MAX7317 I/O Expander
I (1724) peripherals:   ESP32 CAN
I (1734) peripherals:   ESP32 WIFI
I (1734) peripherals:   ESP32 ADC
I (1744) peripherals:   MCP2515 CAN 1/2
I (1744) mcp2515: can2: SetPowerMode off
E (1894) mcp2515: can2: Could not set register (0x0c to val 0x3c)
E (1994) mcp2515: can2: Could not change mode to 0x20
I (1994) peripherals:   MCP2515 CAN 2/2
I (1994) mcp2515: can3: SetPowerMode off
E (2144) mcp2515: can3: Could not set register (0x0c to val 0x3c)
E (2244) mcp2515: can3: Could not change mode to 0x20
I (2244) peripherals:   SD CARD
I (2244) peripherals:   CELLULAR MODEM
I (2244) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 
I (2254) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 
I (2264) uart: queue free spaces: 50
I (2264) ext12v: Powering off external 12V devices
I (2274) housekeeping: Auto init max7317 (free: 175836 bytes)
I (2284) housekeeping: Auto init ext12v (free: 175836 bytes)
I (2284) housekeeping: Auto init dbc (free: 175836 bytes)
I (2294) housekeeping: Auto init wifi (free: 175836 bytes)
W (2304) esp32wifi: AutoInit: factory reset detected, starting public AP net 'OVMS' with password 'OVMSinit'
I (2314) esp32wifi: Powering up WIFI driver
I (2324) wifi:wifi driver task: 3ffd5fd8, prio:23, stack:3584, core=0
I (2324) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (2334) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (2384) wifi:wifi firmware version: 30f9e79
I (2384) wifi:config NVS flash: enabled
I (2384) wifi:config nano formating: disabled
I (2384) wifi:Init data frame dynamic rx buffer num: 16
I (2384) wifi:Init management frame dynamic rx buffer num: 16
I (2394) wifi:Init management short buffer num: 32
I (2394) wifi:Init dynamic tx buffer num: 16
I (2404) wifi:Init static rx buffer size: 2212
I (2404) wifi:Init static rx buffer num: 16
I (2414) wifi:Init dynamic rx buffer num: 16
W (3104) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration
I (3244) wifi:mode : sta (30:ae:a4:c7:02:c4) + softAP (30:ae:a4:c7:02:c5)
I (3244) wifi:Total power save buffer number: 8
I (3244) wifi:Init max length of beacon: 752/752
I (3244) wifi:Init max length of beacon: 752/752
I (3254) housekeeping: Auto init modem (free: 130180 bytes)
I (3264) housekeeping: Auto init vehicle (free: 129332 bytes)
I (3264) housekeeping: Auto init obd2ecu (free: 129332 bytes)
I (3274) housekeeping: Auto init server v2 (free: 129332 bytes)
I (3274) housekeeping: Auto init server v3 (free: 129332 bytes)
I (3284) housekeeping: Auto init javascript (free: 129332 bytes)
I (3294) housekeeping: Auto init done (free: 129332 bytes)
I (3294) housekeeping: Starting USB console...
I (3304) uart: queue free spaces: 100
I (3314) cellular: Set modem driver to 'auto'
I (3314) cellular: State: Enter CheckPowerOff state
I (3314) netmanager: WIFI access point is up
I (3324) esp32wifi: AP started with SSID: OVMS, MAC: 30:ae:a4:c7:02:c5, IP: 192.168.4.1
I (3334) ovms-mdns: Starting MDNS

Welcome to the Open Vehicle Monitoring System (OVMS) - Async Console
Firmware: 3.3.002/factory/main
Hardware: OVMS WIFI BLE BT cores=2 rev=ESP32/1
I (3314) ovms-duktape: Duktape: Creating heap (size: 524288 bytes)
I (3354) webserver: Launching Web Server
I (3364) webserver: Binding to port 80 (http)

OVMS# 
I (3494) ovms-duktape: Duktape: Initialising module systemGuru Meditation Error: Core  1 panic'ed (InstrFetchProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x00000000  PS      : 0x00060030  A0      : 0x00000000  A1      : 0x3ffeaf00  
A2      : 0x3f82d7e8  A3      : 0x00000000  A4      : 0x00000000  A5      : 0x00000000  
A6      : 0x00000000  A7      : 0x00000000  A8      : 0x800ef334  A9      : 0x00000000  
A10     : 0x3f82d7e8  A11     : 0x00000000  A12     : 0x00060023  A13     : 0xffffffff  
A14     : 0x7fffffff  A15     : 0x3ffb7258  SAR     : 0x00000000  EXCCAUSE: 0x00000014  
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  

ELF file SHA256: 9bd3b0e5966c2323

Backtrace: 0x00000000:0x3ffeaf00 0x7ffffffd:0x3ffeaf30

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5328
ho 0 tail 12 room 4
load:0x40078000,len:11332
load:0x40080400,len:6204
entry 0x400806cc
E (1036) esp_image: Checksum failed. Calculated 0x48 read 0x39
E (1036) boot: Factory app partition is not bootable
E (2043) esp_image: Checksum failed. Calculated 0x48 read 0x39
E (2043) boot: OTA app partition slot 0 is not bootable
E (3049) esp_image: Checksum failed. Calculated 0x48 read 0x39
E (3049) boot: OTA app partition slot 1 is not bootable
E (3050) boot: No bootable app partitions in the partition table
ets Jun  8 2016 00:22:57

dexter
dexter's picture
Try to make my own OVMS board ...

You're running 3.3.002, which is the latest "main" release, but quite old. The latest build is in "edge" (https://ovms.dexters-web.de/firmware/ota/v3.3/edge/), but I don't think that will make a difference.

I can't resolve the backtrace. The PC=0 points to some uninitialized object reference being used, so I assume that's related to the missing hardware.

You should build your own firmware with missing hardware options disabled.

Before, you should check for Mark's comment:

Have you flashed everything (including partition table, boot loader, and App)?

See here on how to fully flash: https://docs.openvehicles.com/en/latest/userguide/factory.html#full-reflash-via-usb

 

mariusb57
Yes ...I flashed all .

Yes ...I flashed all ..bootloader , partition table and  App. Ok...i will try to connect CAN controllers and port ADC IN from ESP32 for 12V detection, I don't have MAX 7317 and GSM modem at this moment and I don't want to use these. My ideea is to use an old android phone to create an acces point on my e-up and try to connect OVMS to this AP, and then  send data to a mqtt server . 

dlarue
How far did you get along

@mariusb57, how far did you get along with this DIY OVMS concept after you added the 12V ADC sensing and CAN controllers?

Asking because I have a Tesla Model Y which already has Wifi and GPS but I'm looking for some extra local monitoring(when on the home network) and to add some command buttons for things like turning on/off wipers, switching between Chill/Standard acceleration modes. So really should just need an ESP32 WRover(got it), 2 or 3 CAN controllers(MCP2515)(got em) and an OBDII adapter to get to the OBD diag port on the back of the center console(need this).

I've flashed Tasmota on many a ESP, made weather stations and custom ESP32 devices besides installing BMS's on custom Leaf battery packs for NEVs and in a former life did Linux development and it's been my main OS for almost 3 decades. I can start from scratch but always like to find out where others have been before reinventing the wheel. So I would appreciate hearing where you've been with this.

fowi4hjte
I also tried this out. I have

I also tried this out. I have a "ESP32-WROVER-E" with model number XXN4R4 here. It have 8MB PSRAM and 4 MB SPI flash.

I tried first out: https://ovms.dexters-web.de/firmware/ota/v3.3/3.3.004/

 

Then i tried randomly the version https://ovms.dexters-web.de/firmware/ota/v3.1/3.3.002/

 

Both had the same result in a boot loop with reporting.

esp_image: Checksum failed. Calculated 0x48 ...

 

Flashing was done by running:

esptool.py \
  --chip esp32 --baud 921600 \
  --before "default_reset" --after "hard_reset" \
  write_flash --compress --flash_mode "dio" --flash_freq "40m" --flash_size detect \
  0x1000 bootloader.bin 0x10000 ovms3.bin 0x8000 partitions.bin

 

I had find this command in the documnatation here: https://docs.openvehicles.com/en/latest/userguide/factory.html#full-reflash-via-usb

 

I just removed the --port, because esptool have a working automatic port detection and when not having more then one ESP32 connected to the computer, i dont have to specify the port.

 

@dexter wrote, that the ESP32 should have at least 4MB of RAM. Mine have 8MB RAM. The firmware size is in the latest 3.1 release 3.2MB and on the latest 3.3 release 3.5MB . With 4MB SPI i should have enough to fit the image on the device.

markwj
markwj's picture
The issue is most likely

The issue is most likely flash size. OVMS uses 16MB.

fowi4hjte
My expectations to work on

My expectations to work on 4MB SPI size was based on the size of the image. I learned now, that the partitions configurations of a ESP32 tells what size the SPI should have.

The partitions table from OVMSv3 is this one: https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/blob/master/vehicle/OVMS.V3/partitions.csv

The table size is simply configured to use up the 16MB of SPI flash. It does not matter if the firmware itself is much smaller. With smaller SPI, this just break the partition table and do not boot any more.

 

The partition table look at the moment like this:

# OVMS 16MB flash ESP32 Partition Table
# Name,   Type, SubType, Offset,   Size
nvs,      data, nvs,     0x9000,  0x4000
otadata,  data, ota,     0xd000,  0x2000
phy_init, data, phy,     0xf000,  0x1000
factory,  app,  factory, 0x10000,  4M
ota_0,    app,  ota_0,   ,         4M
ota_1,    app,  ota_1,   ,         4M
store,    data, fat,     ,         1M

 

The storage usage can be simplified by counting the size of the listed Table Size.

1M+4M+4M+4M already make up to 13M(B). The additional hex values like 0x4000 does not matter much any more because the typical SPI values are 4MB, 8MB and 16MB. 8MB would also be too small. Without a deeper modification to the partition table and the code of the project, it only work on 16MB SPI versions.

 

I removed (unsoldered) now the signal protection CAN (the metal cap) of my ESP32 and soldered out the 4MB SPI chip. I am searching in scrap yard printers mainboards for a 16MB SPI chip.

General tip to all: There is so much scrap electronics in this world, you do not have to buy everything new. Just learn how to do SMD soldering and use up the electronic waste we as humanity create in combination with opensource software to finish your projects.

markwj
markwj's picture
You can install it in 4MB

You can install it in 4MB flash. But need to change the partition table and build without the OTA stuff. Messy. For the price difference between 4MB and 16MB ESP32 WROVER modules, it is simply not worth the hassle.

Log in or register to post comments
randomness