Page 1 of 6
ESP32 boards
Posted: 23 Dec 2017, 15:17
by LisaM
Firmware status:
Beta
Firmware version:
v0.2.1
Firmware revision:
v60
Firmware installation instructions
Download esptool:
https://github.com/espressif/esptool
When doing a
FRESH install,
ERASEyour ESP32
FILES area:
Code: Select all
LINUX: esptool.py --port /dev/ttyUSBx erase_flash
Code: Select all
WINDOWS: esptool.py --port COMx erase_flash
The FLASHBINARY file has this format: upyeasy_vXX_YYYYMMDD_test_esp32_ZZZZ.bin
The (latest) binary files can be downloaded here:
https://github.com/letscontrolit/uPyEasy/releases
Load the new firmware into the ESP32, this will
NOT impact your
FILES area! Old uPyEasy files will not be touched.
Code: Select all
LINUX: esptool.py --port /dev/ttyUSBx write_flash --compress 0x1000 FLASHBINARY
Code: Select all
WINDOWS: esptool.py --port COMx write_flash --compress 0x1000 upyeasy-esp32.bin
PLEASE DO NOT SPECIFY OTHER PARAMETERS (like flash-size) AS STATED IN LATER POSTS!
In linux you can use the following command to connect to the ESP32: screen /dev/ttyUSBx 115200,cs8
In Windows just use putty to connect to the com port COMx at 115200 baud speed.
After flashing the firmware, the esptool will reboot your ESP32.
After reboot, uPyEasy will auto-start.
At absence of a configured ssid, uPyEasy will autoconnect to the strongest open-wifi AP.
If there's no open-wifi available, uPyEasy will stop and display the message (in REPL: Read, Eval, Print, Loop):
Code: Select all
Exiting: Network not available, set network values!
Run in REPL (python command line interface with the >>>) this command:
Code: Select all
upyeasy.setwifi('<your ssid>', '<your ssid password>','<your backup ssid, if any>', '<your backup ssid pw>',<your port>)
Only the ssid and ssid password are mandatory!
Then reboot using:
uPyEasy should be running on default port 80, unless you have choosen a different port number when setting the wifi parameters!, so connect using your browser using: http://<your upyeasy ip address>:80
If uPyEasy is connected to your open-wifi guest network, please remember that the assigned ip-address might not be accessible from your normal wifi AP. You'll need to forward an external port to uPyEasy internal ip-address + port.
If you get this 'error' report, it means that either boot.py or main.py has not automatically been created:
Code: Select all
OSError: [Errno 2] ENOENT
MicroPython v1.9.3-254-g41a9bdc-dirty on 2018-01-06; ESP32 module with ESP32
Type "help()" for more information.
Just type (the '>>>' is the repl prompt!):
>>> import upyeasy
>>> upyeasy.main()
Best is to add or create the boot.py file with these commands in it.
uPyEasy logfile might contain your SSID name, not password, if you encounter a bug and want to put the logfile in a post and care about the ssid name then replace that with xxxxx (or parts of it) and then post the logfile
(2MB firmware version now, due to reboot loops some are experiencing!)
Re: ESP32 boards
Posted: 23 Dec 2017, 22:10
by AndrewJ
Hi Lisa,
About the OSError 128 I've been experiencing on my DOIT and Wemos LOLIN32 LITE boards...
I've been looking back through our messages, and I think we may have been looking at the wrong bit of code.
1. The last line of errors in my log is: File "uasyncio/__init__.py", line 241, in start_server
2. In a later message (#104), you wrote:
Line 214 is:
CODE: SELECT ALL
s2, client_addr = s.accept()
(note: the line number changed from 241 to 214)
I've looked on Github miocropython/micropython-lib at the code for __init__.py
Line 241 (the correct one) is in fact ..
s.bind(addr)
Re: ESP32 boards
Posted: 24 Dec 2017, 19:35
by LisaM
Hi Andrew,
I've updated all libraries and rebuild it, can you download the image from here and try again? If it still has the same error, can you set a different port using this: upyeasy.setwifi('<your ssid>', '<your ssid password>','', '',8000)
And then reboot to see if that's better.
Re: ESP32 boards
Posted: 25 Dec 2017, 22:17
by AndrewJ
LisaM wrote: ↑24 Dec 2017, 19:35
I've updated all libraries and rebuild it, can you download the image from here and try again? If it still has the same error, can you set a different port using this: upyeasy.setwifi('<your ssid>', '<your ssid password>','', '',8000)
And then reboot to see if that's better.
Hi Lisa,
I just got back and gave this a try on my Wemos LOLIN32 LITE board, using the v52 upyeasy_esp32.zip in the first message of this topic.
Unfortunately the ESP32 is going into an endless reboot condition with the following messages repeated over and over:
Code: Select all
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3f400020,len:392168
ets Jun 8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3f400020,len:392168
I've tried a couple of times with the same result. Any ideas, please?
Re: ESP32 boards
Posted: 26 Dec 2017, 00:11
by LisaM
Hi Andrew,
I suspect it is this issue:
https://github.com/micropython/micropyt ... /issues/49
Since you're already using DIO, i've attached a special 2MB version of uPyEasy. Give that one a try.
The Wemos LOLIN32 LITE has a maximum baudrate of 256000, you might want to try that to:
esptool.py --port /dev/ttyUSBx write_flash --baud 256000 --compress 0x1000 firmware.bin
If not:
- Did you erase the ESP32?
- Does it happen with both ESP32's?
- Is the power supply big enough (the esp32 itself is using at least 500ma!)
Cheers,
Lisa
Ps, this is my esp32 boot:
- esp32 boot.png (456.53 KiB) Viewed 99026 times
Re: ESP32 boards
Posted: 27 Dec 2017, 17:14
by AndrewJ
Hi Lisa,
Just got back onto this. Thanks for sending the 2MB version to try.
Initially I'm working with the LOLIIN32 LITE board as it has the revision 1 chip, and just to keep it relatively simple and straight forward. I haven't yet tried this version on my other board, the DOIT devkit v1.
First off, after erasing, I tried
esptool.py --port /dev/ttyUSBx write_flash --baud 256000 --compress 0x1000 firmware.bin
This wouldn't run for me. Tried moving the --baud 256000 after /dev/ttyUSBx but got fatal error.
Read your comments about power, and reading
https://github.com/micropython/micropyt ... issues/109 I added a 4u7 capacitor across 3.3v and GND. Erased again, then flashed the 2MB file at 115200 baud which seemed to go ok. The startup log as follows:
Code: Select all
pi@homeassistant:~/upyeasy_esp32/esptool-master $ screen /dev/ttyUSB0 115200,cs8I (1808) wifi: Init data frame dynamic rx buffer num: 64
I (1808) wifi: Init management frame dynamic rx buffer num: 64
I (1808) wifi: wifi driver task: 3ffe3104, prio:23, stack:4096
I (1818) wifi: Init static rx buffer num: 10
I (1818) wifi: Init dynamic rx buffer num: 0
I (1828) wifi: Init rx ampdu len mblock:7
I (1828) wifi: Init lldesc rx ampdu entry mblock:4
I (1828) wifi: wifi power manager task: 0x3ffe98fc prio: 21 stack: 2560
I (1868) phy: phy_version: 362.0, 61e8d92, Sep 8 2017, 18:48:11, 0, 0
I (1868) wifi: mode : null
I (1868) wifi: mode : sta (30:ae:a4:39:16:e4)
I (1878) wifi: STA_START
2000-01-01T00:00:01.005 [debug] uPyEasy: Hal: esp32, ssid empty
I (4308) network: event 1
2000-01-01T00:00:04.005 [debug] uPyEasy: Hal: esp32, Scan: Ssid found: TALKTALK65AFF2 Strength: -60 dBm Security: 4
2000-01-01T00:00:04.005 [debug] uPyEasy: Protocols: Load
2000-01-01T00:00:04.005 [debug] uPyEasy: Protocols: Init protocol records
2000-01-01T00:00:04.005 [debug] uPyEasy: Protocols: Load protocol domoticz_mqtt
2000-01-01T00:00:04.005 [debug] uPyEasy: Protocols: Create protocol Record: domoticz_mqtt
2000-01-01T00:00:05.005 [debug] uPyEasy: Protocols: Load protocol domoticz_http
2000-01-01T00:00:05.005 [debug] uPyEasy: Protocols: Create protocol Record: domoticz_http
2000-01-01T00:00:05.005 [debug] uPyEasy: Protocols: Init protocol records, run async loop
2000-01-01T00:00:05.005 [debug] uPyEasy: Plugins: Load
2000-01-01T00:00:05.005 [debug] uPyEasy: Plugins: init plugin records
2000-01-01T00:00:05.005 [debug] uPyEasy: Plugins: Load frozen plugin switch
2000-01-01T00:00:05.005 [debug] uPyEasy: Plugin: switch contruction
2000-01-01T00:00:05.005 [debug] uPyEasy: Plugins: Create frozen plugin Record: switch
2000-01-01T00:00:06.005 [debug] uPyEasy: Plugins: Load frozen plugin ds18
2000-01-01T00:00:06.005 [debug] uPyEasy: Plugin: ds18 contruction
2000-01-01T00:00:06.005 [debug] uPyEasy: Plugins: Create frozen plugin Record: ds18
2000-01-01T00:00:06.005 [debug] uPyEasy: Plugins: Init plugin records, run async loop
2000-01-01T00:00:06.005 [debug] uPyEasy: Utils: Sys hostname
2000-01-01T00:00:06.005 [debug] uPyEasy: Utils: uPyEasy Name
Set syslog hostname 0.0.0.0
reloaded sink syslog
2000-01-01T00:00:06.005 [debug] uPyEasy-uPyEasy: Hal: Entering SetTime
2000-01-01T00:00:06.005 [debug] uPyEasy-uPyEasy: Hal: Entering GetNtpTime
2000-01-01T00:00:06.005 [debug] uPyEasy-uPyEasy: Hal: network Table
2000-01-01T00:00:06.005 [debug] uPyEasy-uPyEasy: Hal: Using NTP Hostname: pool.ntp.org
2000-01-01T00:00:06.005 [debug] uPyEasy-uPyEasy: Hal: TimeZome offset: 60
Traceback (most recent call last):
File "boot.py", line 3, in <module>
File "upyeasy/__init__.py", line 40, in main
File "upyeasy/init.py", line 223, in init
File "upyeasy/hal.py", line 318, in settime
File "upyeasy/hal.py", line 256, in getntptime
File "upyeasy/hal.py", line 248, in getntptime
IndexError: list index out of range
OSError: [Errno 2] ENOENT
MicroPython v1.9.3-194-ga661b85-dirty on 2017-12-26; ESP32 module with ESP32
Type "help()" for more information.
>>>
So.. the good news is that OSError 128 has gone
and it does seem to have successfully done a lot of the startup steps....
but.. instead I now have OSError [Errno 2] ENOENT.
Looking at this link:
https://github.com/micropython/micropyt ... /issues/90 it appears others have had similar, and that it may not actually be harmful (?) and/or main.py may be missing. On the other hand, it looks from the Traceback that there is a problem with getntptime/list index out of range.
What's your view on this?
Regards,
AndrewJ
Re: ESP32 boards
Posted: 27 Dec 2017, 17:45
by AndrewJ
An update on the last post...
I decided to try the solution to the "missing main.py" given in the Github issue 90, and created a file through the REPL. Rebooted (by pressing the RESET button on the ESP32 board) and it now starts without the ENOENT error, (and it says Hello!) but it still has...
Code: Select all
2000-01-01T00:00:06.005 [debug] uPyEasy-uPyEasy: Hal: Entering SetTime
2000-01-01T00:00:06.005 [debug] uPyEasy-uPyEasy: Hal: Entering GetNtpTime
2000-01-01T00:00:06.005 [debug] uPyEasy-uPyEasy: Hal: network Table
2000-01-01T00:00:06.005 [debug] uPyEasy-uPyEasy: Hal: Using NTP Hostname: pool.ntp.org
2000-01-01T00:00:06.005 [debug] uPyEasy-uPyEasy: Hal: TimeZome offset: 60
Traceback (most recent call last):
File "boot.py", line 3, in <module>
File "upyeasy/__init__.py", line 40, in main
File "upyeasy/init.py", line 223, in init
File "upyeasy/hal.py", line 318, in settime
File "upyeasy/hal.py", line 256, in getntptime
File "upyeasy/hal.py", line 248, in getntptime
IndexError: list index out of range
main.py: Hello
MicroPython v1.9.3-194-ga661b85-dirty on 2017-12-26; ESP32 module with ESP32
Type "help()" for more information.
... so to me, it looks like a problem with upyeasy/hal.py line 248, in getntptime
We're making progress, I think...
AndrewJ
Re: ESP32 boards
Posted: 27 Dec 2017, 18:37
by AndrewJ
Hmmm, I realised that for the last few tests today my wifi has been back to password protected. Presumably it still needs to be open, for the ESP32 to connect?
Anyway, I made it open again and rebooted the LOLIN32 LITE (still with the 2MB firmware). This time it got several steps further in the log, to the point where it has obtained an IP address, and is accessing plugins. Then it gets an error -- oh no, it's OSError 128 again!!
This is the log....
Code: Select all
2000-01-01T00:00:07.005 [debug] uPyEasy: Protocols: Load protocol domoticz_http
2000-01-01T00:00:07.005 [debug] uPyEasy: Protocols: Create protocol Record: domoticz_http
2000-01-01T00:00:07.005 [debug] uPyEasy: Protocols: Init protocol records, run async loop
2000-01-01T00:00:07.005 [debug] uPyEasy: Plugins: Load
2000-01-01T00:00:07.005 [debug] uPyEasy: Plugins: init plugin records
2000-01-01T00:00:08.005 [debug] uPyEasy: Plugins: Load frozen plugin switch
2000-01-01T00:00:08.005 [debug] uPyEasy: Plugin: switch contruction
2000-01-01T00:00:08.005 [debug] uPyEasy: Plugins: Create frozen plugin Record: switch
2000-01-01T00:00:08.005 [debug] uPyEasy: Plugins: Load frozen plugin ds18
2000-01-01T00:00:08.005 [debug] uPyEasy: Plugin: ds18 contruction
2000-01-01T00:00:08.005 [debug] uPyEasy: Plugins: Create frozen plugin Record: ds18
I (8898) wifi: pm start, type:0
2000-01-01T00:00:08.005 [debug] uPyEasy: Plugins: Init plugin records, run async loop
2000-01-01T00:00:08.005 [debug] uPyEasy: Utils: Sys hostname
2000-01-01T00:00:09.005 [debug] uPyEasy: Utils: uPyEasy Name
Set syslog hostname 0.0.0.0
reloaded sink syslog
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: Entering SetTime
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: Entering GetNtpTime
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: network Table
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: Using NTP Hostname: pool.ntp.org
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: TimeZome offset: 60
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: Received UTC NTP Time: 567709223
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: Timezone corrected NTP Time: 567712823
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: DST corrected NTP Time: 567712823
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: Received NTP Time: 567712823
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: StartTime: 567712823
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: SetTime: NO RTC!
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Main: Pre-loading home page
2000-01-01T00:00:10.005 [debug] uPyEasy-uPyEasy: Hal: get_ip_address esp32, ip: 192.168.1.18
2000-01-01T00:00:10.005 [debug] uPyEasy-uPyEasy: Main: uPyEasy Main Async Loop
* Running on http://192.168.1.18:80/
2000-01-01T00:00:10.005 [debug] uPyEasy-uPyEasy: Protocols: Async processing protocols
2000-01-01T00:00:10.005 [debug] uPyEasy-uPyEasy: Plugins: Async processing plugins
Traceback (most recent call last):
File "boot.py", line 3, in <module>
File "upyeasy/__init__.py", line 56, in main
File "picoweb/__init__.py", line 275, in run
File "uasyncio/core.py", line 138, in run_forever
File "uasyncio/core.py", line 97, in run_forever
File "uasyncio/__init__.py", line 249, in start_server
OSError: 128
main.py: Hello
MicroPython v1.9.3-194-ga661b85-dirty on 2017-12-26; ESP32 module with ESP32
Type "help()" for more information.
>>>
The line number is different this time around - line 249 of uasyncio/__init__.py
What is this line trying to do? I'm still unsure what OSError 128 means, even after some googling.
I hope you had an enjoyable Christmas.
Regards
AndrewJ
Re: ESP32 boards
Posted: 27 Dec 2017, 19:06
by AndrewJ
I remembered that (several messages earlier) you said that if I still got OSError 128, I could try
[/code]upyeasy.setwifi('<your ssid>', '<your ssid password>','', '',8000)[/code]
So I put the wifi back to password-protected, then did the above (at the REPL >>>), then rebooted on the RESET button. It got the furthest I have seen so far! But still ended with error 128!! Arggh!
Here's the full log after restart...
Code: Select all
pi@homeassistant:~/upyeasy_esp32/esptool-master $ screen /dev/ttyUSB0 115200,cs82000-01-01T00:00:05.005 [debug] uPyEasy: Protocols: Load
2000-01-01T00:00:05.005 [debug] uPyEasy: Protocols: Init protocol records
2000-01-01T00:00:05.005 [debug] uPyEasy: Protocols: Load protocol domoticz_mqtt
2000-01-01T00:00:05.005 [debug] uPyEasy: Protocols: Create protocol Record: domoticz_mqtt
2000-01-01T00:00:05.005 [debug] uPyEasy: Protocols: Load protocol domoticz_http
2000-01-01T00:00:05.005 [debug] uPyEasy: Protocols: Create protocol Record: domoticz_http
2000-01-01T00:00:06.005 [debug] uPyEasy: Protocols: Init protocol records, run async loop
2000-01-01T00:00:06.005 [debug] uPyEasy: Plugins: Load
2000-01-01T00:00:06.005 [debug] uPyEasy: Plugins: init plugin records
I (6788) wifi: pm start, type:0
2000-01-01T00:00:06.005 [debug] uPyEasy: Plugins: Load frozen plugin switch
2000-01-01T00:00:06.005 [debug] uPyEasy: Plugin: switch contruction
2000-01-01T00:00:06.005 [debug] uPyEasy: Plugins: Create frozen plugin Record: switch
2000-01-01T00:00:07.005 [debug] uPyEasy: Plugins: Load frozen plugin ds18
2000-01-01T00:00:07.005 [debug] uPyEasy: Plugin: ds18 contruction
2000-01-01T00:00:07.005 [debug] uPyEasy: Plugins: Create frozen plugin Record: ds18
2000-01-01T00:00:07.005 [debug] uPyEasy: Plugins: Init plugin records, run async loop
2000-01-01T00:00:07.005 [debug] uPyEasy: Utils: Sys hostname
2000-01-01T00:00:07.005 [debug] uPyEasy: Utils: uPyEasy Name
Set syslog hostname 0.0.0.0
reloaded sink syslog
2000-01-01T00:00:07.005 [debug] uPyEasy-uPyEasy: Hal: Entering SetTime
2000-01-01T00:00:07.005 [debug] uPyEasy-uPyEasy: Hal: Entering GetNtpTime
2000-01-01T00:00:07.005 [debug] uPyEasy-uPyEasy: Hal: network Table
2000-01-01T00:00:07.005 [debug] uPyEasy-uPyEasy: Hal: Using NTP Hostname: pool.ntp.org
2000-01-01T00:00:07.005 [debug] uPyEasy-uPyEasy: Hal: TimeZome offset: 60
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: NTP Time OSError exception: OSError(110,)
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: Received NTP Time: n.a.
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Main: Pre-loading home page
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Hal: get_ip_address esp32, ip: 192.168.1.18
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Main: uPyEasy Main Async Loop
* Running on http://192.168.1.18:80/
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Protocols: Async processing protocols
2000-01-01T00:00:09.005 [debug] uPyEasy-uPyEasy: Plugins: Async processing plugins
Traceback (most recent call last):
File "boot.py", line 3, in <module>
File "upyeasy/__init__.py", line 56, in main
File "picoweb/__init__.py", line 275, in run
File "uasyncio/core.py", line 138, in run_forever
File "uasyncio/core.py", line 97, in run_forever
File "uasyncio/__init__.py", line 249, in start_server
OSError: 128
main.py: Hello
MicroPython v1.9.3-194-ga661b85-dirty on 2017-12-26; ESP32 module with ESP32
Type "help()" for more information.
Then, while I was typing this and the ESP is still powered on, it produced this...
Code: Select all
>>> I (222298) wifi: n:11 0, o:11 2, ap:255 255, sta:11 0, prof:1
Hope this helps!
Re: ESP32 boards
Posted: 27 Dec 2017, 23:20
by LisaM
Hi Andrew,
The last line is the ESP32 wifi reporting, it's doing that from time to time.
I don't know what OSError 128 is, i've asked the same question to the dev team:
https://github.com/micropython/micropython/issues/3513
No answer yet...
Let's do a long shot, i have disabled the settime function because only there are sockets used. Maybe the GC (garbage collector) is still closing the socket the moment it's being used in line 249 ( which is still 's2, client_addr = s.accept()' since the library has been updated). So not using any socket maybe solves your problem. Attached the custom firmware.
Cheers,
Lisa
Ps. I2C is also working in this version.
Re: ESP32 boards
Posted: 28 Dec 2017, 09:52
by AndrewJ
Hi Lisa, thanks for the quick reply. I'll give this a try later today.
Good news about I2C.
Re: ESP32 boards
Posted: 28 Dec 2017, 13:37
by AndrewJ
LisaM wrote: ↑27 Dec 2017, 23:20
Hi Andrew,
The last line is the ESP32 wifi reporting, it's doing that from time to time.
I don't know what OSError 128 is, i've asked the same question to the dev team:
https://github.com/micropython/micropython/issues/3513
No answer yet...
Let's do a long shot, i have disabled the settime function because only there are sockets used. Maybe the GC (garbage collector) is still closing the socket the moment it's being used in line 249 ( which is still 's2, client_addr = s.accept()' since the library has been updated). So not using any socket maybe solves your problem. Attached the custom firmware.
Cheers,
Lisa
Ps. I2C is also working in this version.
I'm afraid that still has the OSError 128 at line 249 of usasyncio/__init__.py in start_server. This occurred a few seconds (5..10? sec) after the initial run of messages.
This is on the LOLIN32 LITE, with my wifi open.
Here is the full log...
Code: Select all
login as: pi
pi@192.168.1.12's password:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Dec 27 20:34:48 2017 from 192.168.1.4
pi@homeassistant:~ $
pi@homeassistant:~ $
pi@homeassistant:~ $ cd upyeasy_esp32
pi@homeassistant:~/upyeasy_esp32 $ ls
esptool-master esptool-master.zip webserver.py
pi@homeassistant:~/upyeasy_esp32 $ cd esptool-master
pi@homeassistant:~/upyeasy_esp32/esptool-master $ ls
CONTRIBUTING.md firmware201217.bin pyaes
ecdsa firmware261217.bin README.md
esp32-20171223-v1.9.3-216-gb8068895.bin firmware.bin setup.cfg
espefuse.py firmware.bin.alpha1 setup.py
espsecure.py flasher_stub test
esptool.py LICENSE upyeasy-esp32.bin
firmware191217.bin MANIFEST.in
pi@homeassistant:~/upyeasy_esp32/esptool-master $ python esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py v2.2-dev
Traceback (most recent call last):
File "esptool.py", line 2541, in <module>
_main()
File "esptool.py", line 2534, in _main
main()
File "esptool.py", line 2257, in main
esp = ESPLoader.detect_chip(args.port, initial_baud, args.before)
File "esptool.py", line 204, in detect_chip
detect_port = ESPLoader(port, baud)
File "esptool.py", line 178, in __init__
self._port = serial.serial_for_url(port)
File "/usr/local/lib/python2.7/dist-packages/serial/__init__.py", line 88, in serial_for_url
instance.open()
File "/usr/local/lib/python2.7/dist-packages/serial/serialposix.py", line 286, in open
self._update_dtr_state()
File "/usr/local/lib/python2.7/dist-packages/serial/serialposix.py", line 634, in _update_dtr_state
fcntl.ioctl(self.fd, TIOCMBIS, TIOCM_DTR_str)
IOError: [Errno 71] Protocol error
pi@homeassistant:~/upyeasy_esp32/esptool-master $
pi@homeassistant:~/upyeasy_esp32/esptool-master $
pi@homeassistant:~/upyeasy_esp32/esptool-master $
pi@homeassistant:~/upyeasy_esp32/esptool-master $ python esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py v2.2-dev
Connecting....
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 6.4s
Hard resetting...
pi@homeassistant:~/upyeasy_esp32/esptool-master $
pi@homeassistant:~/upyeasy_esp32/esptool-master $
pi@homeassistant:~/upyeasy_esp32/esptool-master $
pi@homeassistant:~/upyeasy_esp32/esptool-master $
pi@homeassistant:~/upyeasy_esp32/esptool-master $ python esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 firmware271217.bin
esptool.py v2.2-dev
Connecting....
Chip is ESP32D0WDQ6 (revision 1)
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0220
Compressed 1164800 bytes to 682220...
Wrote 1164800 bytes (682220 compressed) at 0x00001000 in 61.6 seconds (effective 151.2 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting...
pi@homeassistant:~/upyeasy_esp32/esptool-master $ screen /dev/ttyUSB0 115200,cs82000-01-01 00:00:11 [debug] uPyEasy: Plugins: Load
2000-01-01 00:00:11 [debug] uPyEasy: Plugins: init plugin records
2000-01-01 00:00:11 [debug] uPyEasy: Plugins: Load frozen plugin switch
2000-01-01 00:00:11 [debug] uPyEasy: Plugin: switch contruction
2000-01-01 00:00:11 [debug] uPyEasy: Plugins: Create frozen plugin Record: switch
2000-01-01 00:00:11 [debug] uPyEasy: Plugins: Load frozen plugin ds18
2000-01-01 00:00:11 [debug] uPyEasy: Plugin: ds18 contruction
2000-01-01 00:00:11 [debug] uPyEasy: Plugins: Create frozen plugin Record: ds18
2000-01-01 00:00:12 [debug] uPyEasy: Plugins: Init plugin records, run async loop
2000-01-01 00:00:12 [debug] uPyEasy: Utils: Sys hostname
2000-01-01 00:00:12 [debug] uPyEasy: Utils: uPyEasy Name
Set syslog hostname 0.0.0.0
reloaded sink syslog
2000-01-01 00:00:12 [debug] uPyEasy-uPyEasy: Hal: Entering SetTime
2000-01-01 00:00:12 [debug] uPyEasy-uPyEasy: Hal: Entering GetNtpTime
2000-01-01 00:00:12 [debug] uPyEasy-uPyEasy: Hal: network Table
2000-01-01 00:00:12 [debug] uPyEasy-uPyEasy: Hal: Using NTP Hostname: pool.ntp.org
2000-01-01 00:00:12 [debug] uPyEasy-uPyEasy: Hal: TimeZome offset: 60
I (13289) wifi: pm start, type:0
2000-01-01 00:00:13 [debug] uPyEasy-uPyEasy: Hal: NTP Time OSError exception: OSError(110,)
2000-01-01 00:00:13 [debug] uPyEasy-uPyEasy: Hal: Received NTP Time: n.a.
2000-01-01 00:00:13 [debug] uPyEasy-uPyEasy: Main: Pre-loading home page
2000-01-01 00:00:14 [debug] uPyEasy-uPyEasy: Hal: get_ip_address esp32, ip: 192.168.1.18
2000-01-01 00:00:14 [debug] uPyEasy-uPyEasy: Main: uPyEasy Main Async Loop
* Running on http://192.168.1.18:80/
2000-01-01 00:00:14 [debug] uPyEasy-uPyEasy: Protocols: Async processing protocols
2000-01-01 00:00:14 [debug] uPyEasy-uPyEasy: Plugins: Async processing plugins
Traceback (most recent call last):
File "boot.py", line 3, in <module>
File "upyeasy/__init__.py", line 56, in main
File "picoweb/__init__.py", line 275, in run
File "uasyncio/core.py", line 138, in run_forever
File "uasyncio/core.py", line 97, in run_forever
File "uasyncio/__init__.py", line 249, in start_server
OSError: 128
OSError: [Errno 2] ENOENT
MicroPython v1.9.3-194-ga661b85-dirty on 2017-12-27; ESP32 module with ESP32
Type "help()" for more information.
>>>
I notice that there is an error early on: IOError: [Errno 71] Protocol error
and another error reported a few lines before the end:
Code: Select all
2000-01-01 00:00:13 [debug] uPyEasy-uPyEasy: Hal: NTP Time OSError exception: OSError(110,)
but despite these, it successfully got an IP address (also shows in my router).
I hope this gives you something to go on. If you'd like me to try something else, let me know.
Cheers
AndrewJ
Re: ESP32 boards
Posted: 28 Dec 2017, 22:34
by kociubin
This is great! I'm able to run your special 2MB firmware on a doit.am v1 devkit ($7 on aliexpress).
So far, it's very encouraging. Please keep it up and let me know if I can help in any way.
BTW, is MQTT supposed to work? I tried pointing it at my MQTT server but there is no activity.
Re: ESP32 boards
Posted: 28 Dec 2017, 22:49
by LisaM
kociubin wrote: ↑28 Dec 2017, 22:34
This is great! I'm able to run your special 2MB firmware on a doit.am v1 devkit ($7 on aliexpress).
So far, it's very encouraging. Please keep it up and let me know if I can help in any way.
BTW, is MQTT supposed to work? I tried pointing it at my MQTT server but there is no activity.
Is the normal 4MB firmware from the first post also working?
MQTT should be working, at least Domoticz MQTT, are the settings correct (should the same as in ESPEasy). Is Domoticz HTTP working? Which plugin are you using?
Re: ESP32 boards
Posted: 29 Dec 2017, 00:01
by kociubin
LisaM wrote: ↑28 Dec 2017, 22:49
Is the normal 4MB firmware from the first post also working?
MQTT should be working, at least Domoticz MQTT, are the settings correct (should the same as in ESPEasy). Is Domoticz HTTP working? Which plugin are you using?
No. 4MB firmware is not working. I was getting bootloops like in post #4.
For MQTT I'm using the Domoticz MQTT plugin. I don't really have a Domoticz server--I have a standard mosquitto MQTT server with a username and password. I saw the Domoticz MQTT plugin work before with ESP8266 so I figured I'd give it a try here. I'm seeing messages like this:
Code: Select all
[debug] uPyEasy: Protocols: GetQueue controller myhomeserver.something.com-Domoticz MQTT-1
Re: ESP32 boards
Posted: 29 Dec 2017, 00:08
by CHK_BLN
Hi Lisa,
with me the firmware (upyeasy-esp32.zip) from the first post does not work either. (Hardware is a doit.am v1 devkit).
The adapted 2 MB version works.
When I set up an MQTT server on the controllers side and press SUBMIT, I get the message "Error: Connection interrupted" in the browser. If I call the controllers page again, the changes have been saved.
I could not test the MQTT function yet.
Best regards
Christof
Re: ESP32 boards
Posted: 29 Dec 2017, 00:14
by kociubin
Also, I tried testing the switch plugin with no success (still running the 2MB firmware). I tried GPIO12 and GPIO4 and they're never read. Nothing is output in the logs after I pull them to GND. I made sure I changed the delay to 10 seconds. I also tried setting them up as inputs on the Hardware tab but that doesn't help either.
Re: ESP32 boards
Posted: 29 Dec 2017, 00:35
by LisaM
kociubin wrote: ↑29 Dec 2017, 00:01
No. 4MB firmware is not working. I was getting bootloops like in post #4.
For MQTT I'm using the Domoticz MQTT plugin. I don't really have a Domoticz server--I have a standard mosquitto MQTT server with a username and password. I saw the Domoticz MQTT plugin work before with ESP8266 so I figured I'd give it a try here. I'm seeing messages like this:
Code: Select all
[debug] uPyEasy: Protocols: GetQueue controller myhomeserver.something.com-Domoticz MQTT-1
Ok, i'll switch to 2MB standard firmware then since more people have this issue.
The controller (using protocol mqtt) isn't sending anything unless a device has put a message in the controller queue, so you'll need to add a (switch?) device using the (mqtt) controller.
Re: ESP32 boards
Posted: 29 Dec 2017, 00:37
by LisaM
kociubin wrote: ↑29 Dec 2017, 00:14
Also, I tried testing the switch plugin with no success (still running the 2MB firmware). I tried GPIO12 and GPIO4 and they're never read. Nothing is output in the logs after I pull them to GND. I made sure I changed the delay to 10 seconds. I also tried setting them up as inputs on the Hardware tab but that doesn't help either.
I'll test GPIO12/4 also, i'll let you know if i can reproduce it.
Re: ESP32 boards
Posted: 29 Dec 2017, 00:50
by LisaM
AndrewJ wrote: ↑28 Dec 2017, 13:37
I hope this gives you something to go on. If you'd like me to try something else, let me know.
The only difference from your setup compared to other is the Wifi AP, which one (hw) are you using? Are you using WPA2 or Open? Is the webbrowser client in the same network?
The accept gives the error, meaning the accept errors out getting a connection/address pair. Are you using vpn or any other different way of connecting to the ESP32? (socket accept:
https://docs.micropython.org/en/latest/ ... ocket.html)
And it didn't happen when importing wstest (import wstest)? I've attached the source code, but it's also part of modules in your micropython firmware.
Re: ESP32 boards
Posted: 29 Dec 2017, 09:12
by budman1758
I hate to be "that guy"
but would you happen to have a windows flashing howto laying around anywhere? I'm not having much luck here....
Re: ESP32 boards
Posted: 29 Dec 2017, 10:10
by AndrewJ
LisaM wrote: ↑29 Dec 2017, 00:50
AndrewJ wrote: ↑28 Dec 2017, 13:37
I hope this gives you something to go on. If you'd like me to try something else, let me know.
The only difference from your setup compared to other is the Wifi AP, which one (hw) are you using? Are you using WPA2 or Open? Is the webbrowser client in the same network?
The accept gives the error, meaning the accept errors out getting a connection/address pair. Are you using vpn or any other different way of connecting to the ESP32? (socket accept:
https://docs.micropython.org/en/latest/ ... ocket.html)
And it didn't happen when importing wstest (import wstest)? I've attached the source code, but it's also part of modules in your micropython firmware.
Hi Lisa,
My recent tests have all been with the Wemos LOLIN32 LITE board, not the DOIT. (at the moment I've been leaving the DOIT just to keep things more simple) so that is one difference from the recent successes for @CHK_BLN and @kociubin if I understand correctly. (am I right in thinking that these are both with the DOIT devkit 1?)
My Wifi AP is a Huawei HG635. For the tests with ESP32 I've been switching off the security in the router interface to allow an Open connection by the ESP32. There's no VPN, The client computer where I'm trying to see the ESP32's web interface is on the same network, connected to the router by ethernet.
The router is working ok for the rest of my home network, including 3 ESP8266 Nodemcu's. But I do sometimes get the feeling that it gets overloaded, so one possibility is that the router responds too slowly for the ESP32 and it times out or something. However, yesterday it did establish an IP address before the error appeared, so maybe its some higher-level part of the connection which failed.
When I used wstest (which is a number of days ago now) it didn't give the OSError 128. You seem to be saying that wstest is included in the more recent firmware, e.g. the 2MB version? If so, I will try importing it again and see what happens.
Another test I can run is to use an old spare wireless router, with open wifi, and see if I can connect to it.
I'll let you know how it goes. It's really encouraging that others are getting a successful connection!
Re: ESP32 boards
Posted: 29 Dec 2017, 14:22
by LisaM
Hi Andrew,
I've upgraded the wstest program to upyeasy_wifi_test program, it's source code is attached. Also the firmware in post 1 is upgraded. Can you flash that version and after the error run: import upyeasy_wifi_test
Cheers,
Lisa
Re: ESP32 boards
Posted: 29 Dec 2017, 15:07
by AndrewJ
OK, thanks for that. I'll try it later and let you know how it goes.
Cheers
Andrew
Re: ESP32 boards
Posted: 29 Dec 2017, 15:56
by AndrewJ
LisaM wrote: ↑29 Dec 2017, 14:22
Hi Andrew,
I've upgraded the wstest program to upyeasy_wifi_test program, it's source code is attached. Also the firmware in post 1 is upgraded. Can you flash that version and after the error run: import upyeasy_wifi_test
Cheers,
Lisa
Hi Lisa,
I did that and again got the OSError 128 as before.
I then did import upyeasy_wifi_test
I got this...
Code: Select all
>>> import upyeasy_wifi_test
Starting uPyEasy Webserver test...
I (57239) network: event 1
SSID: TALKTALK65AFF2 Channel: 11 Strength: -28 Security type: 0
Trying to connect to AP: TALKTALK65AFF2
Bind address info: [(2, 1, 0, '0.0.0.0', ('0.0.0.0', 80))]
Listening, connect your browser to http://<this_host>:80/
This looks like it made the wifi connection to my AP (confirmed through the router interface, address is 192.168.1.18)
What I don't understand is the Bind address info, why is it showing '0.0.0.0' ?
I tried to connect my browser to 192.168.1.18:80 but after quite a long time it timed out with
Code: Select all
This site can’t be reached
192.168.1.18 took too long to respond.
I'm not sure what I should put for <this_host> in the Listening, etc line? Am I right by putting the IP address I see in my router?
Cheers
Andrew
Re: ESP32 boards
Posted: 29 Dec 2017, 16:13
by kociubin
LisaM wrote: ↑29 Dec 2017, 14:22
Hi Andrew,
I've upgraded the wstest program to upyeasy_wifi_test program, it's source code is attached. Also the firmware in post 1 is upgraded. Can you flash that version and after the error run: import upyeasy_wifi_test
Cheers,
Lisa
Working: The 12/29 version boots fine. It connects to WiFi. NTP works. I'm able to make configuration changes using the webUI.
Not Working: Not able to read any of the GPIOs using the switch plugin.
Let me know if I should be doing something special to get the switch plugin working.
Re: ESP32 boards
Posted: 29 Dec 2017, 16:35
by LisaM
kociubin wrote: ↑29 Dec 2017, 16:13
LisaM wrote: ↑29 Dec 2017, 14:22
Hi Andrew,
I've upgraded the wstest program to upyeasy_wifi_test program, it's source code is attached. Also the firmware in post 1 is upgraded. Can you flash that version and after the error run: import upyeasy_wifi_test
Cheers,
Lisa
Working: The 12/29 version boots fine. It connects to WiFi. NTP works. I'm able to make configuration changes using the webUI.
Not Working: Not able to read any of the GPIOs using the switch plugin.
Let me know if I should be doing something special to get the switch plugin working.
It's on my todo list, together with the BME280 running on I2C. I'll give it a look today, will let you know.
Re: ESP32 boards
Posted: 29 Dec 2017, 16:38
by LisaM
AndrewJ wrote: ↑29 Dec 2017, 15:56
I then did import upyeasy_wifi_test
I got this...
Code: Select all
>>> import upyeasy_wifi_test
Starting uPyEasy Webserver test...
I (57239) network: event 1
SSID: TALKTALK65AFF2 Channel: 11 Strength: -28 Security type: 0
Trying to connect to AP: TALKTALK65AFF2
Bind address info: [(2, 1, 0, '0.0.0.0', ('0.0.0.0', 80))]
Listening, connect your browser to http://<this_host>:80/
This looks like it made the wifi connection to my AP (confirmed through the router interface, address is 192.168.1.18)
What I don't understand is the Bind address info, why is it showing '0.0.0.0' ?
I tried to connect my browser to 192.168.1.18:80 but after quite a long time it timed out with
Code: Select all
This site can’t be reached
192.168.1.18 took too long to respond.
I'm not sure what I should put for <this_host> in the Listening, etc line? Am I right by putting the IP address I see in my router?
Cheers
Andrew
The 0.0.0.0 is the default IP-address, that should work. I'll upgrade the test program again to use the actual ip-address, will post it in post 1 in a few hours. I'll also build test program 2, to see if you make a connection with the outside world from the ESP32.
Re: ESP32 boards
Posted: 29 Dec 2017, 22:16
by LisaM
New firmware in post #1, includes upyeasy_wifi_test (wifi server test) and upyeasy_wifi_test2 (wifi client test). Both are using actual ip addresses.
Go ahead and try it out, sources are also attached.
Re: ESP32 boards
Posted: 29 Dec 2017, 22:20
by LisaM
budman1758 wrote: ↑29 Dec 2017, 09:12
I hate to be "that guy"
but would you happen to have a windows flashing howto laying around anywhere? I'm not having much luck here....
Windows? The esp-tool is the same, since it's python...
Install python on your windows pc, replace '/dev/ttyUSBx' with comX and you're done.
Re: ESP32 boards
Posted: 30 Dec 2017, 02:17
by kociubin
LisaM wrote: ↑29 Dec 2017, 22:20
budman1758 wrote: ↑29 Dec 2017, 09:12
I hate to be "that guy"
but would you happen to have a windows flashing howto laying around anywhere? I'm not having much luck here....
Windows? The esp-tool is the same, since it's python...
Install python on your windows pc, replace '/dev/ttyUSBx' with comX and you're done.
You may need to change the order of parameters on windows but it does work. Try something like this (replace COM5 with your number):
Code: Select all
esptool.py --port COM5 write_flash 0x1000 upyeasy-esp32.bin --compress
Re: ESP32 boards
Posted: 30 Dec 2017, 03:29
by budman1758
After installing Python I keep getting this error:
Code: Select all
import serial
ImportError: No module named serial
Did some research... Installed pyserial..... Same message
Have tried to reinstall pyserial several times and keep getting the message that it's already installed. Also rebooted with no change.
I am running pretty short on hair to pull out.
Expressif has a different Flash download tool on its website and I have used it b4 but not having much luck with this. Probably settings (of which there are LOTS) are not correct. I have tried a few different things but no luck so far. Has anyone had success with it?
Re: ESP32 boards
Posted: 30 Dec 2017, 14:56
by LisaM
budman1758 wrote: ↑30 Dec 2017, 03:29
After installing Python I keep getting this error:
Code: Select all
import serial
ImportError: No module named serial
Did some research... Installed pyserial..... Same message
Have tried to reinstall pyserial several times and keep getting the message that it's already installed. Also rebooted with no change.
I am running pretty short on hair to pull out.
Expressif has a different Flash download tool on its website and I have used it b4 but not having much luck with this. Probably settings (of which there are LOTS) are not correct. I have tried a few different things but no luck so far. Has anyone had success with it?
You need to provide us with a context if you want us to help you...
For example:
Code: Select all
PS C:\Users\Lisa> python
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> help('modules')
Please wait a moment while I gather a list of all available modules...
__future__ abc heapq select
_ast aifc hmac selectors
_asyncio antigravity html serial
_bisect argparse http setuptools
_blake2 array idlelib shelve
_bootlocale ast imaplib shlex
_bz2 asynchat imghdr shutil
_codecs asyncio imp signal
_codecs_cn asyncore importlib site
_codecs_hk atexit inspect six
_codecs_iso2022 audioop io smtpd
_codecs_jp base64 ipaddress smtplib
_codecs_kr bdb itertools sndhdr
_codecs_tw binascii json socket
_collections binhex keyword socketserver
_collections_abc bisect lib2to3 sqlite3
_compat_pickle builtins linecache sre_compile
_compression bz2 locale sre_constants
_csv cProfile logging sre_parse
_ctypes calendar lzma ssl
_ctypes_test cgi macpath stat
_datetime cgitb macurl2path statistics
_decimal chunk mailbox string
_dummy_thread cmath mailcap stringprep
_elementtree cmd marshal struct
_functools code math subprocess
_hashlib codecs mimetypes sunau
_heapq codeop mmap symbol
_imp collections modulefinder symtable
_io colorama mp sys
_json colorsys msilib sysconfig
_locale compileall msvcrt tabnanny
_lsprof concurrent multiprocessing tarfile
_lzma configparser netrc telnetlib
_markupbase contextlib nntplib tempfile
_md5 copy nt test
_msi copyreg ntpath textwrap
_multibytecodec crypt nturl2path this
_multiprocessing csv numbers threading
_opcode ctypes opcode time
_operator curses operator timeit
_osx_support datetime optparse tkinter
_overlapped dbm os token
_pickle decimal parser tokenize
_pydecimal difflib pathlib trace
_pyio dis pdb traceback
_random distutils pickle tracemalloc
_sha1 doctest pickletools tty
_sha256 dummy_threading pip turtle
_sha3 easy_install pipes turtledemo
_sha512 ecdsa pkg_resources types
_signal email pkgutil typing
_sitebuiltins encodings platform unicodedata
_socket ensurepip plistlib unittest
_sqlite3 enum poplib urllib
_sre errno posixpath uu
_ssl espefuse pprint uuid
_stat espsecure profile venv
_string esptool pstats warnings
_strptime faulthandler pty wave
_struct filecmp py_compile weakref
_symtable fileinput pyaes webbrowser
_testbuffer fnmatch pyclbr websocket
_testcapi formatter pydoc winreg
_testconsole fractions pydoc_data winsound
_testimportmultiple ftplib pyexpat wsgiref
_testmultiphase functools queue xdrlib
_thread gc quopri xml
_threading_local genericpath random xmlrpc
_tkinter getopt re xxsubtype
_tracemalloc getpass reprlib zipapp
_warnings gettext rlcompleter zipfile
_weakref glob runpy zipimport
_weakrefset gzip sched zlib
_winapi hashlib secrets
Enter any module name to get more help. Or, type "modules spam" to search
for modules whose name or summary contain the string "spam".
>>> help('modules serial')
Here is a list of modules whose name or summary contains 'serial'.
If there are any, enter a module name to get more help.
pickle - Create portable serialized representations of Python objects.
mp.conserial
pip._vendor.cachecontrol.serialize
pip._vendor.html5lib.serializer
serial
serial.aio - Support asyncio with serial ports. EXPERIMENTAL
serial.rfc2217
serial.rs485 - The settings for RS485 are stored in a dedicated object that can be applied to
serial.serialcli
serial.serialjava
serial.serialposix
serial.serialutil
serial.serialwin32
serial.threaded - Support threading with serial ports.
serial.tools
serial.tools.hexlify_codec - Python 'hex' Codec - 2-digit hex with spaces content transfer encoding.
serial.tools.list_ports - This module will provide a function called comports that returns an
serial.tools.list_ports_common
serial.tools.list_ports_linux
serial.tools.list_ports_osx
serial.tools.list_ports_posix - The ``comports`` function is expected to return an iterable that yields tuples
serial.tools.list_ports_windows
serial.tools.miniterm
serial.urlhandler
serial.urlhandler.protocol_alt
serial.urlhandler.protocol_hwgrep
serial.urlhandler.protocol_loop
serial.urlhandler.protocol_rfc2217
serial.urlhandler.protocol_serve-rfc2217
serial.urlhandler.protocol_socket
serial.urlhandler.protocol_spy
serial.win32
>>>
You can see serial is part of the modules, is that true for you also?
Re: ESP32 boards
Posted: 30 Dec 2017, 15:11
by kociubin
budman1758 wrote: ↑30 Dec 2017, 03:29
After installing Python I keep getting this error:
Code: Select all
import serial
ImportError: No module named serial
Did some research... Installed pyserial..... Same message
Have tried to reinstall pyserial several times and keep getting the message that it's already installed. Also rebooted with no change.
I am running pretty short on hair to pull out.
Expressif has a different Flash download tool on its website and I have used it b4 but not having much luck with this. Probably settings (of which there are LOTS) are not correct. I have tried a few different things but no luck so far. Has anyone had success with it?
Make sure you're installing pyserial into the same instance of python that you're using to run the flash tool.
Re: ESP32 boards
Posted: 30 Dec 2017, 18:23
by AndrewJ
LisaM wrote: ↑29 Dec 2017, 22:16
New firmware in post #1, includes upyeasy_wifi_test (wifi server test) and upyeasy_wifi_test2 (wifi client test). Both are using actual ip addresses.
Go ahead and try it out, sources are also attached.
Hi Lisa,
I tried this on my LOLIN32 LITE board. First I erased, then flashed the latest version of upyeasy_esp32. Got the OSError 128 as before. This is the log.
First it looks good...
Code: Select all
Chip is ESP32D0WDQ6 (revision 1)
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0220
Compressed 1166064 bytes to 682170...
Wrote 1166064 bytes (682170 compressed) at 0x00001000 in 61.6 seconds (effective 151.3 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting...
pi@homeassistant:~/upyeasy_esp32/esptool-master291217 $ #restarted ESP using on-board RESET button
pi@homeassistant:~/upyeasy_esp32/esptool-master291217 $
pi@homeassistant:~/upyeasy_esp32/esptool-master291217 $ screen /dev/ttyUSB0 115200,cs8
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: Entering SetTime
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: Entering GetNtpTime
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: network Table
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: Using NTP Hostname: pool.ntp.org
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: TimeZome offset: 60
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: Received UTC NTP Time: 567968095
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: Timezone corrected NTP Time: 567971695
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: DST corrected NTP Time: 567971695
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: Received NTP Time: 567971695
2017-12-30 17:55:04 [debug] uPyEasy-uPyEasy: Hal: StartTime: 567971695
2017-12-30 17:55:04 [debug] uPyEasy-uPyEasy: Hal: SetTime: NO RTC!
2017-12-30 17:55:04 [debug] uPyEasy-uPyEasy: Main: Pre-loading home page
2017-12-30 17:55:04 [debug] uPyEasy-uPyEasy: Hal: get_ip_address esp32, ip: 192.168.1.18
2017-12-30 17:55:05 [debug] uPyEasy-uPyEasy: Main: uPyEasy Main Async Loop
* Running on http://192.168.1.18:80/
2017-12-30 17:55:05 [debug] uPyEasy-uPyEasy: Protocols: Async processing protocols
2017-12-30 17:55:05 [debug] uPyEasy-uPyEasy: Plugins: Async processing plugins
but then comes my old friend, the OSError 128...
Code: Select all
Traceback (most recent call last):
File "boot.py", line 3, in <module>
File "upyeasy/__init__.py", line 56, in main
File "picoweb/__init__.py", line 275, in run
File "uasyncio/core.py", line 138, in run_forever
File "uasyncio/core.py", line 97, in run_forever
File "uasyncio/__init__.py", line 249, in start_server
OSError: 128
OSError: [Errno 2] ENOENT
MicroPython v1.9.3-194-ga661b85-dirty on 2017-12-29; ESP32 module with ESP32
Type "help()" for more information.
>>>
(I'm assuming the second error, ENOENT, is still the one about "missing main.py"?)
Then I imported upyeasy_wifi_test, and get this....
Code: Select all
>>> import upyeasy_wifi_test
Starting uPyEasy Webserver test...
I (553858) network: event 1
SSID: TALKTALK65AFF2 Channel: 11 Strength: -33 Security type: 0
Trying to connect to AP: TALKTALK65AFF2
Bind address info: [(2, 1, 0, '192.168.1.18', ('192.168.1.18', 80))]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "upyeasy_wifi_test.py", line 75, in <module>
File "upyeasy_wifi_test.py", line 52, in main
OSError: [Errno 12] ENOMEM
>>>
So, it has seen my wifi and obtained an IP-address, but then hit OSError 12 ENOMEM.
I googled this error and found this, relating to ESP8266, but not sure whether this is what is happening now:
https://github.com/micropython/micropython/issues/1897
My router is seeing the ESP32 at 192.168.1.18, so that bit has worked. I tried to connect to this ip on port 80 from my browser (after the above error) but (perhaps not surprisingly) it timed out. Interestingly, I can ping it and it responds.
I'd be glad of any comments or suggestions, please?
p.s. I didn't (yet) try the second test, I thought it best to take one step at a time.
pps. All the above is on my LOLIN32 LITE ESP board. I'm still leaving the DOIT devkit for later, mainly because it has the Revision 0 ESP chip rather than Revision 1.
Re: ESP32 boards
Posted: 30 Dec 2017, 19:16
by LisaM
Andrew, the nomem error is due to lack of memory. Just reboot and press ctrl-c somewhere at the NTP debug messages. Then try test program.
Re: ESP32 boards
Posted: 30 Dec 2017, 21:23
by AndrewJ
LisaM wrote: ↑30 Dec 2017, 19:16
Andrew, the nomem error is due to lack of memory. Just reboot and press ctrl-c somewhere at the NTP debug messages. Then try test program.
Hi Lisa,
Thanks for that. I just want to be sure I understand step-by-step what you are suggesting. Is it this ?...
1. From freshly flashed condition, restart the ESP32. (does this need to be by pulling the USB plug, or is pressing the reset button ok?)
2. When the debug messages get to NTP debug or there abouts, do I reboot again ?? (USB plug? reset button?)
3. Immediately press ctrl-c
4. not sure quite what will happen next
5. type in import upyeasy_wifi_test at the REPL prompt and see what happens
Hope I've got this right, but please correct where necessary. Sorry if I'm missing something obvious - it's all a bit new!
Cheers
Andrew
Re: ESP32 boards
Posted: 30 Dec 2017, 21:42
by LisaM
AndrewJ wrote: ↑30 Dec 2017, 21:23
LisaM wrote: ↑30 Dec 2017, 19:16
Andrew, the nomem error is due to lack of memory. Just reboot and press ctrl-c somewhere at the NTP debug messages. Then try test program.
Hi Lisa,
Thanks for that. I just want to be sure I understand step-by-step what you are suggesting. Is it this ?...
1. From freshly flashed condition, restart the ESP32. (does this need to be by pulling the USB plug, or is pressing the reset button ok?)
2. When the debug messages get to NTP debug or there abouts, do I reboot again ?? (USB plug? reset button?)
3. Immediately press ctrl-c
4. not sure quite what will happen next
5. type in import upyeasy_wifi_test at the REPL prompt and see what happens
Hope I've got this right, but please correct where necessary. Sorry if I'm missing something obvious - it's all a bit new!
Cheers
Andrew
Pressing reset button is enough, then press ctrl-c as soon as you see upyeasy debug messages. uPyEasy aborts and returns to the repl prompt. Type import upyeasy_wifi_test and see what happens.
Re: ESP32 boards
Posted: 30 Dec 2017, 22:00
by AndrewJ
LisaM wrote: ↑30 Dec 2017, 21:42
AndrewJ wrote: ↑30 Dec 2017, 21:23
LisaM wrote: ↑30 Dec 2017, 19:16
Andrew, the nomem error is due to lack of memory. Just reboot and press ctrl-c somewhere at the NTP debug messages. Then try test program.
Hi Lisa,
Thanks for that. I just want to be sure I understand step-by-step what you are suggesting. Is it this ?...
1. From freshly flashed condition, restart the ESP32. (does this need to be by pulling the USB plug, or is pressing the reset button ok?)
2. When the debug messages get to NTP debug or there abouts, do I reboot again ?? (USB plug? reset button?)
3. Immediately press ctrl-c
4. not sure quite what will happen next
5. type in import upyeasy_wifi_test at the REPL prompt and see what happens
Hope I've got this right, but please correct where necessary. Sorry if I'm missing something obvious - it's all a bit new!
Cheers
Andrew
Pressing reset button is enough, then press ctrl-c as soon as you see upyeasy debug messages. uPyEasy aborts and returns to the repl prompt. Type import upyeasy_wifi_test and see what happens.
OK, thks for clarification. I did that, I'm still not sure if I pressed ctrl-c at the right point. Anyway, this is the output I got...
Code: Select all
I (5908) wifi: state: auth -> assoc (0)
I (5918) wifi: state: assoc -> run (10)
I (5918) wifi: connected with TALKTALK65AFF2, channel 11
I (5918) network: event 4
I (6728) event: sta ip: 192.168.1.9, mask: 255.255.255.0, gw: 192.168.1.1
I (6728) network: GOT_IP
2000-01-01 00:00:06 [debug] uPyEasy: Hal: esp32, ip: 192.168.1.9
2000-01-01 00:00:06 [debug] uPyEasy: Hal: nic present
2000-01-01 00:00:06 [debug] uPyEasy: Protocols: Load
2000-01-01 00:00:06 [debug] uPyEasy: Protocols: Init protocol records
2000-01-01 00:00:07 [debug] uPyEasy: Protocols: Load protocol domoticz_mqtt
2000-01-01 00:00:07 [debug] uPyEasy: Protocols: Create protocol Record: domoticz_mqtt
2000-01-01 00:00:07 [debug] uPyEasy: Protocols: Load protocol domoticz_http
2000-01-01 00:00:07 [debug] uPyEasy: Protocols: Create protocol Record: domoticz_http
2000-01-01 00:00:07 [debug] uPyEasy: Protocols: Init protocol records, run async loop
2000-01-01 00:00:07 [debug] uPyEasy: Plugins: Load
2000-01-01 00:00:07 [debug] uPyEasy: Plugins: init plugin records
2000-01-01 00:00:08 [debug] uPyEasy: Plugins: Load frozen plugin switch
2000-01-01 00:00:08 [debug] uPyEasy: Plugin: switch contruction
2000-01-01 00:00:08 [debug] uPyEasy: Plugins: Create frozen plugin Record: switch
2000-01-01 00:00:08 [debug] uPyEasy: Plugins: Load frozen plugin ds18
2000-01-01 00:00:08 [debug] uPyEasy: Plugin: ds18 contruction
2000-01-01 00:00:08 [debug] uPyEasy: Plugins: Create frozen plugin Record: ds18
I (8948) wifi: pm start, type:0
2000-01-01 00:00:08 [debug] uPyEasy: Plugins: Init plugin records, run async loop
2000-01-01 00:00:08 [debug] uPyEasy: Utils: Sys hostname
2000-01-01 00:00:09 [debug] uPyEasy: Utils: uPyEasy Name
Set syslog hostname 0.0.0.0
reloaded sink syslog
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: Entering SetTime
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: Entering GetNtpTime
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: network Table
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: Using NTP Hostname: pool.ntp.org
2000-01-01 00:00:09 [debug] uPyEasy-uPyEasy: Hal: TimeZome offset: 60
Traceback (most recent call last):
File "boot.py", line 3, in <module>
File "upyeasy/__init__.py", line 40, in main
File "upyeasy/init.py", line 224, in init
File "upyeasy/hal.py", line 334, in settime
File "upyeasy/hal.py", line 272, in getntptime
File "upyeasy/hal.py", line 268, in getntptime
KeyboardInterrupt:
OSError: [Errno 2] ENOENT
MicroPython v1.9.3-194-ga661b85-dirty on 2017-12-29; ESP32 module with ESP32
Type "help()" for more information.
>>>
>>> import upyeasy_wifi_test
Starting uPyEasy Webserver test...
I (32758) network: event 1
SSID: TALKTALK65AFF2 Channel: 11 Strength: -28 Security type: 0
Trying to connect to AP: TALKTALK65AFF2
Bind address info: [(2, 1, 0, '192.168.1.9', ('192.168.1.9', 80))]
Listening, connect your browser to http://<this_host>:80/
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "upyeasy_wifi_test.py", line 75, in <module>
File "upyeasy_wifi_test.py", line 57, in main
OSError: 128
>>>
Re: ESP32 boards
Posted: 31 Dec 2017, 01:06
by budman1758
LisaM wrote: ↑30 Dec 2017, 14:56
You need to provide us with a context if you want us to help you...
For example:
Code: Select all
PS C:\Users\Lisa> python
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> help('modules')
Please wait a moment while I gather a list of all available modules...
__future__ abc heapq select
_ast aifc hmac selectors
_asyncio antigravity html serial
_bisect argparse http setuptools
_blake2 array idlelib shelve
_bootlocale ast imaplib shlex
_bz2 asynchat imghdr shutil
_codecs asyncio imp signal
_codecs_cn asyncore importlib site
_codecs_hk atexit inspect six
_codecs_iso2022 audioop io smtpd
_codecs_jp base64 ipaddress smtplib
_codecs_kr bdb itertools sndhdr
_codecs_tw binascii json socket
_collections binhex keyword socketserver
_collections_abc bisect lib2to3 sqlite3
_compat_pickle builtins linecache sre_compile
_compression bz2 locale sre_constants
_csv cProfile logging sre_parse
_ctypes calendar lzma ssl
_ctypes_test cgi macpath stat
_datetime cgitb macurl2path statistics
_decimal chunk mailbox string
_dummy_thread cmath mailcap stringprep
_elementtree cmd marshal struct
_functools code math subprocess
_hashlib codecs mimetypes sunau
_heapq codeop mmap symbol
_imp collections modulefinder symtable
_io colorama mp sys
_json colorsys msilib sysconfig
_locale compileall msvcrt tabnanny
_lsprof concurrent multiprocessing tarfile
_lzma configparser netrc telnetlib
_markupbase contextlib nntplib tempfile
_md5 copy nt test
_msi copyreg ntpath textwrap
_multibytecodec crypt nturl2path this
_multiprocessing csv numbers threading
_opcode ctypes opcode time
_operator curses operator timeit
_osx_support datetime optparse tkinter
_overlapped dbm os token
_pickle decimal parser tokenize
_pydecimal difflib pathlib trace
_pyio dis pdb traceback
_random distutils pickle tracemalloc
_sha1 doctest pickletools tty
_sha256 dummy_threading pip turtle
_sha3 easy_install pipes turtledemo
_sha512 ecdsa pkg_resources types
_signal email pkgutil typing
_sitebuiltins encodings platform unicodedata
_socket ensurepip plistlib unittest
_sqlite3 enum poplib urllib
_sre errno posixpath uu
_ssl espefuse pprint uuid
_stat espsecure profile venv
_string esptool pstats warnings
_strptime faulthandler pty wave
_struct filecmp py_compile weakref
_symtable fileinput pyaes webbrowser
_testbuffer fnmatch pyclbr websocket
_testcapi formatter pydoc winreg
_testconsole fractions pydoc_data winsound
_testimportmultiple ftplib pyexpat wsgiref
_testmultiphase functools queue xdrlib
_thread gc quopri xml
_threading_local genericpath random xmlrpc
_tkinter getopt re xxsubtype
_tracemalloc getpass reprlib zipapp
_warnings gettext rlcompleter zipfile
_weakref glob runpy zipimport
_weakrefset gzip sched zlib
_winapi hashlib secrets
Enter any module name to get more help. Or, type "modules spam" to search
for modules whose name or summary contain the string "spam".
>>> help('modules serial')
Here is a list of modules whose name or summary contains 'serial'.
If there are any, enter a module name to get more help.
pickle - Create portable serialized representations of Python objects.
mp.conserial
pip._vendor.cachecontrol.serialize
pip._vendor.html5lib.serializer
serial
serial.aio - Support asyncio with serial ports. EXPERIMENTAL
serial.rfc2217
serial.rs485 - The settings for RS485 are stored in a dedicated object that can be applied to
serial.serialcli
serial.serialjava
serial.serialposix
serial.serialutil
serial.serialwin32
serial.threaded - Support threading with serial ports.
serial.tools
serial.tools.hexlify_codec - Python 'hex' Codec - 2-digit hex with spaces content transfer encoding.
serial.tools.list_ports - This module will provide a function called comports that returns an
serial.tools.list_ports_common
serial.tools.list_ports_linux
serial.tools.list_ports_osx
serial.tools.list_ports_posix - The ``comports`` function is expected to return an iterable that yields tuples
serial.tools.list_ports_windows
serial.tools.miniterm
serial.urlhandler
serial.urlhandler.protocol_alt
serial.urlhandler.protocol_hwgrep
serial.urlhandler.protocol_loop
serial.urlhandler.protocol_rfc2217
serial.urlhandler.protocol_serve-rfc2217
serial.urlhandler.protocol_socket
serial.urlhandler.protocol_spy
serial.win32
>>>
You can see serial is part of the modules, is that true for you also?
Here is the output I get with those commands. Looks exactly the same.
Code: Select all
C:\>python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> help('modules')
Please wait a moment while I gather a list of all available modules...
__future__ _weakref heapq select
_ast _weakrefset hmac selectors
_asyncio _winapi html serial <<<<<<
_bisect abc http setuptools
_blake2 aifc idlelib shelve
_bootlocale antigravity imaplib shlex
_bz2 argparse imghdr shutil
_codecs array imp signal
_codecs_cn ast importlib site
_codecs_hk asynchat inspect smtpd
_codecs_iso2022 asyncio io smtplib
_codecs_jp asyncore ipaddress sndhdr
_codecs_kr atexit itertools socket
_codecs_tw audioop json socketserver
_collections base64 keyword sqlite3
_collections_abc bdb lib2to3 sre_compile
_compat_pickle binascii linecache sre_constants
_compression binhex locale sre_parse
_csv bisect logging ssl
_ctypes builtins lzma stat
_ctypes_test bz2 macpath statistics
_datetime cProfile macurl2path string
_decimal calendar mailbox stringprep
_dummy_thread cgi mailcap struct
_elementtree cgitb marshal subprocess
_findvs chunk math sunau
_functools cmath mimetypes symbol
_hashlib cmd mmap symtable
_heapq code modulefinder sys
_imp codecs msilib sysconfig
_io codeop msvcrt tabnanny
_json collections multiprocessing tarfile
_locale colorsys netrc telnetlib
_lsprof compileall nntplib tempfile
_lzma concurrent nt test
_markupbase configparser ntpath textwrap
_md5 contextlib nturl2path this
_msi copy numbers threading
_multibytecodec copyreg opcode time
_multiprocessing crypt operator timeit
_opcode csv optparse tkinter
_operator ctypes os token
_osx_support curses parser tokenize
_overlapped datetime pathlib trace
_pickle dbm pdb traceback
_pydecimal decimal pickle tracemalloc
_pyio difflib pickletools tty
_random dis pip turtle
_sha1 distutils pipes turtledemo
_sha256 doctest pkg_resources types
_sha3 dummy_threading pkgutil typing
_sha512 easy_install platform unicodedata
_signal email plistlib unittest
_sitebuiltins encodings poplib urllib
_socket ensurepip posixpath uu
_sqlite3 enum pprint uuid
_sre errno profile venv
_ssl faulthandler pstats warnings
_stat filecmp pty wave
_string fileinput py_compile weakref
_strptime fnmatch pyclbr webbrowser
_struct formatter pydoc winreg
_symtable fractions pydoc_data winsound
_testbuffer ftplib pyexpat wsgiref
_testcapi functools queue xdrlib
_testconsole gc quopri xml
_testimportmultiple genericpath random xmlrpc
_testmultiphase getopt re xxsubtype
_thread getpass reprlib zipapp
_threading_local gettext rlcompleter zipfile
_tkinter glob runpy zipimport
_tracemalloc gzip sched zlib
_warnings hashlib secrets
Enter any module name to get more help. Or, type "modules spam" to search
for modules whose name or summary contain the string "spam".
>>> help('modules serial')
Here is a list of modules whose name or summary contains 'serial'.
If there are any, enter a module name to get more help.
pickle - Create portable serialized representations of Python objects.
pip._vendor.cachecontrol.serialize
pip._vendor.html5lib.serializer
serial
serial.aio - Support asyncio with serial ports. EXPERIMENTAL
serial.rfc2217
serial.rs485 - The settings for RS485 are stored in a dedicated object that can be applied to
serial.serialcli
serial.serialjava
serial.serialposix
serial.serialutil
serial.serialwin32
serial.threaded - Support threading with serial ports.
serial.tools
serial.tools.hexlify_codec - Python 'hex' Codec - 2-digit hex with spaces content transfer encoding.
serial.tools.list_ports - This module will provide a function called comports that returns an
serial.tools.list_ports_common
serial.tools.list_ports_linux
serial.tools.list_ports_osx
serial.tools.list_ports_posix - The ``comports`` function is expected to return an iterable that yields tuples
serial.tools.list_ports_windows
serial.tools.miniterm
serial.urlhandler
serial.urlhandler.protocol_alt
serial.urlhandler.protocol_hwgrep
serial.urlhandler.protocol_loop
serial.urlhandler.protocol_rfc2217
serial.urlhandler.protocol_serve-rfc2217
serial.urlhandler.protocol_socket
serial.urlhandler.protocol_spy
serial.win32
>>>
kociubin wrote: ↑30 Dec 2017, 15:11
Make sure you're installing pyserial into the same instance of python that you're using to run the flash tool.
As far as I know there is only one instance of Python installed. I used the latest version Windows installer and used PIP to install pyserial. Still getting the same error.
I have no idea why or where to go from here.
Re: ESP32 boards
Posted: 31 Dec 2017, 02:22
by LisaM
AndrewJ wrote: ↑30 Dec 2017, 22:00
>>> import upyeasy_wifi_test
Starting uPyEasy Webserver test...
I (32758) network: event 1
SSID: TALKTALK65AFF2 Channel: 11 Strength: -28 Security type: 0
Trying to connect to AP: TALKTALK65AFF2
Bind address info: [(2, 1, 0, '192.168.1.9', ('192.168.1.9', 80))]
Listening, connect your browser to http://<this_host>:80/
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "upyeasy_wifi_test.py", line 75, in <module>
File "upyeasy_wifi_test.py", line 57, in main
OSError: 128
>>>
Identical error at this point in the test script: sock, addr = s.accept()
So it's not upyeasy that is causing it... Searching for a solution...
You have the source code, experiment?
I'm waiting for my Lolin32 Pro to reproduce.
Re: ESP32 boards
Posted: 02 Jan 2018, 20:50
by AndrewJ
LisaM wrote: ↑31 Dec 2017, 02:22
Identical error at this point in the test script: sock, addr = s.accept()
So it's not upyeasy that is causing it... Searching for a solution...
You have the source code, experiment?
I'm waiting for my Lolin32 Pro to reproduce.
Hi Lisa,
OK, tried a few things and made some progress.
Short version:
I kept thinking that the problem must be something about my network etc.
So I made a modified version of upyeasy_wifi_test, with port number 8000, tried this but still not connecting.
Changed to port 9000 and it works! As did 9080.
- Capture.PNG (5.76 KiB) Viewed 98453 times
The above was using the LOLIN32 LITE board. I still haven't tried with the DOIT devkit v1 (revision 0 chip) (that's next!).
I tried to find a way to change the port number in upyeasy_esp32, but I think it is all frozen code (is that the right term?) anyway I couldn't do this.
I know you have a lot happening, but if/when you have a bit of time, could you please produce a modified version of upyeasy_esp32 firmware for port 9000 for me to try? - I think it will probably work.
The ideal might be to have a user-specified port number, with 80 as default. Alternatively, are you open to sharing the source code so I could try to change it myself?
I still don't know why port 80 doesn't work. I looked for things like port forwarding as possible causes, but didn't find anything obvious. I do know that 8000 is used by Grafana, on a different IP-address, so maybe that is why that one didn't work when I tried.
With best wishes for the New Year!
AndrewJ
p.s. I have ordered a Lolin32 Pro.
EDIT: I noticed that my browser had managed to connect to the ESP32 for a few seconds before the OSError 128 kicked in. So I rebooted with the browser ready and managed to get to the
Config page. There I found a field for the Port number, put in 9000 and clicked Submit. It's now running stable!!! (So no need for a modified version
)
Thank you so much.
All screens appear to be basically working at first sight. I'll test it out further and let you know if I find any issues.
Re: ESP32 boards
Posted: 02 Jan 2018, 23:02
by LisaM
AndrewJ wrote: ↑02 Jan 2018, 20:50
LisaM wrote: ↑31 Dec 2017, 02:22
Identical error at this point in the test script: sock, addr = s.accept()
So it's not upyeasy that is causing it... Searching for a solution...
You have the source code, experiment?
I'm waiting for my Lolin32 Pro to reproduce.
Hi Lisa,
OK, tried a few things and made some progress.
Short version:
I kept thinking that the problem must be something about my network etc.
So I made a modified version of upyeasy_wifi_test, with port number 8000, tried this but still not connecting.
Changed to port 9000 and it works! As did 9080.
Capture.PNG
The above was using the LOLIN32 LITE board. I still haven't tried with the DOIT devkit v1 (revision 0 chip) (that's next!).
I tried to find a way to change the port number in upyeasy_esp32, but I think it is all frozen code (is that the right term?) anyway I couldn't do this.
I know you have a lot happening, but if/when you have a bit of time, could you please produce a modified version of upyeasy_esp32 firmware for port 9000 for me to try? - I think it will probably work.
The ideal might be to have a user-specified port number, with 80 as default. Alternatively, are you open to sharing the source code so I could try to change it myself?
I still don't know why port 80 doesn't work. I looked for things like port forwarding as possible causes, but didn't find anything obvious. I do know that 8000 is used by Grafana, on a different IP-address, so maybe that is why that one didn't work when I tried.
With best wishes for the New Year!
AndrewJ
p.s. I have ordered a Lolin32 Pro.
EDIT: I noticed that my browser had managed to connect to the ESP32 for a few seconds before the OSError 128 kicked in. So I rebooted with the browser ready and managed to get to the
Config page. There I found a field for the Port number, put in 9000 and clicked Submit. It's now running stable!!! (So no need for a modified version
)
Thank you so much.
All screens appear to be basically working at first sight. I'll test it out further and let you know if I find any issues.
Hi Andrew,
Good news! Good work for finding out that ports above 8000 work.
Recently i've put a port extension in the setwifi command, the function now is:
Code: Select all
def setwifi(ssid,key,ssid2='',key2='', port=80):
Meaning that you can add the port in the end, or not, so it defaults to 80 but can be anything. I suspect port 8080 will also work.
Re: ESP32 boards
Posted: 03 Jan 2018, 21:19
by AndrewJ
Hi Lisa,
I tried port 8080, but it didn't work for me, it went back to OSError 128. So I have settled on 9000, I put it in via the web interface in the short time before the error. Now running stable on my Wemos LOLIN32 LITE as I mentioned.
Today I tried the DOIT Devkit v1. I had a lot of trouble at first, which I eventually realised was (still) due to a poor/intermitent connection at the mini USB socket of the board. Eventually I changed to a brand new cable, which fits much more snugly, and managed to flash and run it successfully. I used the same trick of quickly changing the port in the Config page to 9000, and it is now running!
I'm looking forward to trying new versions when you have some time available! Meanwhile I'll let you know any feedback I have about the Alpha version.
Thanks for all your hard work on this!
Andrew
Re: ESP32 boards
Posted: 03 Jan 2018, 23:45
by LisaM
AndrewJ wrote: ↑03 Jan 2018, 21:19
Hi Lisa,
I tried port 8080, but it didn't work for me, it went back to OSError 128. So I have settled on 9000, I put it in via the web interface in the short time before the error. Now running stable on my Wemos LOLIN32 LITE as I mentioned.
Today I tried the DOIT Devkit v1. I had a lot of trouble at first, which I eventually realised was (still) due to a poor/intermitent connection at the mini USB socket of the board. Eventually I changed to a brand new cable, which fits much more snugly, and managed to flash and run it successfully. I used the same trick of quickly changing the port in the Config page to 9000, and it is now running!
I'm looking forward to trying new versions when you have some time available! Meanwhile I'll let you know any feedback I have about the Alpha version.
Thanks for all your hard work on this!
Andrew
Feedback is good, i love it...
Soon you will all be able to tinker with it, the letscontrolit uPyEasy github repository is already in place. Getting ready for beta-1.
Re: ESP32 boards
Posted: 05 Jan 2018, 22:27
by LisaM
Version: v53
Fixed:
- Time on ESP32
- Switch plugin
Added:
- I2C
- BME280 sensor
Database changes:
- None
Re: ESP32 boards
Posted: 06 Jan 2018, 09:49
by AndrewJ
Thanks Lisa I'll give it a try.
Re: ESP32 boards
Posted: 06 Jan 2018, 12:19
by Drum
Just checked the espressif site to see if they have anything new and saw this
http://espressif.com/en/media_overview/ ... ntest-2018
Looks like a new dev board and esp32 chip I have not seen yet. Of course the oppertunity to get a dev board free is a nice option.
I have not read the fine print yet.
In any case the ESP32-PICO-D4 looks very interesting...
Re: ESP32 boards
Posted: 06 Jan 2018, 13:29
by ManS-H
Drum wrote: ↑06 Jan 2018, 12:19
Just checked the espressif site to see if they have anything new and saw this
http://espressif.com/en/media_overview/ ... ntest-2018
Looks like a new dev board and esp32 chip I have not seen yet. Of course the oppertunity to get a dev board free is a nice option.
I have not read the fine print yet.
In any case the ESP32-PICO-D4 looks very interesting...
It's a ESP32 Design Contest.
Espressif co-organizes with Elektor International Media the ESP32 Design Contest in 2018.
Re: ESP32 boards
Posted: 06 Jan 2018, 13:51
by Drum
ManS-H wrote: ↑06 Jan 2018, 13:29
Drum wrote: ↑06 Jan 2018, 12:19
Just checked the espressif site to see if they have anything new and saw this
http://espressif.com/en/media_overview/ ... ntest-2018
Looks like a new dev board and esp32 chip I have not seen yet. Of course the oppertunity to get a dev board free is a nice option.
I have not read the fine print yet.
In any case the ESP32-PICO-D4 looks very interesting...
It's a ESP32 Design Contest.
Espressif co-organizes with Elektor International Media the ESP32 Design Contest in 2018.
Yes, I saw that. I just had not seen the ESP32-PICO-D4 chip or dev board previously....