<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><blockquote type="cite" class=""><blockquote type="cite" class="">4. Change to use Analog Lamb WROOM-32 module and their 16MB flash + 4MB ram.<br class=""></blockquote><br class="">Would it be feasible to add our own SPIRAM chip to use with the WROOM<br class="">module?</blockquote><div class=""><br class=""></div>Unfortunately, the only SPIRAM chips supported are the ESP-PSRAM32 and IS25WP032; those are1.8V devices, but the Espressif standard WROOM-32 module uses 3.3V flash. Can’t combine the two as they are on the same SPI bus.<div class=""><br class=""></div><div class="">There is an Espressif WROVER module (the one with 4MB flash and 4MB SPIRAM) that is a 1.8V device. It has a slightly bigger footprint than the WROOM-32, but should still fit. We could change to that, and switch to use an external 1.8V 16MB flash - minimal changes to our design.</div><div class=""><br class=""></div><div class="">I suspect it will come down to a choice between WROVER + external 1.8V flash (similar to our current design), and Analog Lamb WROOM-32 (16MB flash + 4MB SPIRAM) with no external flash. The Analog Lamb choice has a long lead time and is very pricey, but is a simpler drop-in replacement. I’m a little wary of Analog Lamb - unknown entity, the sample modules we bought came with old Rev0 ESP32 chips (not good), long lead times, unknown certification status, etc.<br class=""><div><br class=""></div><div>That said, here is OVMS v3 running on an Analog Lamb WROOM-32 with 8MB flash and 4MB SPIRAM:</div><div><br class=""></div></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (30) boot: ESP-IDF v3.1-dev-168-ga1b59679 2nd stage bootloader</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (31) boot: compile time 08:29:22</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (44) boot: Enabling RNG early entropy source...</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (44) boot: SPI Speed      : 40MHz</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (44) boot: SPI Mode       : DIO</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (47) boot: SPI Flash Size : 8MB</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">…</span></font></div><div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (489) spiram: SPI RAM mode: flash 40m sram 40m</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (493) spiram: PSRAM initialized, cache is in low/high (2-core) mode.</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">…</span></font></div><div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (1350) spiram: SPI SRAM memory test OK</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (1350) heap_init: Initializing. RAM available for dynamic allocation:</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (1350) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (1357) heap_init: At 3FFCC7F8 len 00013808 (78 KiB): DRAM</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (1363) heap_init: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (1369) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (1376) heap_init: At 4009B618 len 000049E8 (18 KiB): IRAM</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (1382) cpu_start: Pro cpu start user code</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (1387) spiram: Adding pool of 4096K of external SPI memory to heap allocator</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">I (1395) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">…</span></font></div><div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">Welcome to the Open Vehicle Monitoring System (OVMS) - Async Console</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">OVMS > metric list m.</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">m.freeram                                4276328</span></font></div><div><font face="Andale Mono" class=""><span style="font-size: 18px;" class="">m.hardware                               OVMS WIFI BLE BT cores=2 rev=ESP32/0</span></font></div></div></div></div></div></div></blockquote><div class=""><div><br class=""></div><div>There is an option to simply add the SPIRAM to the malloc pool, and to move as much of Wifi and LWIP to SPIRAM as possible. It would take some work to get it all going, but that extra 4MB gives us a huge amount of breathing room.</div><div><br class=""></div><div>Regards, Mark.</div><div><br class=""><blockquote type="cite" class=""><div class="">On 9 Jan 2018, at 12:57 AM, Stephen Casner <<a href="mailto:casner@acm.org" class="">casner@acm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">On Mon, 8 Jan 2018, Mark Webb-Johnson wrote:<br class=""><blockquote type="cite" class=""><br class="">Now finalising hardware with the china manufacturer. I think at this point, it is<br class="">worth:<br class=""><br class=""> 1. Use 1 line SD CARD (which frees up GPIOs SD_DATA1/SD_DATA2/SD_DATA3, but also<br class="">    avoids the conflict between GPIO12/SD_DATA2 and VDD_SDIO bootstrap pin).<br class=""></blockquote><br class="">I just go with the flow on this one.<br class=""><br class=""><blockquote type="cite" class=""> 2. Add some capacitors for power line smoothing, as per Espressif’s example in their<br class="">    test board.<br class=""></blockquote><br class="">Always a good idea.<br class=""><br class=""><blockquote type="cite" class=""> 3. Double-check power on SIMCOM module, to ensure it is as expected (following issues<br class="">    reported with low-amperage USB ports).<br class=""></blockquote><br class="">As I've been testing with release/v3.0 of esp-idf, I had to disable<br class="">the brownout trap entirely.  Even the lowest configured voltage would<br class="">trap repeatedly.  This is with a powered hub (SIIG brand, I think<br class="">decent quality).  Sometimes it seemed I could get by this by flashing<br class="">again, but when it was happening it would repeat with every reset.<br class=""><br class=""><blockquote type="cite" class=""> 4. Change to use Analog Lamb WROOM-32 module and their 16MB flash + 4MB ram.<br class=""></blockquote><br class="">Would it be feasible to add our own SPIRAM chip to use with the WROOM<br class="">module?<br class=""><br class="">                                                        -- Steve_______________________________________________<br class="">OvmsDev mailing list<br class=""><a href="mailto:OvmsDev@lists.teslaclub.hk" class="">OvmsDev@lists.teslaclub.hk</a><br class="">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev<br class=""></div></div></blockquote></div><br class=""></div></body></html>