I managed to flash my boards with the windows program yesterday. Turns out if I flash them through adruino and the otau the flash only stayed on the board while the battery is connected but if I flash them with the windows program the battery can be disconnected and the flash will survive.
it seems like the ota flash goes to volatile memory and the windows flash goes to non volatile memory. Does anyone know if there is a way to flash the board from adruino and make it permanent? I'm guessing compiling it from source would probably do the trick. The ota program I used for the flash seems to stay active as I can just log in via the browser and reload the firmware.
thanks Shannon.
Hmmm I haven't actually disconnected the battery, but I assumed that's what the on/off switch does? I haven't lost anything when I do that.
On another note, here's 10 set up for testing against my DIY3 10hz logger.

We're going for a drive to Eaton, (near Bunbury), so should get a good speed and direction variation. Should be enough to tell if the GPS bit is working as expected.
I managed to flash my boards with the windows program yesterday. Turns out if I flash them through adruino and the otau the flash only stayed on the board while the battery is connected but if I flash them with the windows program the battery can be disconnected and the flash will survive.
it seems like the ota flash goes to volatile memory and the windows flash goes to non volatile memory. Does anyone know if there is a way to flash the board from adruino and make it permanent? I'm guessing compiling it from source would probably do the trick. The ota program I used for the flash seems to stay active as I can just log in via the browser and reload the firmware.
thanks Shannon.
Hi Shannon. If you don't want to compile the project, you can use esptool.py to flash your unit. This tool does the same thing as Espressif Systems ESP32 Download Tool (described in RP6Conrad's Build instructions - docs.google.com/document/d/1XJD6BV1Xay4nXo0cDuo_IOtxC_f1LyG7DE7X6KGlAB0). esptool comes with the ESP32 board manager when you select to download it in the Arduino development environment. A typical command line for esptool.py is:
./esptool.py --chip esp32 --port /dev/ttyACM0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 ./boot_app0.bin 0x1000 ./bootloader_qio_80m.bin 0x10000 ./Rtos5.54B74_satstat.bin 0x8000 ./Rtos5.54B74_satstat.partitions.bin
This is what Arduino runs after building the project when you press the upload button. Esptool flashes the unit. It's permanent.
esptool is located here in my account (maybe the same for you ?):
~/.arduino15/packages/esp32/tools/esptool_py/3.0.0
I managed to flash my boards with the windows program yesterday. Turns out if I flash them through adruino and the otau the flash only stayed on the board while the battery is connected but if I flash them with the windows program the battery can be disconnected and the flash will survive.
it seems like the ota flash goes to volatile memory and the windows flash goes to non volatile memory. Does anyone know if there is a way to flash the board from adruino and make it permanent? I'm guessing compiling it from source would probably do the trick. The ota program I used for the flash seems to stay active as I can just log in via the browser and reload the firmware.
thanks Shannon.
Hi Shannon. If you don't want to compile the project, you can use esptool.py to flash your unit. This tool does the same thing as Espressif Systems ESP32 Download Tool (described in RP6Conrad's Build instructions - docs.google.com/document/d/1XJD6BV1Xay4nXo0cDuo_IOtxC_f1LyG7DE7X6KGlAB0). esptool comes with the ESP32 board manager when you select to download it in the Arduino development environment. A typical command line for esptool.py is:
./esptool.py --chip esp32 --port /dev/ttyACM0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 ./boot_app0.bin 0x1000 ./bootloader_qio_80m.bin 0x10000 ./Rtos5.54B74_satstat.bin 0x8000 ./Rtos5.54B74_satstat.partitions.bin
This is what Arduino runs after building the project when you press the upload button. Esptool flashes the unit. It's permanent.
esptool is located here in my account (maybe the same for you ?):
~/.arduino15/packages/esp32/tools/esptool_py/3.0.0
Fantastic jn1! I'll give it a go if I need to build any more units. Thanks so much for that.
shannon.
Can only compare 8 units at a time, so I'm doing it in 2 batches of 6, 5 ESP32s and my DIY logger v3
Here's the first 5s 2s results, speed then SACC
2 sec 1 62.475 0.130 62.470 0.193 62.446 0.097 62.449 0.113 62.449 0.108 62.439 0.123
2 sec 2 61.139 0.143 61.032 0.258 61.134 0.110 61.112 0.126 61.116 0.127 61.166 0.137
2 sec 3 58.710 0.145 58.663 0.312 58.754 0.116 58.659 0.146 58.796 0.163 58.754 0.168
2 sec 4 45.103 0.112 45.217 0.269 45.115 0.085 45.110 0.119 45.117 0.132 45.108 0.113
2 sec 5 38.966 0.122 38.849 0.165 38.879 0.121 38.877 0.108 38.916 0.103 38.906 0.108
2nd one's SACC is higher because for some reason it's only pulling 15 sats. 3rd SACC is lower because it's my DIY3 with a bigger antenna.
But here's the tracks of the 6 units super imposed on each other.

