<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Mark, Steve,<br>
<br>
that's really a great relief!<br>
<br>
I also doubt the fix will be backported. I tried applying the idf
v3 commits involved in the fix you also commented on some weeks
ago, but the issue wasn't solved. I got the impression it's not an
isolated issue of the driver. We should go idf-3.x anyway.<br>
<br>
Regarding last hardware fixes, please don't forget…<br>
<br>
5. Support active GPS antennas<br>
<br>
I hope we can use the Wroom module.<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
Am 08.01.2018 um 03:37 schrieb Mark Webb-Johnson:<br>
</div>
<blockquote type="cite"
cite="mid:BEA67D09-B05F-4DD3-8737-46E8324CF6DC@webb-johnson.net">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<div class="">
<div class=""><br class="">
</div>
<div class="">Using Espressif standard SD CARD example program,
modified to write "Hello\n” 10 million times, and then read it
back 10 million times...</div>
<div class=""><br class="">
</div>
<div class="">Here is what I get with OVMS v3 developer-release
hardware using release version of ESP IDF v2.1:</div>
<div class=""><br class="">
</div>
<blockquote style="margin: 0px 0px 0px 40px; border: none;
padding: 0px;" class="">
<div class="">
<div class=""><span style="font-size: 18px; font-family:
"Andale Mono";" class="">I (50) boot: ESP-IDF
v2.1.1-8-g5ae2c0d0 2nd stage bootloader</span></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (51) boot: compile
time 08:28:36</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (83) boot:
Enabling RNG early entropy source...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (84) boot: SPI
Speed : 40MHz</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (84) boot: SPI
Mode : DIO</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (94) boot: SPI
Flash Size : 16MB</span></font></div>
</div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">…</span></font></div>
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (910) cpu_start:
Pro cpu start user code</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (967) cpu_start:
Starting scheduler on PRO CPU.</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (972) example:
Initializing SD card</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (972) cpu_start:
Starting scheduler on APP CPU.</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">E (1112) sdmmc_cmd:
sdmmc_card_init: send_scr returned 0x107</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">E (1112) example:
Failed to initialize the card (263). Make sure SD card
lines have pull-up resistors in place.</span></font></div>
</div>
</blockquote>
</div>
<div class=""><br class="">
</div>
<div class="">Using latest (bleeding edge, not released) ESP IDF
v3.1, using 1 line mode:</div>
<div class=""><br class="">
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding:
0px;" class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (31) boot: ESP-IDF
v3.1-dev-168-ga1b59679 2nd stage bootloader</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (31) boot: compile
time 08:35:38</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (42) boot: Enabling
RNG early entropy source...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (42) boot: SPI Speed
: 40MHz</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (42) boot: SPI Mode
: DIO</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (45) boot: SPI Flash
Size : 16MB</span></font></div>
</div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">…</span></font></div>
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (195) cpu_start: Pro
cpu up.</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (199) cpu_start:
Starting app cpu, entry point is 0x40080e38</span></font></div>
<div class=""><span style="font-size: 18px; font-family:
"Andale Mono";" class="">I (0) cpu_start: App
cpu up.</span></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (209) heap_init:
Initializing. RAM available for dynamic allocation:</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (216) heap_init: At
3FFAE6E0 len 00001920 (6 KiB): DRAM</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (222) heap_init: At
3FFB2A48 len 0002D5B8 (181 KiB): DRAM</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (228) heap_init: At
3FFE0440 len 00003BC0 (14 KiB): D/IRAM</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (235) heap_init: At
3FFE4350 len 0001BCB0 (111 KiB): D/IRAM</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (241) heap_init: At
40089270 len 00016D90 (91 KiB): IRAM</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (247) cpu_start: Pro
cpu start user code</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (265) cpu_start:
Starting scheduler on PRO CPU.</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (0) cpu_start:
Starting scheduler on APP CPU.</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (267) example:
Initializing SD card</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (267) example: Using
SDMMC peripheral</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">Name: SB16G</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">Type: SDHC/SDXC</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">Speed: default speed</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">Size: 15193MB</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">CSD: ver=1,
sector_size=512, capacity=31116288 read_bl_len=9</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">SCR: sd_spec=2,
bus_width=5</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (347) example:
Opening file</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (347) example: write
count = 0 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (25397) example:
write count = 1000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (50417) example:
write count = 2000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (75737) example:
write count = 3000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (101277) example:
write count = 4000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (127417) example:
write count = 5000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (154087) example:
write count = 6000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (180247) example:
write count = 7000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (206977) example:
write count = 8000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (232807) example:
write count = 9000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (259647) example:
File written</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (259647) example:
Renaming file</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (259657) example:
Reading file</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (259657) example:
read count = 0 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (278507) example:
read count = 1000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (297367) example:
read count = 2000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (316427) example:
read count = 3000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (335347) example:
read count = 4000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (354327) example:
read count = 5000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (373157) example:
read count = 6000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (391637) example:
read count = 7000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (410097) example:
read count = 8000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (428517) example:
read count = 9000000 ...</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (446807) example:
Read from file: 'Hello'</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (446807) example:
Card unmounted</span></font></div>
</div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">and using v3.1 with 4-line mode:</div>
<div class=""><br class="">
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding:
0px;" class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">I (247) cpu_start: Pro cpu
start user code<br class="">
I (265) cpu_start: Starting scheduler on PRO CPU.<br
class="">
I (0) cpu_start: Starting scheduler on APP CPU.<br class="">
I (267) example: Initializing SD card<br class="">
I (267) example: Using SDMMC peripheral<br class="">
Name: SB16G<br class="">
Type: SDHC/SDXC<br class="">
Speed: default speed<br class="">
Size: 15193MB<br class="">
CSD: ver=1, sector_size=512, capacity=31116288 read_bl_len=9<br
class="">
SCR: sd_spec=2, bus_width=5<br class="">
I (347) example: Opening file<br class="">
I (357) example: write count = 0 ...<br class="">
I (24187) example: write count = 1000000 ...<br class="">
I (47637) example: write count = 2000000 ...<br class="">
I (71277) example: write count = 3000000 ...<br class="">
I (94927) example: write count = 4000000 ...<br class="">
I (119567) example: write count = 5000000 ...<br class="">
I (143517) example: write count = 6000000 ...<br class="">
I (168297) example: write count = 7000000 ...<br class="">
I (192597) example: write count = 8000000 ...<br class="">
I (216847) example: write count = 9000000 ...<br class="">
I (240587) example: File written<br class="">
I (240727) example: Renaming file<br class="">
I (240727) example: Reading file<br class="">
I (240737) example: read count = 0 ...<br class="">
I (257697) example: read count = 1000000 ...<br class="">
I (274507) example: read count = 2000000 ...<br class="">
I (291327) example: read count = 3000000 ...<br class="">
I (308117) example: read count = 4000000 ...<br class="">
I (325157) example: read count = 5000000 ...<br class="">
I (341647) example: read count = 6000000 ...<br class="">
I (358397) example: read count = 7000000 ...<br class="">
I (375097) example: read count = 8000000 ...<br class="">
I (391787) example: read count = 9000000 ...<br class="">
I (408247) example: Read from file: 'Hello'<br class="">
I (408247) example: Card unmounted</span></font></blockquote>
<div class=""><br class="">
</div>
<div class="">Smiling so much my face hurts... This has been such
a PITA, but it looks like Espressif have finally solved it with
their latest pre-release SDK.</div>
<div class=""><br class="">
</div>
<div class="">Very little performance difference between 1 line
and 4 line modes (4 line is about 8% faster), so probably not
worth using up those GPIO lines for that.</div>
<div class=""><br class="">
</div>
<div class="">I’m working with Espressif to see if this fix can be
back-ported to v2.1. I doubt it, but no harm asking…</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">This all, of course, brings into top priority the
work Steve and I are doing trying to get OVMS v3 firmware
working against ESP IDF v3.x. Here’s a hastily hacked together
kludge based on bleeding edge ESP IDF v3.1:</div>
</div>
<div class=""><br class="">
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding:
0px;" class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">OVMS > metrics list
m.version</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">m.version
3.0.0/factory/main build (idf
v3.1-dev-168-ga1b59679) Jan 8 2018 10:09:53</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class=""><br class="">
</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">OVMS > sd mount</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">Name: SB16G</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">Type: SDHC/SDXC</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">Speed: default speed</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">Size: 15193MB</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">CSD: ver=1,
sector_size=512, capacity=31116288 read_bl_len=9</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">SCR: sd_spec=2,
bus_width=5</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">Mounted SD CARD</span></font></div>
</div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class=""><br class="">
</span></font></div>
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">OVMS > vfs ls /sd</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">.Spotlight-V100</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">.fseventsd</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">component.mk</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">sd_card_example_main.c</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">FOO.TXT</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class=""><br class="">
</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">OVMS > vfs cp
/sd/FOO.txt /sd/FOO2.txt</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">VFS copy complete</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class=""><br class="">
</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">OVMS > vfs ls /sd</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">.Spotlight-V100</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">.fseventsd</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">component.mk</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">sd_card_example_main.c</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">FOO2.TXT</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 18px;" class="">FOO.TXT</span></font></div>
</div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">That FOO.TXT file is about 60MB in size.</div>
<div class=""><br class="">
</div>
<div class="">Now finalising hardware with the china manufacturer.
I think at this point, it is worth:</div>
<div class=""><br class="">
</div>
<div class="">
<ol class="MailOutline">
<li class="">Use 1 line SD CARD (which frees up GPIOs
SD_DATA1/SD_DATA2/SD_DATA3, but also avoids the conflict
between GPIO12/SD_DATA2 and VDD_SDIO bootstrap pin).</li>
<li class="">Add some capacitors for power line smoothing, as
per Espressif’s example in their test board.</li>
<li class="">Double-check power on SIMCOM module, to ensure it
is as expected (following issues reported with low-amperage
USB ports).</li>
<li class="">Change to use Analog Lamb WROOM-32 module and
their 16MB flash + 4MB ram.</li>
</ol>
</div>
<div class=""><br class="">
</div>
<div class="">Change #4 should be the only controversial one. It
has the advantages of much more RAM, and no need for external
flash, but the disadvantage is that we would have to move GPIOs
for simcom async (as those are using by Analog Lamb for their
chip). It also depends on Analog Lamb’s lead time, and future
plans for this module.</div>
<div class=""><br class="">
</div>
<div class="">Regards, Mark</div>
<div class=""><br class="">
</div>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="144">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
</body>
</html>