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[0m
[0;32mI (3334) ovms-mdns: Starting MDNS[0m
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
[0;32mI (3314) ovms-duktape: Duktape: Creating heap (size: 524288 bytes)[0m
[0;32mI (3354) webserver: Launching Web Server[0m
[0;32mI (3364) webserver: Binding to port 80 (http)[0m
OVMS# [K[0;32mI (3494) ovms-duktape: Duktape: Initialising module system[0mGuru 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
[0;31mE (1036) esp_image: Checksum failed. Calculated 0x48 read 0x39[0m
[0;31mE (1036) boot: Factory app partition is not bootable[0m
[0;31mE (2043) esp_image: Checksum failed. Calculated 0x48 read 0x39[0m
[0;31mE (2043) boot: OTA app partition slot 0 is not bootable[0m
[0;31mE (3049) esp_image: Checksum failed. Calculated 0x48 read 0x39[0m
[0;31mE (3049) boot: OTA app partition slot 1 is not bootable[0m
[0;31mE (3050) boot: No bootable app partitions in the partition table[0m
ets Jun 8 2016 00:22:57
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.
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
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
[0;32mI (1053) psram: This chip is ESP32-D0WD[0m
[0;32mI (1053) spiram: Found 64MBit SPI RAM device[0m
[0;32mI (1054) spiram: SPI RAM mode: flash 40m sram 40m[0m
[0;32mI (1057) spiram: PSRAM initialized, cache is in low/high (2-core) mode.[0m
[0;32mI (1064) cpu_start: Pro cpu up.[0m
[0;32mI (1068) cpu_start: Application information:[0m
[0;32mI (1073) cpu_start: Project name: ovms3[0m
[0;32mI (1078) cpu_start: App version: 3.3.002[0m
[0;32mI (1083) cpu_start: Compile time: Mar 7 2022 07:33:15[0m
[0;32mI (1089) cpu_start: ELF file SHA256: 9bd3b0e5966c2323...[0m
[0;32mI (1095) cpu_start: ESP-IDF: v3.3.4-848-g1ff5e24b1b[0m
[0;32mI (1101) cpu_start: Starting app cpu, entry point is 0x400818d4[0m
[0;32mI (0) cpu_start: App cpu up.[0m
[0;32mI (1976) spiram: SPI SRAM memory test OK[0m
[0;32mI (1977) heap_init: Initializing. RAM available for dynamic allocation:[0m
[0;32mI (1977) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM[0m
[0;32mI (1983) heap_init: At 3FFBF770 len 00020890 (130 KiB): DRAM[0m
[0;32mI (1990) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM[0m
[0;32mI (1996) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM[0m
[0;32mI (2002) heap_init: At 4009CCFC len 00003304 (12 KiB): IRAM[0m
[0;32mI (2009) cpu_start: Pro cpu start user code[0m
[0;32mI (2014) spiram: Adding pool of 4096K of external SPI memory to heap allocator[0m
[0;32mI (20) ovms_main: Set default logging level for * to INFO[0m
[0;32mI (21) ovms_main: Initialising WATCHDOG...[0m
[0;32mI (21) ovms-duktape: Initialising DUKTAPE Registry (1000)[0m
[0;32mI (28) command: Initialising COMMAND (1010)[0m
[0;32mI (33) command: Expanding DUKTAPE javascript engine[0m
[0;32mI (38) boot: Initialising BOOT (1100)[0m
[0;32mI (42) boot: Power cycle reset detected[0m
[0;32mI (47) events: Initialising EVENTS (1200)[0m
[0;32mI (52) config: Initialising CONFIG (1400)[0m
[0;32mI (57) time: Initialising TIME (1500)[0m
[0;32mI (61) script: Initialising SCRIPTS (1600)[0m
[0;32mI (66) ovms-duk-http: Installing DUKTAPE HTTP (1710)[0m
[0;32mI (71) ovms-duk-util: Installing DUKTAPE Utilities (1710)[0m
[0;32mI (77) ovms-duk-vfs: Installing DUKTAPE VFS (1710)[0m
[0;32mI (82) metrics: Initialising METRICS (1810)[0m
[0;32mI (88) metrics: Expanding DUKTAPE javascript engine[0m
[0;32mI (93) metrics: Persistent metrics serial 1 using 820 bytes, 0/100 slots used[0m
[0;32mI (113) notify: Initialising NOTIFICATIONS (1820)[0m
[0;32mI (115) notify: Registered notification type info[0m
[0;32mI (115) notify: Registered notification type error[0m
[0;32mI (119) notify: Registered notification type alert[0m
[0;32mI (125) notify: Registered notification type data[0m
[0;32mI (130) notify: Registered notification type stream[0m
[0;32mI (135) notify: Expanding DUKTAPE javascript engine[0m
[0;32mI (141) location: Initialising LOCATIONS (1900)[0m
[0;32mI (149) location: Expanding DUKTAPE javascript engine[0m
[0;32mI (152) vehicle: Initialising VEHICLE Factory (2000)[0m
[0;32mI (160) tls: Initialising TLS (3000)[0m
[0;32mI (162) pcp: Initialising POWER (4000)[0m
[0;32mI (167) max7317: Initialising MAX7317 EGPIO (4200)[0m
[0;32mI (172) sdcard: Initialising SD CARD (4400)[0m
[0;32mI (177) ota: Initialising OTA (4400)[0m
[0;32mI (182) canformat: Initialising CAN Format Factory (4500)[0m
[0;32mI (187) canformat-crtd: Registering CAN Format: CS11 (4505)[0m
[0;32mI (193) canformat-crtd: Registering CAN Format: CRTD (4505)[0m
[0;32mI (200) canformat-gvret: Registering CAN Format: GVRET (4505)[0m
[0;32mI (206) canformat-lawricel: Registering CAN Format: LAWRICEL (4505)[0m
[0;32mI (213) canformat-pcap: Registering CAN Format: PCAP (4505)[0m
[0;32mI (219) canformat-raw: Registering CAN Format: RAW (4505)[0m
[0;32mI (225) can: Initialising CAN (4510)[0m
[0;32mI (233) dbc-app: Initialising DBC (4520)[0m
[0;32mI (236) canlog: Initialising CAN logging (4550)[0m
[0;32mI (240) canlog-monitor: Initialising CAN logging to MONITOR (4560)[0m
[0;32mI (247) canlog-tcpclient: Initialising CAN logging as TCP client (4560)[0m
[0;32mI (255) canlog-tcpserver: Initialising CAN logging as TCP server (4560)[0m
[0;32mI (262) canlog-udpclient: Initialising CAN logging as UDP client (4560)[0m
[0;32mI (269) canlog-vfs: Initialising CAN logging to VFS (4560)[0m
[0;32mI (275) canplay: Initialising CAN play framework (4570)[0m
[0;32mI (280) canplay-vfs: Initialising CAN playing from VFS (4580)[0m
[0;32mI (287) cellular: Initialising CELLULAR (4600)[0m
[0;32mI (293) cellular-modem-factory: Initialising CELLULAR MODEM Factory (4601)[0m
[0;32mI (299) cellular-modem-auto: Registering auto-detect modem driver (4650)[0m
[0;32mI (307) SIM5360: Registering SIM5360 modem driver (4650)[0m
[0;32mI (313) SIM7000: Registering SIM7000 modem driver (4650)[0m
[0;32mI (319) SIM7600: Registering SIM7600 modem driver (4650)[0m
[0;32mI (325) tpms: Initialising TPMS (4700)[0m
[0;32mI (330) test: Initialising TEST (5000)[0m
[0;32mI (334) module: Initialising MODULE (5100)[0m
[0;32mI (339) vfs: Initialising VFS (5200)[0m
[0;32mI (343) ovms-server: Initialising OVMS Server (6000)[0m
[0;32mI (348) ovms-server-v2: Initialising OVMS V2 Server (6100)[0m
[0;32mI (355) ovms-server-v3: Initialising OVMS V3 Server (6200)[0m
[0;32mI (361) obd2ecu: Initialising OBD2ECU (7000)[0m
[0;32mI (366) canopen: Initialising CANopen (7000)[0m
[0;32mI (373) pluginstore: Initialising PLUGINS (7100)[0m
[0;32mI (377) esp32wifi: Initialising ESP32WIFI (8000)[0m
[0;32mI (382) ovms-mdns: Initialising MDNS (8100)[0m
[0;32mI (386) webserver: Initialising WEBSERVER (8200)[0m
[0;32mI (394) ssh: Initialising SSH (8300)[0m
[0;32mI (396) powermgmt: Initialising POWERMGMT (8500)[0m
[0;32mI (401) re: Initialising RE Tools (8800)[0m
[0;32mI (407) pushover: Initialising Pushover client (8800)[0m
[0;32mI (412) netmanager: Initialising NETMANAGER (8999)[0m
[0;32mI (421) v-zeva: Registering Vehicle: ZEVA (9000)[0m
[0;32mI (422) v-vweup: Registering Vehicle: VW e-Up (9000)[0m
[0;32mI (427) v-voltampera: Registering Vehicle: Chevrolet Volt/Ampera (9000)[0m
[0;32mI (435) v-track: Registering Vehicle: TRACK (9000)[0m
[0;32mI (440) v-thinkcity: Registering Vehicle: THINK CITY (9000)[0m
[0;32mI (446) v-teslaroadster: Registering Vehicle: Tesla Roadster (9000)[0m
[0;32mI (453) v-teslamodels: Registering Vehicle: Tesla Model S (9000)[0m
[0;32mI (460) v-teslamodel3: Registering Vehicle: Tesla Model 3 (9000)[0m
[0;32mI (467) v-smarteq: Registering Vehicle: SMART EQ (9000)[0m
[0;32mI (473) v-smarted: Registering Vehicle: SMART ED (9000)[0m
[0;32mI (478) v-zoe: Registering Vehicle: Renault Zoe/Kangoo (9000)[0m
[0;32mI (485) v-twizy: Registering Vehicle: Renault Twizy (9000)[0m
[0;32mI (491) v-obdii: Registering Vehicle: OBDII (9000)[0m
[0;32mI (496) v-none: Registering Vehicle: NONE (9000)[0m
[0;32mI (502) v-nissanleaf: Registering Vehicle: Nissan Leaf (9000)[0m
[0;32mI (508) v-mitsubishi: Registering Vehicle: Mitsubishi iMiEV, Citroen C-Zero, Peugeot iOn (9000)[0m
[0;32mI (518) v-mgev: Registering Vehicle: MG EV (UK/EU) (9000)[0m
[0;32mI (524) v-mgev: Registering Vehicle: MG EV (TH) (9000)[0m
[0;32mI (529) v-mbb250e: Registering Vehicle: MERCEDESB250E (9000)[0m
[0;32mI (536) v-maxed3: Registering Vehicle: Maxus eDeliver3 (9000)[0m
[0;32mI (542) v-kiasoulev: Registering Vehicle: Kia Soul EV (9000)[0m
[0;32mI (549) v-kianiroev: Registering Vehicle: Kia Niro / Hyundai Kona EV (9000)[0m
[0;32mI (556) v-jaguaripace: Registering Vehicle: Jaguar Ipace (9000)[0m
[0;32mI (563) v-hyundaivfl: Registering Vehicle: Hyundai Ioniq vFL (9000)[0m
[0;32mI (570) v-fiat500e: Registering Vehicle: FIAT 500e (9000)[0m
[0;32mI (576) v-demo: Registering Vehicle: DEMO (9000)[0m
[0;32mI (581) v-dbc: Registering Vehicle: DBC based vehicle (9000)[0m
[0;32mI (587) v-chevroletc6corvette: Registering Vehicle: Chevrolet C6 Corvette (9000)[0m
[0;32mI (596) v-cadillacc2cts: Registering Vehicle: Cadillac 2nd gen CTS (9000)[0m
[0;32mI (603) v-boltev: Registering Vehicle: Bolt EV (9000)[0m
[0;32mI (609) v-bmwi3: Registering Vehicle: BMW i3 (9000)[0m
[0;32mI (614) version: Initialising Versioning (9900)[0m
[0;32mI (624) cpu_start: Starting scheduler on PRO CPU.[0m
[0;32mI (0) cpu_start: Starting scheduler on APP CPU.[0m
[0;32mI (0) ovms-duktape: Duktape: Scripting task is running[0m
[0;32mI (654) ovms_main: Executing on CPU core 0[0m
[0;32mI (654) ovms_main: Mounting CONFIG...[0m
[0;33mW (934) vfs_fat_spiflash: f_mount failed (13)[0m
[0;32mI (934) vfs_fat_spiflash: Formatting FATFS partition, allocation unit size=4096[0m
[0;32mI (1334) vfs_fat_spiflash: Mounting again[0m
[0;32mI (1344) config: Initialising OVMS CONFIG within STORE[0m
[0;31mE (1624) config: RewriteConfig: can't open '/store/ovms_config/modem': Invalid argument[0m
[0;31mE (1624) config: RewriteConfig: can't open '/store/ovms_config/modem': Invalid argument[0m
[0;31mE (1634) config: RewriteConfig: can't open '/store/ovms_config/module': Invalid argument[0m
[0;32mI (1634) ovms_main: Configure logging...[0m
[0;32mI (1644) location: UpdateParkPosition: vehicle is parking @0.000000,0.000000 gpslock=0 satcount=0 hdop=0.0 invalid=1[0m
[0;32mI (1644) ovms_main: Registering default configs...[0m
[0;32mI (1664) ovms_main: Starting HOUSEKEEPING...[0m
[0;32mI (1664) tls: Built trusted CA cache (5 entries, 8101 bytes)[0m
[0;32mI (1664) housekeeping: Initialising HOUSEKEEPING Framework...[0m
[0;33mW (1674) webserver: UpdateGlobalAuthFile: no password set => no auth for web console[0m
[0;32mI (1684) housekeeping: Executing on CPU core 1[0m
[0;32mI (1694) housekeeping: reset_reason: cpu0=1, cpu1=14[0m
[0;32mI (1694) housekeeping: Starting PERIPHERALS...[0m
[0;32mI (1704) peripherals: Initialising OVMS Peripherals...[0m
[0;32mI (1704) peripherals: TCP/IP Adaptor[0m
[0;32mI (1714) peripherals: ESP32 system[0m
[0;32mI (1714) peripherals: SPI bus[0m
[0;32mI (1724) peripherals: MAX7317 I/O Expander[0m
[0;32mI (1724) peripherals: ESP32 CAN[0m
[0;32mI (1734) peripherals: ESP32 WIFI[0m
[0;32mI (1734) peripherals: ESP32 ADC[0m
[0;32mI (1744) peripherals: MCP2515 CAN 1/2[0m
[0;32mI (1744) mcp2515: can2: SetPowerMode off[0m
[0;31mE (1894) mcp2515: can2: Could not set register (0x0c to val 0x3c)[0m
[0;31mE (1994) mcp2515: can2: Could not change mode to 0x20[0m
[0;32mI (1994) peripherals: MCP2515 CAN 2/2[0m
[0;32mI (1994) mcp2515: can3: SetPowerMode off[0m
[0;31mE (2144) mcp2515: can3: Could not set register (0x0c to val 0x3c)[0m
[0;31mE (2244) mcp2515: can3: Could not change mode to 0x20[0m
[0;32mI (2244) peripherals: SD CARD[0m
[0;32mI (2244) peripherals: CELLULAR MODEM[0m
[0;32mI (2244) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 [0m
[0;32mI (2254) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 [0m
[0;32mI (2264) uart: queue free spaces: 50[0m
[0;32mI (2264) ext12v: Powering off external 12V devices[0m
[0;32mI (2274) housekeeping: Auto init max7317 (free: 175836 bytes)[0m
[0;32mI (2284) housekeeping: Auto init ext12v (free: 175836 bytes)[0m
[0;32mI (2284) housekeeping: Auto init dbc (free: 175836 bytes)[0m
[0;32mI (2294) housekeeping: Auto init wifi (free: 175836 bytes)[0m
[0;33mW (2304) esp32wifi: AutoInit: factory reset detected, starting public AP net 'OVMS' with password 'OVMSinit'[0m
[0;32mI (2314) esp32wifi: Powering up WIFI driver[0m
I (2324) wifi:wifi driver task: 3ffd5fd8, prio:23, stack:3584, core=0
[0;32mI (2324) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE[0m
[0;32mI (2334) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE[0m
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
[0;33mW (3104) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration[0m
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
[0;32mI (3254) housekeeping: Auto init modem (free: 130180 bytes)[0m
[0;32mI (3264) housekeeping: Auto init vehicle (free: 129332 bytes)[0m
[0;32mI (3264) housekeeping: Auto init obd2ecu (free: 129332 bytes)[0m
[0;32mI (3274) housekeeping: Auto init server v2 (free: 129332 bytes)[0m
[0;32mI (3274) housekeeping: Auto init server v3 (free: 129332 bytes)[0m
[0;32mI (3284) housekeeping: Auto init javascript (free: 129332 bytes)[0m
[0;32mI (3294) housekeeping: Auto init done (free: 129332 bytes)[0m
[0;32mI (3294) housekeeping: Starting USB console...[0m
[0;32mI (3304) uart: queue free spaces: 100[0m
[0;32mI (3314) cellular: Set modem driver to 'auto'[0m
[0;32mI (3314) cellular: State: Enter CheckPowerOff state[0m
[0;32mI (3314) netmanager: WIFI access point is up[0m
[0;32mI (3324) esp32wifi: AP started with SSID: OVMS, MAC: 30:ae:a4:c7:02:c5, IP: 192.168.4.1[0m
[0;32mI (3334) ovms-mdns: Starting MDNS[0m
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
[0;32mI (3314) ovms-duktape: Duktape: Creating heap (size: 524288 bytes)[0m
[0;32mI (3354) webserver: Launching Web Server[0m
[0;32mI (3364) webserver: Binding to port 80 (http)[0m
OVMS#
[K[0;32mI (3494) ovms-duktape: Duktape: Initialising module system[0mGuru 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
[0;31mE (1036) esp_image: Checksum failed. Calculated 0x48 read 0x39[0m
[0;31mE (1036) boot: Factory app partition is not bootable[0m
[0;31mE (2043) esp_image: Checksum failed. Calculated 0x48 read 0x39[0m
[0;31mE (2043) boot: OTA app partition slot 0 is not bootable[0m
[0;31mE (3049) esp_image: Checksum failed. Calculated 0x48 read 0x39[0m
[0;31mE (3049) boot: OTA app partition slot 1 is not bootable[0m
[0;31mE (3050) boot: No bootable app partitions in the partition table[0m
ets Jun 8 2016 00:22:57
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:
See here on how to fully flash: https://docs.openvehicles.com/en/latest/userguide/factory.html#full-reflash-via-usb
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 .
@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.
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:
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.
The issue is most likely flash size. OVMS uses 16MB.
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.
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.
So I take it that would be an ESP32-S3 N16R8 model? Getting all kinds of hits esp32-s3 Xtensa 16mb Flash 4mb SPI includings ones which say '1 core' but OVMS docs state dual core.
They do look to be under $20. Wanting to get the right one to experiment with( own a 2017 Leaf which will soon need a new battery and want to be able to preserve the new one better ).
No, ESP32-S3 is unsupported in ISP-IDF 3.3 currently used by OVMS. It would be impossible to get something working on it. The ESP32-S3 is supported since ESP-IDF version 4.3: https://github.com/espressif/esp-idf/commit/067b1b91c205804c53307e03777d0000e3e19fce
Take the N16R4 or N16R8 from the old ESP32 without any 'S' https://en.wikipedia.org/wiki/ESP32#ESP32
Thanks @fowi4hjte, something sent me looking for esp32-s3 wrover boards but checking the schematic I only see esp32 wrover so I will check my stock to see if I have any N16R4 or N16R8 boards or will go order some. Thanks again for pointing me in the right direction.
Greetings all - I am refreshing this thread, as looks like most recent activity was a few months ago. I had the same idea as @mariusb57 and @dlarue had to create my own barebones, simplified version of OVMS using a WROVER module. Only one readily available, I found here: https://store.freenove.com/products/fnk0060
I compared the pinouts and available peripherals. So, I have disconnected the camera, and added the 3 CAN channels (1 direct, 2 SPI), and +12V power converter to sit on the CANbus and run from vehicle battery via the OBD-II connector.
Has anyone gotten this to successfully build either with or without the additional peripherals and associated OVMS code?
I think I have enough memory per the spec sheets provided, but have not tried to build or load it yet.
Any feedback you have is appreciated, and I will try it on my own and see what happens - but am concerned as I have not seen any confirmation of success here yet.
--DCA
So long as it is based on the ESP32 WROVER N16R4 or N16R8, it should work. That is the only requirement that the project code has. I occasionally run the base cut-down code on ESP32 WROVER devkit boards without issue.
Thanks @markwj The marking on the FREENOVE WROVER module indicates MGN4R8, so I guess I am running the smaller flash size of 4MB vs 16MB (w/8MB SRAM). The documentation the supplier provided was a general datasheet for the WROVER MCU, and only when I looked at the part itself, I realized it has the smaller ROM size. Too bad, since that version is only $1USD more in distribution, but not so easy to swap out in the FN module that brings in USB and T/H mounting without an SMT rework setup. Pimoroni sells a breakout board for WROVER at a cost of $1.2USD, but then I would need to add the USB back in as well... going to have to rethink this once again...
Most N16R8 dev boards I see are WROOM, but I assume they are not directly compatible, and I suppose OVMS does not have a port that runs on WROOM. --DCA
I did find this that has the official Espressif Eval boards that contains a few WROVER variants with 16MB ROM / 8MB PSRAM still in production.
Is it one of these you have @markwj ? Thx
https://www.espressif.com/en/products/devkits
The module is ESP32 WROVER 16MB Flash (either 4MB or 8MB SPI RAM is fine). Like here:
You should be able to find a DEVKIT-C with one of those one it. Not sure if Espressif sell them online any more, but should be available from others manufactures like TTGO, Lily, etc. I just use the raw WROVER modules.
I've been lurking for a while, but had a similar need...
My motivation was wanting to support a wider selection of hardware and other frameworks, so that the core of OVMS, which IMO is the metrics notification, could be used in other applications (my own interest is EV conversion where there may be a lot more complex hardware interfacing involved). I felt that this incredible project had to roll a lot of components itself when it was created what, 10 years ago? which are now well supported in core esp-idf or arduino-esp32. I was also concerned about the security model and attack surface, so set about refactoring OVMS for ESP32S3.
So I rebased OVMS on esp-idf 5.3, and stripped out a ton of non-core stuff.
Mongoose for example I replaced with esp-idf, and console with Shellminator under arduino-esp32 v3.1.0.
Also Modem support is by esp-protocols (so USB connection is supported), which is another load of complexity for someone else to worry about.
So that it can co-exist better with other frameworks, module init is all done with Meyers Singletons, ie construct on first use.
For now I haven't enabled scripting as I dont have PSRAM hardware, but may do that.
Also, only supporting OVMS-V3 using esp-idf MQTT
All in all, this has cut down the complexity of OVMS considerably which makes it much more manageable, esp. for us mortals who struggle to understand the whole code base.
For now the UI is using esp32m framework for setting up MQTT etc, but I'm thinking that ESPRainmaker would be a better way to go, as the security model looks much better, than having random web servers running on the system.
Any thoughts?