Very smooth and very much the same. The red's lack of accuracy shows up though. next job is to find out why. I suspect the GNNS number is 2 not 3
Here's the 2nd 5 with my DIY v3
2 sec 1 62.446 0.097 62.455 0.110 62.458 0.117 62.440 0.099 62.444 0.113 62.434 0.132 DIY v3
2 sec 2 61.134 0.110 61.165 0.126 61.293 0.167 61.086 0.110 61.191 0.116 61.178 0.169
2 sec 3 58.754 0.116 58.758 0.149 58.813 0.160 58.678 0.169 58.629 0.153 58.738 0.185
2 sec 4 45.115 0.085 45.094 0.119 45.131 0.125 45.117 0.115 45.104 0.112 45.069 0.149
2 sec 5 38.879 0.121 38.858 0.096 38.888 0.113 38.901 0.121 38.916 0.098 38.908 0.125
SACCs all very close here, but another problem, #3 drops out 3 times during the run. No idea why, I'll continue checking.
So great 2s results from all units, but the run has shown 2 problems. That's why we need to test these builds.
plus I have 2 that the magnet doesn't tun off, reed switch orientation?
So 6 out of 10 pass so far, but tests aren't finished yet.
EDIT!!!!
I just found the semi manual setting to change from TLS mode to plain old insecure FTP mode.
Didn't take to long after that to modify the config.txt file and download an OAO file.
This is better than we did on Waricle's Windoze 10 machine.
If we modified the config.txt file then tried to save it, the device disconnected, couldn't figure out how to save a modified file. but we could download ubx and oao files.
So ignore the below bleat, but I'll leave it there in case anybody else has a similar problem.
Hey Jason and or Shannon. What are you using for FTP?
I just got this message from filezilla. Any comments? I've zero experience with FTP, I'll try changing away from TLS, (whatever that is) and see what happens.
Status: Connecting to 192.168.4.1:21...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Command: USER esp32
Error: Could not read from socket: ECONNRESET - Connection reset by peer
Error: Could not connect to server
Status: Waiting to retry...
Status: Connecting to 192.168.4.1:21...
Status: Connection established, waiting for welcome message...
Response: 220--- Welcome to FTP for ESP32 ---
Response: 220--- By David Paiva + JH ---
Response: 220 -- Version FTP-2022-02-22 --
Command: AUTH TLS
Response: 500 Syntax error
Command: AUTH SSL
Response: 530 user not found
Status: Insecure server, it does not support FTP over TLS.
Command: USER esp32
Error: Could not read from socket: ECONNRESET - Connection reset by peer
Error: Could not connect to server
Hey Jason and or Shannon. What are you using for FTP?
I just got this message from filezilla. Any comments? I've zero experience with FTP, I'll try changing away from TLS, (whatever that is) and see what happens.
Status: Connecting to 192.168.4.1:21...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Command: USER esp32
Error: Could not read from socket: ECONNRESET - Connection reset by peer
Error: Could not connect to server
Status: Waiting to retry...
Status: Connecting to 192.168.4.1:21...
Status: Connection established, waiting for welcome message...
Response: 220--- Welcome to FTP for ESP32 ---
Response: 220--- By David Paiva + JH ---
Response: 220 -- Version FTP-2022-02-22 --
Command: AUTH TLS
Response: 500 Syntax error
Command: AUTH SSL
Response: 530 user not found
Status: Insecure server, it does not support FTP over TLS.
Command: USER esp32
Error: Could not read from socket: ECONNRESET - Connection reset by peer
Error: Could not connect to server
You can either use pftp or filezilla. They both work well. With filezilla, you need to configure it for esp-gps-logger's very dumbed down ftp server. As follows:



Note: number of connections. This is really important.


If you're using pftp, don't issue the command "mget *" (to get all files). This is a valid command on a full featured ftp server, but this caused the ftp server to crash on my unit. I had to crack open my unit and press the reset button.
Thanks Jason, I got it working before reading your post, but I'm going right now to check the number of connections!
Dont edit the config.txt in the ftp program, use a separat editor !
That makes sense. But I think it opened notepad
I think the way to go editing the config.txt file is to download it to your computer and make the changes. Then upload it to the gps and overwrite the old file.
I think the way to go editing the config.txt file is to download it to your computer and make the changes. Then upload it to the gps and overwrite the old file.
correct
Hmmm I haven't actually disconnected the battery, but I assumed that's what the on/off switch does? I haven't lost anything when I do that.
On another note, here's 10 set up for testing against my DIY3 10hz logger.

