I tried your new flash script with mixed results. First, I had to change "./esptool.py" to "esptool" because Ubuntu installed the python script in /usr/local/bin with the name "esptool" without the ".py".
Ok. I never installed it, i just used it from the repo that I git.
I think most linux systems will be able to run it without .py I probably didn't even try.
Second, I had to remove the --compress option because my ESP8266 board doesn't support that apparently. I have to admit that the board I'm using at the moment is not the Parallax WX module so maybe --compress isn't a problem with that module.
Thats interesting, I will need to pull out my non-parallax modules and check that out.
Did you get an actual error?
I'm wondering if we should include esptool.py with the WX firmware release or if we should just assume that the user has it already installed?
If you don't tell users to git it, and then also tell them to put it in the release folder, they will not.
If you want to use the python version instead of the c version, which ever you choose I would include the repository.
Or even the actual .py / c file, because they seem to like to change esptool without notice and then your old script FAILS.
I have been having some curious behavior with the "Command Mode" and telnet terminal and the port that flexgui or simpleide uses to talk to the module.
When I set command mode ON and then do some
NOP commands (send 254, and then 13),
and then switch command mode off,send "SET:,cmd-enable,0" BUG IDENTIFIED INCORRECT SYNTAX correct -->send "SET:cmd-enable,0"
Sometimes the serial data to the terminal when command mode is OFF, doesn't make it through to the terminal
and the module will dissappear from flexgui and simpleide, for a moment.
Am I causing telnet communication conflict by setting command mode?
Does command mode affect the modules ability to respond to its programming port?
Im running this program and viewing the output with a proptool of the debug port on the wx module,
and also viewing the putty terminal connected to the wx module on telnet.
I also have a 2nd proptool that is used to snoop the tx/rx between the propeller chip and the module.
I actually had the module crash once.
This might have been because I was changing in and out of command mode every SECOND.
Is that too fast?
CON
_CLKMODE=XTAL1 + PLL16X ' The system clock spec
_XINFREQ = 5_000_000 ' Crystal
Rx = 31 'serial in from wx device
Tx = 30 'serial out to wx device
OBJ
ser: "FullDuplexSerial.spin"
VAR
long Stack1[100]
Pub Main
cognew(Comms, @Stack1)
Pub Comms | CommandMode
ser.Start(RX, TX, 0, 115200) 'Cog #2
waitcnt(80_000_000 + cnt) 'wait 1 second fpr serial to start.
Repeat
ser.str(string(27)) 'Set ansi command mode in putty.
ser.str(string("[2J")) 'Clear putty telnet screen.
If CommandMode == 1 'Turn command mode on in spin.
ser.str(string(27)) 'Set ansi command mode in putty.
ser.str(string("[2;3f")) 'Set Position in putty.
ser.str(string("Command Mode is On. ")) 'Tell putty command mode is on.
ser.str(string(27)) 'Set ansi command mode in putty.
ser.str(string("[1;1f")) 'Set Position in putty to put cursor at 0
waitcnt(80_000_000 + cnt) 'wait 1 second for serial to stop.
ser.Stop 'Turn off serial to send break.
dira[TX]~~ ' Set direction to output
outa[TX]:= 0 ' Set TX low.
waitcnt(80_000_000 + cnt) 'wait 1 second for command mode to start in the module.
dira[TX]~ ' Set direction to input
ser.Start(RX, TX, 0, 115200) 'Cog #2
waitcnt(80_000_000 + cnt) 'wait 1 second for serial to start.
Repeat 5
waitcnt(80_000_000 + cnt) 'Wait for 1 s
ser.tx(254) 'Begin marker
ser.tx(13) 'End marker
'This is like a NOP, or a Keep alive.
'The Module responds here with a ser.tx(254) then a ser.str(string("=S,0")) and then a ser.tx(13)
'This loop runs 5 times. If you snoop the serial DO line for the WX module, you will see it reply.
ser.tx(254) 'Begin marker
ser.str(string("SET:,cmd-enable,0")) 'Turn command mode off in the WX module. BUG BAD SYNTAX --should be ("SET:cmd-enable,0")
ser.tx(13) 'End marker
CommandMode := 0 'Turn command mode off in spin.
waitcnt(80_000_000 + cnt) 'Wait for 1 s
ser.str(string(27)) 'Set ansi command mode in putty.
ser.str(string("[2;3f")) 'Set Position in putty.
ser.str(string("Command Mode is Off.")) 'Tell putty command mode is off. '
ser.str(string(27)) 'Set ansi command mode in putty. '
ser.str(string("[1;1f")) 'Set Position in putty to put cursor at 0
Repeat 5
waitcnt(80_000_000 + cnt) 'Wait for 1 s
CommandMode := 1 'Turn command mode on in spin.
I have been having some curious behavior with the "Command Mode" and telnet terminal and the port that flexgui or simpleide uses to talk to the module.
When I set command mode ON and then do some
NOP commands (send 254, and then 13),
and then switch command mode off, (send "SET:,cmd-enable,0")
Is it really necessary to include a comma after the colon in the above command? That is probably a bug.
Is it really necessary to include a comma after the colon in the above command?
Oh, I didn't even see that I messed that up. lol. Even when you carefully look over code and API manuals, it never fails you don't catch a extra character.
DOH! Thank you!
Hey, you are right, technically it should have not responded, right?
So then it should have stayed in command mode the whole time.
Interesting that it sometimes did and sometimes didn't.
Hah, this one also responds. Im not TRYING to mess it up, this was a mistake I just made again.
ser.str(string("SET:cmd-enable0"))
When the module acts funny now, I get concerned the new firmware is doing it, instead of my code.
'Livin on the edge.
For accurate testing I would think you would have two modules, one with the new firmware and one with the old.
Then do a test to each and see if something is different.
Mike
Agreed. Time to purchase a few more. Along with my relay I forgot for my 5v railroad smoker.
I have two modules, but one is in the engine, and in DIP format.
I'm not sure what's going on with the --compress and --verify options. I tried it with a real Parallax WX production module and I still got an error. I think I have to leave those out of any official scripts until we figure out why they don't work on some modules.
I'm not sure what's going on with the --compress and --verify options. I tried it with a real Parallax WX production module and I still got an error. I think I have to leave those out of any official scripts until we figure out why they don't work on some modules.
Now im curious. Connecting up my sparkfun esp8266 and my microcenter esp8266 modules to see this, right now.
Hmm, they must code the size into the esptool.py script.
Ok, ive been finishing the greenhouse floor today, haven't had time to check up on all this, will do tonight.
Test the generic esp's with verify and compress, and the new changes you put into the repo...
Hmm, they must code the size into the esptool.py script.
Ok, ive been finishing the greenhouse floor today, haven't had time to check up on all this, will do tonight.
Test the generic esp's with verify and compress, and the new changes you put into the repo...
I don't really know how to interpret that output. What do you get when you run that on your module? Are you using a real Parallax WX module?
I am using a 100% authentic parallax module, SIP for ALL my tests, accept no less, only the best.
It really is the best, it has the metal cover, which performs MUCH better in the cold and the heat of my greenhouse.
Here are the results of my sparkfun esp module. (16MB)
They are almost identical except the mac and the flash size.
I changed out my sparkfun module to a 25q128FVSG flash chip. https://www.digikey.com/product-detail/en/winbond-electronics/W25Q128JVSIQ-TR/W25Q128JVSIQCT-ND/7087212
It was the same price as the smaller sizes so i just went bigger than the esp8266 can do, it works fine, when I use it with the default WX programming size of 2MB.
The first result is the parallax module. USB0
The two results after, are the olimex modules with the 25q128 flash chips. USB1 & USB2
$ ./esptool.py --port /dev/ttyUSB0 flash_id
esptool.py v3.0-dev
Serial port /dev/ttyUSB0
Connecting.....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: xx:xx:xx:xx:xx:xx
Uploading stub...
Running stub...
Stub running...
Manufacturer: a1
Device: 4016
Detected flash size: 4MB
Hard resetting via RTS pin...
$ ./esptool.py --port /dev/ttyUSB1 flash_id
esptool.py v3.0-dev
Serial port /dev/ttyUSB1
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: xx:xx:xx:xx:xx:xx
Uploading stub...
Running stub...
Stub running...
Manufacturer: ef
Device: 4018
Detected flash size: 16MB
Hard resetting via RTS pin...
$ ./esptool.py --port /dev/ttyUSB2 flash_id
esptool.py v3.0-dev
Serial port /dev/ttyUSB2
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: xx:xx:xx:xx:xx:xx
Uploading stub...
Running stub...
Stub running...
Manufacturer: ef
Device: 4018
Detected flash size: 16MB
Hard resetting via RTS pin...
This version has many more options to work with the esp.
We could probably even have it detect the flash size and use it in the programming...
./esptool.py --h
usage: esptool [-h] [--chip {auto,esp8266,esp32,esp32s2}] [--port PORT]
[--baud BAUD]
[--before {default_reset,no_reset,no_reset_no_sync}]
[--after {hard_reset,soft_reset,no_reset}] [--no-stub]
[--trace] [--override-vddsdio [{1.8V,1.9V,OFF}]]
[--connect-attempts CONNECT_ATTEMPTS]
{load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,version,get_security_info}
...
esptool.py v3.0-dev - ESP8266 ROM Bootloader Utility
positional arguments:
{load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,version,get_security_info}
Run esptool {command} -h for additional help
load_ram Download an image to RAM and execute
dump_mem Dump arbitrary memory to disk
read_mem Read arbitrary memory location
write_mem Read-modify-write to arbitrary memory location
write_flash Write a binary blob to flash
run Run application code in flash
image_info Dump headers from an application image
make_image Create an application image from binary files
elf2image Create an application image from ELF file
read_mac Read MAC address from OTP ROM
chip_id Read Chip ID from OTP ROM
flash_id Read SPI flash manufacturer and device ID
read_flash_status Read SPI flash status register
write_flash_status Write SPI flash status register
read_flash Read SPI flash content
verify_flash Verify a binary blob against flash
erase_flash Perform Chip Erase on SPI flash
erase_region Erase a region of the flash
version Print esptool version
get_security_info Get some security-related data
optional arguments:
-h, --help show this help message and exit
--chip {auto,esp8266,esp32,esp32s2}, -c {auto,esp8266,esp32,esp32s2}
Target chip type
--port PORT, -p PORT Serial port device
--baud BAUD, -b BAUD Serial port baud rate used when flashing/reading
--before {default_reset,no_reset,no_reset_no_sync}
What to do before connecting to the chip
--after {hard_reset,soft_reset,no_reset}, -a {hard_reset,soft_reset,no_reset}
What to do after esptool.py is finished
--no-stub Disable launching the flasher stub, only talk to ROM
bootloader. Some features will not be available.
--trace, -t Enable trace-level output of esptool.py interactions.
--override-vddsdio [{1.8V,1.9V,OFF}]
Override ESP32 VDDSDIO internal voltage regulator (use
with care)
--connect-attempts CONNECT_ATTEMPTS
Number of attempts to connect, negative or 0 for
infinite. Default: 7.
@"David Betz"
The latest git (as of this post) of Parallax-Esp has a few bugs.
After running make in the main directory
/Parallax-ESP/Make
1. The required files for the flashing of an esp are now completely missing from the /Parallax-Esp/build folder.
File: /Parallax-ESP/build/httpd.user1.bin is missing.
File: /Parallax-ESP/build/httpd.user2.bin is missing.
File: /Parallax-ESP/build/httpd.ota is also missing.
They seem to be named improperly.
/Parallax-ESP/build/httpd.user1.out
/Parallax-ESP/build/httpd.user2.out
/Parallax-ESP/build/httpd_app.a
Even if they are renamed, and programmed to the ESP, the debug port spits out garbage and the module will not do any kind of wifi, so the format of those files is damaged somehow.
2. The /Parallax-ESP/release/flash-all.sh
script is incorrect, it references the wrong file (line 55)
esp_init_data_default.bin ---> should be ----> esp_init_data_default_v08.bin
3. The /Parallax-ESP/release/clear-1m.sh
script is incorrect, it references the wrong file (line 42)
esp_init_data_default.bin ---> should be ----> esp_init_data_default_v08.bin
4. The /Parallax-ESP/esptool-ck/Make is not being run when /Parallax-Esp/Make is run, so the esptool file is missing.
5. Once the esptool file is made, the esptool file is also not being copied to the /Parallax-Esp/release/release folder when the /Parallax-ESP/release/Makefile is run.
6. All the scripts that use esptool in the /Parallax-ESP/release/ folder don't execute the esptool properly, it needs ./esptool
It won't run on my system, Debian10.
Ugh. I'll fix this later today. All I did in my most recent push is change the "make clean" recipe so it just deletes the entire build directory. I'm not sure why this would have caused the problem you're describing.
Ugh. I'll fix this later today. All I did in my most recent push is change the "make clean" recipe so it just deletes the entire build directory. I'm not sure why this would have caused the problem you're describing.
lol, the simple ones seem to do the most damage!
I have more bad news.
When powering on any of my esp's (they all have the working firmware from the last working commit) and then connecting to them in ap mode.
When I navigate to the Networks page the module will do a hard crash and restart.
It will only do this when you first access the network page after it powers on, repeated accessing the page will not crash the module.
Heres the debug pin output. From power on, you can see where it crashes.
It has a E:M 2056 and a E:M 2096, I don't normally see those.
This is the parallax WX esp8266 module.
When it crashes, my webbrowser times out, my pc immediately reconnects(like it didn't even disconnect to the ap)
And I then click the esp address bookmark again and then the network page, and it doesn't crash.
Flash config restore ok
108> Reset Pin: 13
109> RX Pullup: 0
115> DISCOVER: initialized
115> Version v1.0 (2020-09-06 03:18:16 37-xxxxxxxx)
115> Using pin 13 for reset
116> 2MB flash: base 00100000, size 1048576
120> Flash filesystem mounted!
124> Httpd init
125>
126> Ready
127> mode : softAP(xx:xx:xx:xx:xx:xx)
131> add if1
133> dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
140> bcn 100
47679> add 1
47679> aid 1
47679> station: xx:xx:xx:xx:xx:xx join, AID = 1
80281> Conn req from 192.168.4.2:60624, using pool slot 0
80283> URL = /
80286> Pool slot 0 is done. Closing.
80286> Pool slot 0: socket closed.
80291> Conn req from 192.168.4.2:60626, using pool slot 0
80292> URL = /index.html
80295> Heatshrink compressed file; decode parms = b4
80323> Pool slot 0 is done. Closing.
80324> Pool slot 0: socket closed.
80427> Conn req from 192.168.4.2:60628, using pool slot 0
80428> URL = /style.css
80428> Heatshrink compressed file; decode parms = b4
80474> Pool slot 0 is done. Closing.
80474> Pool slot 0: socket closed.
80477> Conn req from 192.168.4.2:60630, using pool slot 0
80478> URL = /logo.png
80524> Pool slot 0 is done. Closing.
80524> Pool slot 0: socket closed.
80531> Conn req from 192.168.4.2:60632, using pool slot 0
80532> URL = /wx/setting?name=module-name
80532> GET args = name=module-name
80534> GET 'module-name' --> 'PCB1'
80539> Pool slot 0 is done. Closing.
80542> Pool slot 0: socket closed.
80546> Conn req from 192.168.4.2:60634, using pool slot 0
80550> URL = /favicon.ico
80552> Heatshrink compressed file; decode parms = b4
80563> Conn req from 192.168.4.2:60636, using pool slot 1
80564> URL = /wx/setting?name=version
80565> GET args = name=version
80568> GET 'version' --> 'v1.0 (2020-09-06 03:18:16 37-xxxxxxxx)'
80576> Pool slot 1 is done. Closing.
80578> Pool slot 0 is done. Closing.
80581> Pool slot 1: socket closed.
80584> Pool slot 0: socket closed.
82823> Conn req from 192.168.4.2:60640, using pool slot 0
82824> URL = /wifi/wifi.html
82825> Heatshrink compressed file; decode parms = b4
82858> Conn req from 192.168.4.2:60642, using pool slot 1
82859> URL = /wifi/style.css
82860> Heatshrink compressed file; decode parms = b4home page
82862> Conn req from 192.168.4.2:60644, using pool slot 2
82867> E:M 2056
82869> URL = /wifi/140medley.min.js
82872> Heatshrink compressed file; decode parms = b4
82877> E:M 2096
82878> Fatal exception 29(StoreProhibitedCause):
82883> epc1=0x4000df64, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
ets Jan 8 2013,rst cause:1, boot mode:(3,0)
load 0x40100000, len 2592, room 16
tail 0
chksum 0xf3
load 0x3ffe8000, len 764, room 8
tail 4
chksum 0x92home page
load 0x3ffe82fc, len 676, room 4
tail 0
chksum 0x22
csum 0x22
2nd boot version : 1.7(5d6f877)
SPI Speed : 80MHz
SPI Mode : QIO
SPI Flash Size & Map: 16Mbit(512KB+512KB)
jump to run user1 @ 1000
Flash config restore ok
112> Reset Pin: 13
112> RX Pullup: 0
118> DISCOVER: initialized
118> Version v1.0 (2020-09-06 03:18:16 37-xxxxxxxx)
118> Using pin 13 for reset
120> 2MB flash: base 00100000, size 1048576
124> Flash filesystem mounted!
127> Httpd init
129>
129> Ready
131> mode : softAP(xx:xx:xx:xx:xx:xx)
134> add if1
136> dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
144> bcn 100
5603> add 1
5603> aid 1
5603> station: xx:xx:xx:xx:xx:81 join, AID = 1
10174> Conn req from 192.168.4.2:60646, using pool slot 0
10176> URL = /wifi/140medley.min.js
10177> Heatshrink compressed file; decode parms = b4
10195> Pool slot 0 is done. Closing.
10195> Pool slot 0: socket closed.
10202> Conn req from 192.168.4.2:60648, using pool slot 0
10203> URL = /wx/setting?name=wifi-ssid
10203> GET args = name=wifi-ssid
10206> GET 'wifi-ssid' --> ''
10211> Pool slot 0 is done. Closing.
10212> Pool slot 0: socket closed.
14471> Conn req from 192.168.4.2:60650, using pool slot 0
14472> URL = /
14474> Pool slot 0 is done. Closing.
14474> Pool slot 0: socket closed.
14502> Conn req from 192.168.4.2:60652, using pool slot 0
14503> URL = /wx/setting?name=module-name
14503> GET args = name=module-name
14505> GET 'module-name' --> 'PCB1'
14511> Pool slot 0 is done. Closing.
14512> Pool slot 0: socket closed.
14517> Conn req from 192.168.4.2:60654, using pool slot 0
14521> URL = /wx/setting?name=version
14524> GET args = name=version
14527> GET 'version' --> 'v1.0 (2020-09-06 03:18:16 37-xxxxxxxx)'
14534> Pool slot 0 is done. Closing.
14536> Pool slot 0: socket closed.
15993> Conn req from 192.168.4.2:60656, using pool slot 0
15994> URL = /wifi/wifi.html
15995> Heatshrink compressed file; decode parms = b4
16034> Conn req from 192.168.4.2:60658, using pool slot 1
16035> URL = /wifi/style.css
16036> Heatshrink compressed file; decode parms = b4
16048> Pool slot 1 is done. Closing.
16048> Pool slot 1: socket closed.
16051> Pool slot 0 is done. Closing.
16052> Pool slot 0: socket closed.
16056> Conn req from 192.168.4.2:60660, using pool slot 0
16058> URL = /wx/setting?name=wifi-ssid
16061> GET args = name=wifi-ssid
16065> GET 'wifi-ssid' --> ''
16069> Pool slot 0 is done. Closing.
16071> Pool slot 0: socket closed.
16080> Conn req from 192.168.4.2:60662, using pool slot 0
16081> URL = /wx/setting?name=module-name
16083> GET args = name=module-name
16086> GET 'module-name' --> 'PCB1'
16091> Pool slot 0 is done. Closing.
16093> Pool slot 0: socket closed.
16097> Conn req from 192.168.4.2:60664, using pool slot 0
16102> URL = /wx/setting?name=wifi-mode
16105> GET args = name=wifi-mode
16108> GET 'wifi-mode' --> 'AP'
16112> Pool slot 0 is done. Closing.
16115> Pool slot 0: socket closed.
16119> Conn req from 192.168.4.2:60666, using pool slot 0
16124> URL = /wx/setting?name=station-ipaddr
16127> GET args = name=station-ipaddr
16130> GET 'station-ipaddr' --> '0.0.0.0'
16135> Pool slot 0 is done. Closing.
16138> Pool slot 0: socket closed.
16142> Conn req from 192.168.4.2:60668, using pool slot 0
16147> URL = /wx/setting?name=station-macaddr
16150> GET args = name=station-macaddr
16154> GET 'station-macaddr' --> 'xx:xx:xx:xx:xx:xx'
16160> Pool slot 0 is done. Closing.
16162> Pool slot 0: socket closed.
16176> Conn req from 192.168.4.2:60670, using pool slot 0
16177> URL = /wx/setting?name=softap-ipaddr
16177> GET args = name=softap-ipaddr
16180> GET 'softap-ipaddr' --> '192.168.4.1'
16185> Pool slot 0 is done. Closing.
16188> Pool slot 0: socket closed.
16192> Conn req from 192.168.4.2:60672, using pool slot 0
16196> URL = /wx/setting?name=softap-macaddr
16200> GET args = name=softap-macaddr
16203> GET 'softap-macaddr' --> 'xx:xx:xx:xx:xx:xx'
16209> Pool slot 0 is done. Closing.
16212> Pool slot 0: socket closed.
This is the olimex esp8266 module, same exact crash output it looks like.
Flash config restore ok
116> Reset Pin: 13
116> RX Pullup: 0
122> DISCOVER: initialized
123> Version v1.0 (2020-09-06 03:18:16 37-xxxxxxxx)
123> Using pin 13 for reset
124> 2MB flash: base 00100000, size 1048576
128> Flash filesystem mounted!
131> Httpd init
133>
134> Ready
135> mode : softAP(xx:xx:xx:xx:xx:xx)
139> add if1
140> dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
148> bcn 100
238395> add 1
238395> aid 1
238395> station: xx:xx:xx:xx:xx:xx join, AID = 1
259860> Conn req from 192.168.4.2:60264, using pool slot 0
259861> URL = /
259864> Pool slot 0 is done. Closing.
259865> Pool slot 0: socket closed.
259870> Conn req from 192.168.4.2:60266, using pool slot 0
259872> URL = /index.html
259873> Heatshrink compressed file; decode parms = b4
259902> Pool slot 0 is done. Closing.
259902> Pool slot 0: socket closed.
260048> Conn req from 192.168.4.2:60268, using pool slot 0
260049> URL = /style.css
260050> Heatshrink compressed file; decode parms = b4
260097> Pool slot 0 is done. Closing.
260098> Pool slot 0: socket closed.
260101> Conn req from 192.168.4.2:60270, using pool slot 0
260102> URL = /logo.png
260149> Pool slot 0 is done. Closing.
260149> Pool slot 0: socket closed.
260155> Conn req from 192.168.4.2:60272, using pool slot 0
260156> URL = /wx/setting?name=module-name
260156> GET args = name=module-name
260159> GET 'module-name' --> 'PCB2'
260164> Pool slot 0 is done. Closing.
260167> Pool slot 0: socket closed.
260171> Conn req from 192.168.4.2:60274, using pool slot 0
260175> URL = /favicon.ico
260177> Heatshrink compressed file; decode parms = b4
260182> Conn req from 192.168.4.2:60276, using pool slot 1
260188> URL = /wx/setting?name=version
260190> GET args = name=version
260193> GET 'version' --> 'v1.0 (2020-09-06 03:18:16 37-xxxxxxxx)'
260204> Pool slot 1 is done. Closing.
260205> Pool slot 1: socket closed.
260212> Pool slot 0 is done. Closing.
260213> Pool slot 0: socket closed.
261528> Conn req from 192.168.4.2:60280, using pool slot 0
261530> URL = /wifi/wifi.html
261531> Heatshrink compressed file; decode parms = b4
261564> Conn req from 192.168.4.2:60282, using pool slot 1
261565> URL = /wifi/style.css
261566> Heatshrink compressed file; decode parms = b4
261569> Conn req from 192.168.4.2:60284, using pool slot 2
261574> E:M 2056
261576> URL = /wifi/140medley.min.js
261579> Heatshrink compressed file; decode parms = b4
261583> E:M 2096
261585> Fatal exception 29(StoreProhibitedCause):
261589> epc1=0x4000df64, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
ets Jan 8 2013,rst cause:1, boot mode:(3,0)
load 0x40100000, len 2592, room 16
tail 0
chksum 0xf3
load 0x3ffe8000, len 764, room 8
tail 4
chksum 0x92
load 0x3ffe82fc, len 676, room 4
tail 0
chksum 0x22
csum 0x22
2nd boot version : 1.7(5d6f877)
SPI Speed : 80MHz
SPI Mode : QIO
SPI Flash Size & Map: 16Mbit(512KB+512KB)
jump to run user1 @ 1000
Flash config restore ok
126> Reset Pin: 13
126> RX Pullup: 0
132> DISCOVER: initialized
132> Version v1.0 (2020-09-06 03:18:16 37-xxxxxxxx)
132> Using pin 13 for reset
134> 2MB flash: base 00100000, size 1048576
138> Flash filesystem mounted!
141> Httpd init
143>
143> Ready
145> mode : softAP(xx:xx:xx:xx:xx:xx)
148> add if1
150> dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
157> bcn 100
274> add 1
274> aid 1
274> station: xx:xx:xx:xx:xx:xx join, AID = 1
784> Conn req from 192.168.4.2:60286, using pool slot 0
785> URL = /wifi/140medley.min.js
786> Heatshrink compressed file; decode parms = b4
804> Pool slot 0 is done. Closing.
805> Pool slot 0: socket closed.
10116> Conn req from 192.168.4.2:60288, using pool slot 0
10117> URL = /wx/setting?name=wifi-ssid
10117> GET args = name=wifi-ssid
10119> GET 'wifi-ssid' --> ''
10124> Pool slot 0 is done. Closing.
10126> Pool slot 0: socket closed.
I can try and flash an earlier firmware to see if it does the same.
Because i cannot get the old commit from github to build properly (wtf?)
I flashed it to the parallax WX module, and I cannot get it to crash at first boot on the wifi page no matter what I try.
The older firmware seems to choke a bit in ap mode when you join it.
Flash config restore ok
121> Reset Pin: 13
121> RX Pullup: 0
127> DISCOVER: initialized
127> Version v1.0 (2020-09-03 02:47:12 29-xxxxxxxx)
127> Using pin 13 for reset
128> 4MB flash: base 00100000, size 3145728
133> Flash filesystem mounted!
136> Httpd init
137>
138> Ready
140> mode : softAP(xx:xx:xx:xx:xx:xx)
143> add if1
145> dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
153> bcn 100
30819> add 1
30819> aid 1
30819> station: xx:xx:xx:xx:xx:xx join, AID = 1
75740> station: xx:xx:xx:xx:xx:xx leave, AID = 1
75740> rm 1
89843> add 1
89843> aid 1
89843> station: xx:xx:xx:xx:xx:xx join, AID = 1
134742> station: xx:xx:xx:xx:xx:xx leave, AID = 1
134742> rm 1
144825> add 1
144825> aid 1
144825> station: xx:xx:xx:xx:xx:xx join, AID = 1
170114> Conn req from 192.168.4.2:33532, using pool slot 0
170116> URL = /
170119> Pool slot 0 is done. Closing.
170119> Pool slot 0: socket closed.
170125> Conn req from 192.168.4.2:33534, using pool slot 0
170127> URL = /index.html
170128> Heatshrink compressed file; decode parms = b4
170156> Pool slot 0 is done. Closing.
170156> Pool slot 0: socket closed.
170295> Conn req from 192.168.4.2:33536, using pool slot 0
170296> URL = /style.css
170296> Heatshrink compressed file; decode parms = b4
170341> Pool slot 0 is done. Closing.
170341> Pool slot 0: socket closed.
170345> Conn req from 192.168.4.2:33538, using pool slot 0
170346> URL = /logo.png
170390> Pool slot 0 is done. Closing.
170390> Pool slot 0: socket closed.
170395> Conn req from 192.168.4.2:33540, using pool slot 0
170396> URL = /wx/setting?name=module-name
170397> GET args = name=module-name
170400> GET 'module-name' --> 'PCB1'
170405> Pool slot 0 is done. Closing.
170408> Pool slot 0: socket closed.
170411> Conn req from 192.168.4.2:33542, using pool slot 0
170416> URL = /favicon.ico
170418> Heatshrink compressed file; decode parms = b4
170423> Conn req from 192.168.4.2:33544, using pool slot 1
170429> URL = /wx/setting?name=version
170431> GET args = name=version
170434> GET 'version' --> 'v1.0 (2020-09-03 02:47:12 29-xxxxxxxx)'
170445> Pool slot 1 is done. Closing.
170446> Pool slot 1: socket closed.
170454> Pool slot 0 is done. Closing.
170454> Pool slot 0: socket closed.
171780> Conn req from 192.168.4.2:33546, using pool slot 0
171781> URL = /wifi/wifi.html
171782> Heatshrink compressed file; decode parms = b4
171813> Conn req from 192.168.4.2:33548, using pool slot 1
171815> URL = /wifi/style.css
171815> Heatshrink compressed file; decode parms = b4
171818> Conn req from 192.168.4.2:33550, using pool slot 2
171824> URL = /wifi/140medley.min.js
171827> Heatshrink compressed file; decode parms = b4
171838> Pool slot 0 is done. Closing.
171838> Pool slot 1 is done. Closing.
171838> Pool slot 0: socket closed.
171841> Pool slot 2 is done. Closing.
171845> Pool slot 1: socket closed.
171848> Pool slot 2: socket closed.
171856> Conn req from 192.168.4.2:33552, using pool slot 0
171857> URL = /wx/setting?name=wifi-ssid
171860> GET args = name=wifi-ssid
171863> GET 'wifi-ssid' --> ''
171866> Pool slot 0 is done. Closing.
171869> Pool slot 0: socket closed.
171876> Conn req from 192.168.4.2:33554, using pool slot 0
171878> URL = /wx/setting?name=module-name
171881> GET args = name=module-name
171884> GET 'module-name' --> 'PCB1'
171890> Pool slot 0 is done. Closing.
171891> Pool slot 0: socket closed.
171899> Conn req from 192.168.4.2:33556, using pool slot 0
171900> URL = /wx/setting?name=wifi-mode
171903> GET args = name=wifi-mode
171906> GET 'wifi-mode' --> 'AP'
171910> Pool slot 0 is done. Closing.
171913> Pool slot 0: socket closed.
171917> Conn req from 192.168.4.2:33558, using pool slot 0
171922> URL = /wx/setting?name=station-ipaddr
171925> GET args = name=station-ipaddr
171929> GET 'station-ipaddr' --> '0.0.0.0'
171933> Pool slot 0 is done. Closing.
171936> Pool slot 0: socket closed.
171940> Conn req from 192.168.4.2:33560, using pool slot 0
171945> URL = /wx/setting?name=station-macaddr
171948> GET args = name=station-macaddr
171952> GET 'station-macaddr' --> 'xx:xx:xx:xx:xx:xx'
171958> Pool slot 0 is done. Closing.
171961> Pool slot 0: socket closed.
171964> Conn req from 192.168.4.2:33562, using pool slot 0
171969> URL = /wx/setting?name=softap-ipaddr
171973> GET args = name=softap-ipaddr
171976> GET 'softap-ipaddr' --> '192.168.4.1'
171981> Pool slot 0 is done. Closing.
171984> Pool slot 0: socket closed.
171989> Conn req from 192.168.4.2:33564, using pool slot 0
171993> URL = /wx/setting?name=softap-macaddr
171996> GET args = name=softap-macaddr
172000> GET 'softap-macaddr' --> 'xx:xx:xx:xx:xx:xx'
172005> Pool slot 0 is done. Closing.
172008> Pool slot 0: socket closed.
I am now going to try to flash the NEW firmware with the new esptool.py instead of the old c version, to see if the new firmware still crashes.
It could be the new boot v1.7, I can try using the older 1.6 after I test with the newer esptool.py.
After running make in the main directory
/Parallax-ESP/Make
1. The required files for the flashing of an esp are now completely missing from the /Parallax-Esp/build folder.
File: /Parallax-ESP/build/httpd.user1.bin is missing.
File: /Parallax-ESP/build/httpd.user2.bin is missing.
File: /Parallax-ESP/build/httpd.ota is also missing.
They seem to be named improperly.
/Parallax-ESP/build/httpd.user1.out
/Parallax-ESP/build/httpd.user2.out
/Parallax-ESP/build/httpd_app.a
Even if they are renamed, and programmed to the ESP, the debug port spits out garbage and the module will not do any kind of wifi, so the format of those files is damaged somehow.
2. The /Parallax-ESP/release/flash-all.sh
script is incorrect, it references the wrong file (line 55)
esp_init_data_default.bin ---> should be ----> esp_init_data_default_v08.bin
3. The /Parallax-ESP/release/clear-1m.sh
script is incorrect, it references the wrong file (line 42)
esp_init_data_default.bin ---> should be ----> esp_init_data_default_v08.bin
These are now fixed as well as the corresponding line in clear.sh.
4. The /Parallax-ESP/esptool-ck/Make is not being run when /Parallax-Esp/Make is run, so the esptool file is missing.
5. Once the esptool file is made, the esptool file is also not being copied to the /Parallax-Esp/release/release folder when the /Parallax-ESP/release/Makefile is run.
6. All the scripts that use esptool in the /Parallax-ESP/release/ folder don't execute the esptool properly, it needs ./esptool
It won't run on my system, Debian10.
I'm not done with integrating esptool-ck into the Makefile but at least the sources are available. I think most people will know how to run "make" in that directory and copy the resulting executable into some directory that is in their PATH.
@"Clock Loop" Thanks for helping to debug the move to the new ESP SDK!
Glad to help, with all the work you and other people here have done with open source, its the least I can do..!
I just compiled it all, and it looks good, I just flashed it, going to see if that reboot bug at first power up when accessing the wifi page, is still there, (im guessing so)
Yea, that reboot bug on first access of the wifi page after powerup is still there...
Im going to see if boot v1.6 does it.
Hmm, boot v1.6 won't work with this new ESP SDK.
It just constantly blinks the TX led, never makes an AP.
I guess I don't know what else to test for this reboot bug.
I leave it up to you @"David Betz" and @iseries to figure out what its doing and if it matters.
4. The /Parallax-ESP/esptool-ck/Make is not being run when /Parallax-Esp/Make is run, so the esptool file is missing.
5. Once the esptool file is made, the esptool file is also not being copied to the /Parallax-Esp/release/release folder when the /Parallax-ESP/release/Makefile is run.
6. All the scripts that use esptool in the /Parallax-ESP/release/ folder don't execute the esptool properly, it needs ./esptool
It won't run on my system, Debian10.
I'm not done with integrating esptool-ck into the Makefile but at least the sources are available. I think most people will know how to run "make" in that directory and copy the resulting executable into some directory that is in their PATH.
@"Clock Loop" I just pushed changes to build esptool-ck, add it to the release folder, and use it in the flash scripts. Please check to see if this works for you. However, this probably isn't an optimal solution because it is only compiled for one architecture. If you run this build process on a Raspberry Pi it certainly won't create an executable that can be used on an x86-based Linux system and there is no executable for Windows or the Mac either. Fixing that is beyond what I have time for now.
I'm just using the one that came from the latest Ubuntu repositories. I guess we could just include the version you mentioned with our releases but then it might not work if the user doesn't have the right versions of the other Python libraries installed like pyserial. It seems safer just to use esptool-ck since we have the sources for that and it just links with standard C libraries.
Comments
Ok. I never installed it, i just used it from the repo that I git.
I think most linux systems will be able to run it without .py I probably didn't even try.
Thats interesting, I will need to pull out my non-parallax modules and check that out.
Did you get an actual error?
If you don't tell users to git it, and then also tell them to put it in the release folder, they will not.
If you want to use the python version instead of the c version, which ever you choose I would include the repository.
Or even the actual .py / c file, because they seem to like to change esptool without notice and then your old script FAILS.
When I set command mode ON and then do some
NOP commands (send 254, and then 13),
and then switch command mode off, send "SET:,cmd-enable,0" BUG IDENTIFIED INCORRECT SYNTAX correct -->send "SET:cmd-enable,0"
Sometimes the serial data to the terminal when command mode is OFF, doesn't make it through to the terminal
and the module will dissappear from flexgui and simpleide, for a moment.
Am I causing telnet communication conflict by setting command mode?
Does command mode affect the modules ability to respond to its programming port?
Im running this program and viewing the output with a proptool of the debug port on the wx module,
and also viewing the putty terminal connected to the wx module on telnet.
I also have a 2nd proptool that is used to snoop the tx/rx between the propeller chip and the module.
I actually had the module crash once.
This might have been because I was changing in and out of command mode every SECOND.
Is that too fast?
Oh, I didn't even see that I messed that up. lol. Even when you carefully look over code and API manuals, it never fails you don't catch a extra character.
DOH! Thank you!
Hey, you are right, technically it should have not responded, right?
So then it should have stayed in command mode the whole time.
Interesting that it sometimes did and sometimes didn't.
Hah, this one also responds. Im not TRYING to mess it up, this was a mistake I just made again.
When the module acts funny now, I get concerned the new firmware is doing it, instead of my code.
'Livin on the edge.
Then do a test to each and see if something is different.
Mike
Agreed. Time to purchase a few more. Along with my relay I forgot for my 5v railroad smoker.
I have two modules, but one is in the engine, and in DIP format.
Now im curious. Connecting up my sparkfun esp8266 and my microcenter esp8266 modules to see this, right now.
Mike
Thanks for testing that. That one uses the esptool-ck version. Which does not do verify or compress, fyi.
Oh, you didn't mean that you tested my attached windows batch which uses that exe file. Nevermind!
Wait you used a Parallax WX module? Are you connecting the reset line?
Does the check flash size feature work for you?
Hmm, they must code the size into the esptool.py script.
Ok, ive been finishing the greenhouse floor today, haven't had time to check up on all this, will do tonight.
Test the generic esp's with verify and compress, and the new changes you put into the repo...
Ok now i see, the problem is, you need to git the latest version of esptool.py.
esptool.py v3.0-dev
That might fix the compress and verify issue you were having earlier too.
https://github.com/espressif/esptool
I am using a 100% authentic parallax module, SIP for ALL my tests, accept no less, only the best.
It really is the best, it has the metal cover, which performs MUCH better in the cold and the heat of my greenhouse.
Here are the results of my sparkfun esp module. (16MB)
They are almost identical except the mac and the flash size.
I changed out my sparkfun module to a 25q128FVSG flash chip.
https://www.digikey.com/product-detail/en/winbond-electronics/W25Q128JVSIQ-TR/W25Q128JVSIQCT-ND/7087212
It was the same price as the smaller sizes so i just went bigger than the esp8266 can do, it works fine, when I use it with the default WX programming size of 2MB.
The first result is the parallax module. USB0
The two results after, are the olimex modules with the 25q128 flash chips. USB1 & USB2
We could probably even have it detect the flash size and use it in the programming...
The latest git (as of this post) of Parallax-Esp has a few bugs.
After running make in the main directory
/Parallax-ESP/Make
1. The required files for the flashing of an esp are now completely missing from the /Parallax-Esp/build folder.
File: /Parallax-ESP/build/httpd.user1.bin is missing.
File: /Parallax-ESP/build/httpd.user2.bin is missing.
File: /Parallax-ESP/build/httpd.ota is also missing.
They seem to be named improperly.
/Parallax-ESP/build/httpd.user1.out
/Parallax-ESP/build/httpd.user2.out
/Parallax-ESP/build/httpd_app.a
Even if they are renamed, and programmed to the ESP, the debug port spits out garbage and the module will not do any kind of wifi, so the format of those files is damaged somehow.
So something went wrong with this commit. "Fix problem with "make clean" after a fresh checkout."
https://github.com/parallaxinc/Parallax-ESP/commit/d5747cc8926d3d83c7646661bd80cef1eab3ded2
2. The /Parallax-ESP/release/flash-all.sh
script is incorrect, it references the wrong file (line 55)
esp_init_data_default.bin ---> should be ----> esp_init_data_default_v08.bin
3. The /Parallax-ESP/release/clear-1m.sh
script is incorrect, it references the wrong file (line 42)
esp_init_data_default.bin ---> should be ----> esp_init_data_default_v08.bin
4. The /Parallax-ESP/esptool-ck/Make is not being run when /Parallax-Esp/Make is run, so the esptool file is missing.
5. Once the esptool file is made, the esptool file is also not being copied to the /Parallax-Esp/release/release folder when the /Parallax-ESP/release/Makefile is run.
6. All the scripts that use esptool in the /Parallax-ESP/release/ folder don't execute the esptool properly, it needs ./esptool
It won't run on my system, Debian10.
lol, the simple ones seem to do the most damage!
I have more bad news.
When powering on any of my esp's (they all have the working firmware from the last working commit) and then connecting to them in ap mode.
When I navigate to the Networks page the module will do a hard crash and restart.
It will only do this when you first access the network page after it powers on, repeated accessing the page will not crash the module.
Heres the debug pin output. From power on, you can see where it crashes.
It has a E:M 2056 and a E:M 2096, I don't normally see those.
This is the parallax WX esp8266 module.
When it crashes, my webbrowser times out, my pc immediately reconnects(like it didn't even disconnect to the ap)
And I then click the esp address bookmark again and then the network page, and it doesn't crash.
This is the olimex esp8266 module, same exact crash output it looks like.
I can try and flash an earlier firmware to see if it does the same.
https://github.com/parallaxinc/Parallax-ESP/commit/a5bcb63560c3be18806231ba25700cf70a0f6f3a
Because i cannot get the old commit from github to build properly (wtf?)
I flashed it to the parallax WX module, and I cannot get it to crash at first boot on the wifi page no matter what I try.
The older firmware seems to choke a bit in ap mode when you join it.
I am now going to try to flash the NEW firmware with the new esptool.py instead of the old c version, to see if the new firmware still crashes.
It could be the new boot v1.7, I can try using the older 1.6 after I test with the newer esptool.py.
I even set the new esptool.py to use 4MB for the flash (instead of 2MB)
I don't see the exact same error/crash output though.
I only see 49711> E:M 2096
So programming with the full 4MB flash, stoped one of the E:M errors?
@"David Betz"
Could this be related to your ram space concern or what you had called it.
I fixed this bug. I neglected to notice that the variable FW_BASE was used by the sub makefiles like Makefile.ota. Sorry about that!
Glad to help, with all the work you and other people here have done with open source, its the least I can do..!
I just compiled it all, and it looks good, I just flashed it, going to see if that reboot bug at first power up when accessing the wifi page, is still there, (im guessing so)
Yea, that reboot bug on first access of the wifi page after powerup is still there...
Im going to see if boot v1.6 does it.
Hmm, boot v1.6 won't work with this new ESP SDK.
It just constantly blinks the TX led, never makes an AP.
I guess I don't know what else to test for this reboot bug.
I leave it up to you @"David Betz" and @iseries to figure out what its doing and if it matters.
,...