20 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.

dlarue
any links to valid ESP32 module?

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 ).

fowi4hjte
No, ESP32-S3 is unsupported

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

dlarue
Thanks @fowi4hjte, something

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. 

dca
dca's picture
Hello, and looking for any updates....

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

markwj
markwj's picture
So long as it is based on the

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.

dca
dca's picture
Thanks @markwj The marking on

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

dca
dca's picture
I did find this that has the

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

markwj
markwj's picture
The module is ESP32 WROVER

The module is ESP32 WROVER 16MB Flash (either 4MB or 8MB SPI RAM is fine). Like here:

https://www.aliexpress.com/item/1005007419897338.html

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.

fowi4hjte
You can also upgrade the

You can also upgrade the memory in N4R8 boards. Its not that hard. I took a inkjet printer out of the electrical trash bin and soldered out its 16MB SPI chip out and put it in the ESP32 board. This upgrade cost 0$ and you have ton of other parts from the printer that you can reuse in other projects like stepper motors, capacitors, power supply, wifi chips and so on.

Log in or register to post comments