-
• #2
When I connect the IDE I see a warning: setsockopt(SO_REUSPORT) failed. Is that expected?
@opichals made changes to this area recently
I have not personally tested the new buildI try to connect it to my router and see that the following is not working:
setHostname
This has not been implement at this stage. It requires using the mDNS library - and there was a move to do this in JS as a library rather than coding specifically for the ESP32 using esp-idf.
It could be added.setConfig
I believe this is ESP8266 specific - I'm not sure other ports support it.
When the ESP32 was release there was not power mode options - there might be now - I have not looked recently.
-
• #3
I think you maybe tried to link it - but just wanted to add that the reference at http://www.espruino.com/Reference usually tells you what is and isn't available on different boards. If it doesn't for a board then that's something I could fix if I know about it.
-
• #4
@Wilberforce Did it ever work for your change at https://github.com/espruino/Espruino/commit/5c9c7b5c561eda7408b2e5d8194f8127a6a5d5f6#diff-1b4afc5c5771734770c516012233e69c on the ESP32 board itself?
@CrashingDutchman IMO the warning should be harmless. However it looks like we should get rid of trying to set it on ESP32 as the https://github.com/espressif/arduino-esp32/blob/master/tools/sdk/include/lwip/lwip/sockets.h#L185 states that it is unimplemented.
-
• #6
@Wilberforce Yes, I changed that to happen for the TCP servers. Thanks for removing it.
Before it was present for
dgram.createSocket({ reuseAddr: true })
where it should have filed the same way provided the 'unimplemented' note in the headers is correct. -
• #7
Sorry for the late response, I was away for a couple of days. Thank you all for the replies, for the moment I am fine with your replies. The setHostname() has never worked for me anyway (with the ESP8266). I will ignore the warning!
-
• #8
@CrashingDutchman The setHostname() should work once this https://github.com/espruino/Espruino/issues/1376 is done (considering it will probably eat quite a lot of RAM which is scarse on the ESP8266).
-
• #10
Something else I notice is that the IDE doesn't find board information if the ESP32 has been connected for a while to my PC through the serial port.
When connecting Espruino to the COM port, I see:
Unable to retrieve board information. Connection error?
Connected to COM7 (no response from board)Below is a log from the console, including the part where I disconnected and reconnected the ESP32 from/to the port:
We have chrome.serial - not using 'serialport' module serial_audio:
Audio Sample rate : 48000 serial_audio: Audio Serial Baud 9600 Bit
time 5 GET chrome.storage.sync =
{"AUTO_SAVE_CODE":true,"BAUD_RATE":"115200","BLOCKLY_EXTENSIONS":"|bluetooth|robot|","BLOCKLY_LANGUAGE":"en","BLOCKLY_TO_JS":false,"BOARD_JSON_URL":"http://www.espruino.com/json","CODE":"/*
Use code below to configure a new device. Steps:\n\n- edit theHostname
below\n- flash code to device (nodemcu, esp8266)\n- type
'startConnect' in console window \n\n*/\nvar
wifi=require(\"Wifi\");\nvar theHostname=\"temp-sensor-server\";
\n\nvar startConnect = function() {\n\tconsole.log('start connect
called');\n\t//
wifi.setHostname(theHostname);\n\twifi.connect(\"Carthago8_nomap\",
{\n\t\tpassword: \"tarigan01\"\n\t}, \n\tfunction()
{\n\n\t\tconsole.log('connected to wifi');\n\n\t\tvar ipInfo =
wifi.getIP();\n\t\tprint(\"Current IP address is: \" +
\n\t\t\tipInfo.ip + ':' +\n\t\t\tipInfo.netmask);\n\n\t\t//
Wifi.stopAP();\n\t\t// wifi.setConfig({ powersave:
\"none\"});\n\t\twifi.save();\n
});\n\n};","COMPILATION":true,"COMPILATION_URL":"https://www.espruino.com/service/compiler","DISABLE_CODE_HINTS":false,"ENABLE_Testing":false,"ENV_ON_CONNECT":true,"FONT_SIZE":12,"MINIFICATION_DeadCode":true,"MINIFICATION_LEVEL":"","MINIFICATION_Literal":true,"MINIFICATION_Mangle":true,"MINIFICATION_Unreachable":true,"MINIFICATION_Unused":true,"MODULE_AS_FUNCTION":false,"MODULE_EXTENSIONS":".min.js|.js","MODULE_MINIFICATION_LEVEL":"ESPRIMA","MODULE_PROXY_ENABLED":false,"MODULE_PROXY_PORT":"","MODULE_PROXY_URL":"","MODULE_URL":"http://www.espruino.com/modules","NPM_MODULES":false,"OFFLINE_DATA":"","OFFLINE_DATA_DOWNLOAD":"","OFFLINE_DATA_UPLOAD":"","OFFLINE_ENABLED":false,"RESET_BEFORE_SEND":true,"SAVE_ON_SEND":0,"SERIAL_AUDIO":"0","SERIAL_TCPIP":"192.168.4.1;192.168.1.83","SERIAL_THROTTLE_SEND":false,"SET_TIME_ON_WRITE":false,"SHOW_CODE_LINK_ICON":false,"SHOW_WEBCAM_ICON":0,"STORE_LINE_NUMBERS":true,"Sound_Error":"","Sound_Info":"","Sound_Success":"","Sound_Warning":"","Speak_Error":false,"Speak_Info":false,"Speak_Success":false,"Speak_Warning":false,"UI_MODE":"Normal","WEBCAM_CONSTRAINTS":0,"WEB_BLUETOOTH":true,"projectEntry":"AD0522314CB4FED925ADFF1139C05435:EspruinoSandbox"}
Initialising SettingsConsole Initialising Utils Initialising Config
Initialising Notifications Initialising Status Initialising App
Initialising File Initialising Code Initialising Serial- Initialising Serial Chrome Serial
- Initialising Serial Chrome Socket
- Initialising Serial Web Audio
- Initialising Serial Web Bluetooth Initialising Terminal Initialising CodeWriter Initialising Modules Initialising Env
Initialising Flasher Initialising EditorBlockly Initialising
EditorJavaScript Initialising Send Initialising MenuPortSelector
Initialising MenuSettings Initialising MenuFlasher Initialising
SettingsAbout Initialising SettingsFlasher Initialising BoardJSON
Initialising VersionChecker Initialising Compiler Initialising
Assembler Initialising GetGitHub Initialising Unicode Initialising
Minify Initialising SaveOnSend Initialising SetTime Initialising
Tutorial Initialising Webcam Initialising FontSize Initialising UiMode
Initialising URLHandler Initialising CodeLink Initialising Project
Initialising Testing Initialising Notification_Sound Initialising Tern
Initialising Debugger Initialising Tour Initialising SettingsProfile
Initialising HelpLinks Initialising Offline Loaded code from storage.
GET chrome.storage.local.OFFLINE_DATA = 0 bytes No navigator.bluetooth - Web Bluetooth not enabled
>>> Connecting... Set Slow Write = true [object Object] Connected [object Object] ERROR: RECEIVE ERROR:
{"connectionId":1,"error":"overrun"} Disconnect callback... WARNING:
[notify_warn] Disconnected
>>> Disconnected Got "\r\n" No Prompt found, got "\n" - issuing Ctrl-C to try and break out Still no prompt - issuing another Ctrl-C WARNING:
No result found for "process.env" - just got "" ERROR: [notify_error]
Unable to retrieve board information. Connection Error? Device found
{"bitrate":115200,"bufferSize":4096,"connectionId":1,"ctsFlowControl":false,"dataBits":"eight","name":"","parityBit":"no","paused":false,"persistent":false,"receiveTimeout":0,"sendTimeout":0,"stopBits":"one"}
[success] Connected to COM7 (No response from board)
>>> Connected to COM7 (No response from board)
>>> Connecting... Set Slow Write = true [object Object] Connected [object Object] Got "" No Prompt found, got undefined - issuing Ctrl-C
to try and break out Splitting for Ctrl-C, delay 250 Still no prompt -
issuing another Ctrl-C Splitting for Ctrl-C, delay 250
>>> Sending...
---> "\u0010print(\"<\",\"<<\",JSON.stringify(process.env),\">>\",\">\")\n"
>>> Sent Got "\u001b[?7l\r\n ____ _ \r\n| |_ ___ ___ _ ||___ ___ \r\n| |_ -| . | _| | | | | . |\r\n||_| || |_|||_||\r\n || espruino.com\r\n 2v00 (c) 2018 G.Williams\r\n\r\nEspruino is Open Source. Our work is
supported\r\nonly by sales of official boards and
donations:\r\nhttp://espruino.com/Donate\r\n\r\nWARNING:
setsockopt(SO_REUSPORT) failed\r\n\r\n>< <<
{\"VERSION\":\"2v00\",\"GIT_COMMIT\":\"ff35517\",\"BOARD\":\"ESP32\",\"FLASH\":0,\"RAM\":524288,\"SERIAL\":\"240ac404-37a8\",\"CONSOLE\":\"Serial1\",\"MODULES\":\"Flash,Storage,heatshrink,fs,net,dgram,tls,http,NetworkJS,Wifi,TelnetServer,crypto,neopixel\",\"EXPTR\":1073483756}
>> >\r\n>" [notify_info] Found ESP32, 2v00 Loading http://www.espruino.com/json/ESP32.json Board JSON loaded Set Slow
Write = true FIRMWARE: Current 2v00, Available 2v00 Device found
{"bitrate":115200,"bufferSize":4096,"connectionId":2,"ctsFlowControl":false,"dataBits":"eight","name":"","parityBit":"no","paused":false,"persistent":false,"receiveTimeout":0,"sendTimeout":0,"stopBits":"one"}
[success] Connected to COM7
>>> Connected to COM7
- Initialising Serial Chrome Serial
-
• #11
How long is a while?
It is possible that the USB port gets turned off for power saving after a period of inactivity.
-
• #12
I am not yet sure how long a while is. I connected the ESP32 probably on Thursday and left the IDE open, computer was powered on at all times. When I wanted to connect the IDE to the port yesterday (Tuesday) evening (around 8 pm) I got the messages.
I disconnected and reconnected the device yesterday and was able to connect through the IDE. This morning I found that my computer had rebooted. I tried to connect again from the IDE and saw the same messages. It seems that only a power cycle of the ESP32 allows me to connect successfully.
I will keep an eye on this and report back when I have more information.
Thank you @Wilberforce
-
• #13
It might be the ESP32 has crashed for some reason. The IDE will say it couldn't get the board info if the board is unresponsive.
You could try connecting with some other terminal program and seeing if you have any joy.
-
• #14
I tested the following:
- Start Espruino IDE
- Connect ESP32
- Connect to COM port (which worked)
- Close the IDE
- Start the IDE
- Connect to COM port (I get the "Connected to COM7 (No response from board)" message)
- Start Espruino IDE
-
• #15
And what about connecting with another terminal app?
-
• #16
When I get this error in the IDE, connecting with Putty results in an: Putty Fatal Error: Error reading from serial device.
In the putty dialog I see this:
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_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:0x3fff0018,len:4
load:0x3fff001c,len:2364
load:0x40078000,len:0
load:0x40078000,len:10880
entry 0x40078c4c -
• #17
This is normal behaviour for me. It seems the USB port gets in an odd state and physically disconnecting and reconnecting are nescessary.
This is why I usually connect WiFi and connect via IP address. I only use usb for flashing.
I just found the latest version of Espruino (herehttps://www.espruino.com/binaries/espruino_2v00_esp32/) and flashed it to a ESP32 DoIt NodeMCU.
When I connect the IDE I see a warning: setsockopt(SO_REUSPORT) failed. Is that expected?
I try to connect it to my router and see that the following is not working:
For both functions I see a "Uncaught error: function not found!" Is it correct that these are not yet supported? If so, is there any documentation on what is supported or not. I searched, but couldn't find it. Both functions don't seem to work on the previous version too!
Thank you!
Edit: found this page that says that setHostname is not supported yet.