HI All, I have a question about the flash memory of the ESP32. I read that the ESP32 uses 16Mb of external flash memory and in the schematics on page 27 there is a flash memory chip. However, in the latest v3.2 schematics there is no external flash chip. Am I correct to assume that the 16Mb of memory is on the module now? How does this impact the e-fuse settings? Another question that came up while setting up a development environment: The version of esp-idf thats used by the OVSM project uses the Mingw32 environment. Based on my limited exposure to using this environment, its very slow compared to compiling esp-idf code under e.g. platformio under VSCode. How are the core developers dealing with this slowness? Is it at all possible, if i could force platformio to use the correct the idf-esp libraries, to compile the OVMS code in a more recent environment that uses cmake and ninja? Thanks, Eddy
Am I correct to assume that the 16Mb of memory is on the module now?
The ESP32 chip uses an external flash chip. The WROOM/WROVER modules include a flash chip in the modules. In the very early days of development prototypes for OVMS v3, we used an external 16MB flash chip (as only 4MB WROOM modules were available at the time). For production, we switched to 16MB WROVER modules, so don’t require any external flash chip any more.
How are the core developers dealing with this slowness?
I don’t find it slow at all (but I use MAC and LINUX for development). Most of the time, it is an incremental build (only building changes code, and then a linking step) - it normally takes longer to flash the chip than build the code. I timed a full ‘make clean; make -j 4’ to see what it is for me: $ time make -j 4 ... real 2m53.557s user 5m55.978s sys 1m40.391s Just under 3 minutes real time. Perhaps you can check in windows to see how much worse it is?
Is it at all possible, if i could force platformio to use the correct the idf-esp libraries, to compile the OVMS code in a more recent environment that uses cmake and ninja?
I haven’t tried it myself. We do have some make scripts in various components that may rely on the existing build system. Things like the versioning. OVMS was written when ESP-IDF was quite new, and unpolished. At some point, we will most likely migrate to a newer build system, as ESP-IDF matures. Regards, Mark.
On 8 Apr 2020, at 8:37 AM, Eddy Vromen <eddy_vromen@hotmail.com> wrote:
HI All,
I have a question about the flash memory of the ESP32. I read that the ESP32 uses 16Mb of external flash memory and in the schematics on page 27 there is a flash memory chip. However, in the latest v3.2 schematics there is no external flash chip. Am I correct to assume that the 16Mb of memory is on the module now? How does this impact the e-fuse settings?
Another question that came up while setting up a development environment: The version of esp-idf thats used by the OVSM project uses the Mingw32 environment. Based on my limited exposure to using this environment, its very slow compared to compiling esp-idf code under e.g. platformio under VSCode. How are the core developers dealing with this slowness? Is it at all possible, if i could force platformio to use the correct the idf-esp libraries, to compile the OVMS code in a more recent environment that uses cmake and ninja?
Thanks, Eddy
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com <mailto:OvmsDev@lists.openvehicles.com> http://lists.openvehicles.com/mailman/listinfo/ovmsdev <http://lists.openvehicles.com/mailman/listinfo/ovmsdev>
Eddy, note that Fabrizio works on porting the OVMS to ESP-IDF 4: https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/issues/263#... Maybe you can join forces? Regards, Michael Am 08.04.20 um 04:05 schrieb Mark Webb-Johnson:
Am I correct to assume that the 16Mb of memory is on the module now?
The ESP32 chip uses an external flash chip. The WROOM/WROVER modules include a flash chip in the modules.
In the very early days of development prototypes for OVMS v3, we used an external 16MB flash chip (as only 4MB WROOM modules were available at the time).
For production, we switched to 16MB WROVER modules, so don’t require any external flash chip any more.
How are the core developers dealing with this slowness?
I don’t find it slow at all (but I use MAC and LINUX for development). Most of the time, it is an incremental build (only building changes code, and then a linking step) - it normally takes longer to flash the chip than build the code. I timed a full ‘make clean; make -j 4’ to see what it is for me:
$ time make -j 4 ... real2m53.557s user5m55.978s sys1m40.391s
Just under 3 minutes real time. Perhaps you can check in windows to see how much worse it is?
Is it at all possible, if i could force platformio to use the correct the idf-esp libraries, to compile the OVMS code in a more recent environment that uses cmake and ninja?
I haven’t tried it myself. We do have some make scripts in various components that may rely on the existing build system. Things like the versioning.
OVMS was written when ESP-IDF was quite new, and unpolished. At some point, we will most likely migrate to a newer build system, as ESP-IDF matures.
Regards, Mark.
On 8 Apr 2020, at 8:37 AM, Eddy Vromen <eddy_vromen@hotmail.com <mailto:eddy_vromen@hotmail.com>> wrote:
HI All,
I have a question about the flash memory of the ESP32. I read that the ESP32 uses 16Mb of external flash memory and in the schematics on page 27 there is a flash memory chip. However, in the latest v3.2 schematics there is no external flash chip. Am I correct to assume that the 16Mb of memory is on the module now? How does this impact the e-fuse settings?
Another question that came up while setting up a development environment: The version of esp-idf thats used by the OVSM project uses the Mingw32 environment. Based on my limited exposure to using this environment, its very slow compared to compiling esp-idf code under e.g. platformio under VSCode. How are the core developers dealing with this slowness? Is it at all possible, if i could force platformio to use the correct the idf-esp libraries, to compile the OVMS code in a more recent environment that uses cmake and ninja?
Thanks, Eddy
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com <mailto:OvmsDev@lists.openvehicles.com> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
Mark, Micheal, Thanks for both your responses. I was not using the "-j4" and i had the virus scanner going berserk in the back ground. I am now getting times that are in the ball park. I looked at Fabrizio's thread. I very much applaud his efforts. I am not yet in a state where i can start porting code yet. Still trying to understand everything thats going on in the modules. Here is what i am trying to do: I want to re-purpose the project for use in a high-end ebike. The major changes that i am exploring are: * Add 1 or 2 serial interfaces. * Add a display/ dashboard /odometer to the system. This means there will be another data consumer. (thinking of equipping a display with can functionality) * In order to work around the lack of io pins on the esp32, i was thinking to replace the 2 MP2515's, the MAX7317 by a sinlge STM32F1xx chip (or higher level model) . Inside the STM i can implement dual CAn, dual UART and use the rest of the pins as GPIO. Interfacing between the esp32 and the stm will still go though the SPI. If I implement the same register structures as the dedicated IC's in the STM code, the software changes should be oversee-able. * There are 3 concerns that i have: * The latency of handling the CAN busses is probably going to increase. Hard to say by how much at this stage. It might be minimal. The STM has dedicated CAN protocol functionality like the MP2515's. Its the glue code that bridges between SPI and CAN that i am worried about. * Congestion of the SPI bus: In the scenario where one of the CAN busses has a display on it and one of the UARTs is connected to a BMS or MotorController. There will be major data flows in 2 directions on the SPI. * Even if i keep the code in the STM as dumb and transparent as possible, there still is the need to update it in the field. This means i need 1-2 more sections in the ESP flash for OTA -ing the stm plus the software functionality to perform an OTA of the STM from the ESP. What are you guys' thoughts about this. Is this feasible or am i crazy 🙂? Thanks, Eddy ________________________________ From: OvmsDev <ovmsdev-bounces@lists.openvehicles.com> on behalf of Michael Balzer <dexter@expeedo.de> Sent: Wednesday, April 8, 2020 2:01 PM To: ovmsdev@lists.openvehicles.com <ovmsdev@lists.openvehicles.com> Subject: Re: [Ovmsdev] Flash memory and developement setup Eddy, note that Fabrizio works on porting the OVMS to ESP-IDF 4: https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/issues/263#issuecomment-606132473<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fopenvehicles%2FOpen-Vehicle-Monitoring-System-3%2Fissues%2F263%23issuecomment-606132473&data=02%7C01%7C%7C5c4463d3fd1d494f5a0108d7db826bfa%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637219225514996313&sdata=Q4b2akvAkXaPoRU7Dx4unjOLqw83qsV6IeIOB5ZvPHg%3D&reserved=0> Maybe you can join forces? Regards, Michael Am 08.04.20 um 04:05 schrieb Mark Webb-Johnson: Am I correct to assume that the 16Mb of memory is on the module now? The ESP32 chip uses an external flash chip. The WROOM/WROVER modules include a flash chip in the modules. In the very early days of development prototypes for OVMS v3, we used an external 16MB flash chip (as only 4MB WROOM modules were available at the time). For production, we switched to 16MB WROVER modules, so don’t require any external flash chip any more. How are the core developers dealing with this slowness? I don’t find it slow at all (but I use MAC and LINUX for development). Most of the time, it is an incremental build (only building changes code, and then a linking step) - it normally takes longer to flash the chip than build the code. I timed a full ‘make clean; make -j 4’ to see what it is for me: $ time make -j 4 ... real 2m53.557s user 5m55.978s sys 1m40.391s Just under 3 minutes real time. Perhaps you can check in windows to see how much worse it is? Is it at all possible, if i could force platformio to use the correct the idf-esp libraries, to compile the OVMS code in a more recent environment that uses cmake and ninja? I haven’t tried it myself. We do have some make scripts in various components that may rely on the existing build system. Things like the versioning. OVMS was written when ESP-IDF was quite new, and unpolished. At some point, we will most likely migrate to a newer build system, as ESP-IDF matures. Regards, Mark. On 8 Apr 2020, at 8:37 AM, Eddy Vromen <eddy_vromen@hotmail.com<mailto:eddy_vromen@hotmail.com>> wrote: HI All, I have a question about the flash memory of the ESP32. I read that the ESP32 uses 16Mb of external flash memory and in the schematics on page 27 there is a flash memory chip. However, in the latest v3.2 schematics there is no external flash chip. Am I correct to assume that the 16Mb of memory is on the module now? How does this impact the e-fuse settings? Another question that came up while setting up a development environment: The version of esp-idf thats used by the OVSM project uses the Mingw32 environment. Based on my limited exposure to using this environment, its very slow compared to compiling esp-idf code under e.g. platformio under VSCode. How are the core developers dealing with this slowness? Is it at all possible, if i could force platformio to use the correct the idf-esp libraries, to compile the OVMS code in a more recent environment that uses cmake and ninja? Thanks, Eddy _______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com<mailto:OvmsDev@lists.openvehicles.com> http://lists.openvehicles.com/mailman/listinfo/ovmsdev<https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.openvehicles.com%2Fmailman%2Flistinfo%2Fovmsdev&data=02%7C01%7C%7C5c4463d3fd1d494f5a0108d7db826bfa%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637219225515006310&sdata=QI16eSBZDXwCztdm0Xva6%2Bl%2BtFEOXMIyzjfItgvmlUc%3D&reserved=0> _______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com<mailto:OvmsDev@lists.openvehicles.com> http://lists.openvehicles.com/mailman/listinfo/ovmsdev<https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.openvehicles.com%2Fmailman%2Flistinfo%2Fovmsdev&data=02%7C01%7C%7C5c4463d3fd1d494f5a0108d7db826bfa%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637219225515006310&sdata=QI16eSBZDXwCztdm0Xva6%2Bl%2BtFEOXMIyzjfItgvmlUc%3D&reserved=0> -- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
On 2020-04-07 23:01, Michael Balzer wrote:
note that Fabrizio works on porting the OVMS to ESP-IDF 4:
https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/issues/263#...
Maybe you can join forces?
I'm also interested in using a current esp-idf; I not finding contact info for Fabrizio, perhaps he could get in touch off-list? Craig
participants (4)
-
Craig Leres -
Eddy Vromen -
Mark Webb-Johnson -
Michael Balzer