We're going for a drive to Eaton, (near Bunbury), so should get a good speed and direction variation. Should be enough to tell if the GPS bit is working as expected.
That is a familiar picture. They do slide around a bit when going around roundabouts though! I suggest some double sided tape underneath
Just processed another 8, plus tested the one I had the antenna upside down in. That worked much better with the antenna facing the sky instead of looking through the dashboard at the ground. I'm very surprised it got the results it did, I guess the antenna isn't directional and it was getting a view backwards through the ground plane and the rest of the bietian.
I only have 2 more to make now, most are working well, but a couple have the very odd drop out for 100ms and another couple the occasional small spike,
Here's an interesting one, as there's a fairly directional view out the windscreen, (the new commodore has a very sloped screen so there's a vertical view upwards) As direction changes, new satellites have to be accommodated, and the accuracy goes off until that happens.

Looks like I have another problem, 1 device is turning itself on without magnet use, just turning the charger on does it.
Battery voltage is now down to 3.37. When it's shut down, it only gets to the first screen and is unresponsive to anything, until it's charged up a bit.
Could it be an over sensitive reed switch I wonder.
Anybody else had this?
I'll try and get to the bottom of it and report back.
Sounds similar to my last unit (the one which plays silly buggers), I'd replace both switches as it's NFG if it happens after potting.
May be a low battery thing, it's not doing it now it's got more charge. But I certainly won't pot it until I'm sure of what's going on.
I've just done a run to the shops with the last 2. The one that was switching on by itself has the best SAcc. The other one is suffering dropouts and higher SAcc numbers. Both next to each other on the windscreen, with the same skyview.

It's mainly below 0.5kts, but I'm concerned with the difference.
The blue one also has 2144 missed points spread over the whole time. whereas the red one has 126 mainly at the start, as it's finding sats.
I'm going to swap bietians and see what happens.
Looks like the unit that turns on without being asked, is doing it at battery check time. I've reflashed the firmware, to see if that's the problem, with no change. I've disconnected the reed switch without making any difference.
It can also be hard to start and switch off. When it does switch off it gets stuck at the first info half page. When this happens it's completely unresponsive, to switch or magnet. I;m strongly suspicious of the ESP32, but welcome any suggestion what to try next?
Trouble is, it's a bit random, I've had it go a whole day without giving trouble, but then it switches off overnight without any external stimulus. Sometimes just taking the SD card out will do it, or just randomly handling it in some way.
You could measure the voltage between gpio 39 and gnd, should be a steady 3.3 vdc. If there was waterintrusion in the pushbutton 39, current leakage is possible. You can always remove the pushbutton.
Greetings, Jan.
Agree with Jan. Remove the reed valve and then test function by momentarily asserting pin using a piece of wire (or plyers) cross the pin and the ground.
If for whatever reason the pull up resistor on pin 39 (internal to the ESP32 chip) is open (burnt out, or chip substrate poor quality etc), you could solder a 10k ohm resistor from pin 39 to the 3.3v pin. Worth a try if nothing else is working.
Failing that, you could relocate the function to another pin with a simple firmware mod (you'll need the Arduino development environment for that).
You could measure the voltage between gpio 39 and gnd, should be a steady 3.3 vdc. If there was waterintrusion in the pushbutton 39, current leakage is possible. You can always remove the pushbutton.
Greetings, Jan.
It's still in test mode prior to potting, so no water ingress. I really don't think it's mechanical, as it happens mainly when waking for the hourly battery update.
But measuring the pin voltage is a great idea, if that's marginal for whatever reason, that could make it flaky. I had thought it was a voltage thing, as it will also do it when connecting or disconnecting the charger.
Thanks guys.
Done that, makes no difference
It can also be hard to start and switch off. When it does switch off it gets stuck at the first info half page. When this happens it's completely unresponsive, to switch or magnet. I;m strongly suspicious of the ESP32, but welcome any suggestion what to try next?
Very likely that it's a bad ESP32. The "hard to start" is likely from checksum violations during the startup, which happen because the memory that the boot firmware is on is unreliable. You should be able to see this by hooking the unit up to a serial terminal (e.g. in Arduino over USB) when it does not want to start up. You can also try it right after it gets stuck when switching if off.
The only thing to do is to replace the ESP32. You may want to order a few extras, anyway, since it is quite possible that a chip may fail after days, weeks, or months of use.
I'd love a CRO right now, my ancient multimeter has no memory.
just watching it voltage varies between 3.2852 and 3.2857, while running, when off it's steadier, 3.2850 to 3.2851, although I just saw a 3.2846. I think it's steadily dropping.
about 10min later
Yep down to 3.2840/3
Very likely that it's a bad ESP32. The "hard to start" is likely from checksum violations during the startup, which happen because the memory that the boot firmware is on is unreliable. You should be able to see this by hooking the unit up to a serial terminal (e.g. in Arduino over USB) when it does not want to start up. You can also try it right after it gets stuck when switching if off.
The only thing to do is to replace the ESP32. You may want to order a few extras, anyway, since it is quite possible that a chip may fail after days, weeks, or months of use.
That's my diagnoses at the moment, I've just ordered 2 more lilygoes. But I'm more than happy to have a play in the meantime.
Done that, makes no difference
Did you try the pull up resister hack ?. (did you understand what I was talking about ?)