These are chat archives for esp8266/Arduino

7th
Jul 2016
Ivan Grokhotkov
@igrr
Jul 07 2016 01:53
@SteveToulouse astyle --style=otbs
need to document this somewhere
Clemens Kirchgatterer
@everslick
Jul 07 2016 06:14
@me-no-dev i had a look at WiFiClient myself and tried to spot the right places to replicate your fix in AsyncTCP, but oh well...
line 135 in WiFiClient.cpp looks suspicious:
 //  if tcp_error was called, pcb has already been destroyed.
 // tcp_abort(pcb);
Clemens Kirchgatterer
@everslick
Jul 07 2016 06:40
that leaves me thinking tcp_abort() should be done when tcp_error() gets called. but probalbly thats only part of the story.
SteveToulouse
@SteveToulouse
Jul 07 2016 06:40
@igrr ok.
SteveToulouse
@SteveToulouse
Jul 07 2016 06:46
@igrr doc could be in the "contributing" paragraph of readme.md maybe?
Me No Dev
@me-no-dev
Jul 07 2016 06:48
@everslick I abort anyway on the async side. That prevents the connection from goinmg into TIME_WAIT and wasting resources for another minute. Without it, DOSing the ESP is quite easy
Clemens Kirchgatterer
@everslick
Jul 07 2016 07:03
i guess ivan has blacklisted me long ago, already! ;-)
This message was deleted
Me No Dev
@me-no-dev
Jul 07 2016 07:08
@everslick how so?
Ivan Grokhotkov
@igrr
Jul 07 2016 07:10
not really, i think i try to help you when i can :)
i'm not always monitoring gitter though, so sorry if i missed something
what's the problem with WiFiClient?
(i know a few of them right now — but not sure which one you are referring to)
Clemens Kirchgatterer
@everslick
Jul 07 2016 07:22
the 184 bytes of leak i complained about are from the socket left in wiat_close state (as pointed out by me no dev)
he fixed it in AsyncTCP by calling tcp_abort() whenever a socket is closed (if i understand correctly)
i tried to find the corresponding code in WifiClient and found the commented code in WifiClient.cpp
Clemens Kirchgatterer
@everslick
Jul 07 2016 07:29
question is: what's the RightThing to do? should it be fixed in arduinoWebSockets? or in WiFIClient (which wbsockets uses)?
thats a small sketch to demonstrate the issue
Me No Dev
@me-no-dev
Jul 07 2016 07:41
@everslick to be honest the way I did it is not exactly the right way either
I kinda force the situation on the connection
Clemens Kirchgatterer
@everslick
Jul 07 2016 07:43
yeah. there is a reason the socket is not closed properly.
Me No Dev
@me-no-dev
Jul 07 2016 07:44
the interesting part for me is that it does not seem to happen with the other protocols
I looked in tcpdump and all packets are there
so by spec it should cleanly disconnect
Clemens Kirchgatterer
@everslick
Jul 07 2016 07:45
FIn and ACK and everything, hmm
Me No Dev
@me-no-dev
Jul 07 2016 07:45
yup all of them...
Clemens Kirchgatterer
@everslick
Jul 07 2016 07:45
so not even the browsers are to blame
Me No Dev
@me-no-dev
Jul 07 2016 07:45
nope... have no clue what to blame really
comment all that and leave just abort(_pcb)
that is essentially the "fix"
Clemens Kirchgatterer
@everslick
Jul 07 2016 08:05
WOOOHOO!
perfekto!
Clemens Kirchgatterer
@everslick
Jul 07 2016 08:29
@me-no-dev are you going to make a PR?
Me No Dev
@me-no-dev
Jul 07 2016 08:30
seems safe so far on the async side, but I do not think that it has been tested enough
it's a bit intrusive :) more of a hack than a solution
Clemens Kirchgatterer
@everslick
Jul 07 2016 08:40
i have a rather demanding firmware. sync websocket, sync webserver, mdns, ntp, sync mqtt, http update, ... looks all good.
let's see if ivan has a comment on it.
Ivan Grokhotkov
@igrr
Jul 07 2016 09:57
sorry, no, i don't agree with that.
we can add WiFiClient::abort if that's the behaviour you want.
but i don't think that should be made default. tcp spec is pretty clear about what should be done to close the connection.
sending RST instead of FIN is not a fix, it's a hack.
Me No Dev
@me-no-dev
Jul 07 2016 10:12
this is not actually sending rrst instead of fin
Clemens Kirchgatterer
@everslick
Jul 07 2016 10:13
its both
Me No Dev
@me-no-dev
Jul 07 2016 10:13
it's doing it's fin thing fine, then clearing the connection from time_wait
Clemens Kirchgatterer
@everslick
Jul 07 2016 10:13
but, maybe tcp_close() does not return the correct error code?
Me No Dev
@me-no-dev
Jul 07 2016 10:13
which is in no way open connection
so has nothing to do with closing the connection, but rather what happens after that
@igrr those comments are towards your comment
Ivan Grokhotkov
@igrr
Jul 07 2016 10:16
well per spec there is no circumstance under which you send RST from TIME_WAIT state
Me No Dev
@me-no-dev
Jul 07 2016 10:16
it will not send anything
it will just free the pcb
that's it
Ivan Grokhotkov
@igrr
Jul 07 2016 10:18
like, call tcp_close and then tcp_abort?
Me No Dev
@me-no-dev
Jul 07 2016 10:18
exactly
that is exactly the "solution"
tcp_close(_pcb);
tcp_abort(_pcb);
_pcb = NULL;
Ivan Grokhotkov
@igrr
Jul 07 2016 10:19
isn't that effectively the same as changing TIME_WAIT duration?
Me No Dev
@me-no-dev
Jul 07 2016 10:19
it's exactly removing it :) so yes
Ivan Grokhotkov
@igrr
Jul 07 2016 10:19
so breaking the spec
Me No Dev
@me-no-dev
Jul 07 2016 10:20
yes
again, it's a hack
needed by the fact that we have verry little heap
and DDOS takes less than second
Ivan Grokhotkov
@igrr
Jul 07 2016 10:21
how about making this an option in WiFiClient?
Clemens Kirchgatterer
@everslick
Jul 07 2016 10:21
pls, excuse my ignorance, but shouldn't a socket, that was closed (with FIN and ACK) be in TIME_WAIT in the first place? or am i thinking FIN_WAIT now?
Ivan Grokhotkov
@igrr
Jul 07 2016 10:21
e.g. WiFiClient.setNoTimeWait() or something?
Me No Dev
@me-no-dev
Jul 07 2016 10:22
can be a parameter to close() similar to async
so close(true) will abort
Ivan Grokhotkov
@igrr
Jul 07 2016 10:22
if you do active close, then yes you should end up in TIME_WAIT
we don't have an argument in close
Me No Dev
@me-no-dev
Jul 07 2016 10:22
can be added and default to false
Ivan Grokhotkov
@igrr
Jul 07 2016 10:22
so rather add a function like forceClose or something
ok, or a new overload of close, close(bool)
Me No Dev
@me-no-dev
Jul 07 2016 10:23
that function will just have the same exact code as close, but no if()
why not close(bool force=false)
current code will still work
there is another option
I can hack lwip to keep a max count ot TIME_WAIT pcbs
so they do not get more than 5 or 10
those are not counted towards the active pcb limit and they are easy to overflow
Ivan Grokhotkov
@igrr
Jul 07 2016 10:27
yep, that's a much better option
Me No Dev
@me-no-dev
Jul 07 2016 10:28
will look into it :) having a test case is nice
Mehrdad K
@mkeyno
Jul 07 2016 11:07
hi guys , is yield() harmless and can use anywhere for sure no stack get clumsy
what is different between yield() & optimistic_yield()
I'm using software serial to read SIM module and use while(1) to read data coming from Serial module which is probably take 1 or 2 second while
I want to be sure nothings bad happened on wifi stack or other connection
does yield() or optimistic_yield() would be helpfull
Clemens Kirchgatterer
@everslick
Jul 07 2016 11:20
i have the impression that .bss is not cleared when calling system_restart()
Clemens Kirchgatterer
@everslick
Jul 07 2016 11:42
can't reproduce with small sketch :-(
SteveToulouse
@SteveToulouse
Jul 07 2016 14:30
Anyone point me to a "how to" to turn on full debugging in Wifi(Multi)? I tried defining DEBUG_ESP_WIFI and DEBUG_ESP_PORT but get no more output than with just Serial.setDebugOutput(true)
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:03
@SteveToulouse i have no idea, but if you get wifi multi working, please send me your code :/
SteveToulouse
@SteveToulouse
Jul 07 2016 15:04
Just found another bug in it - it won't try to connect to an IP which doesn't broadcast it's SSID, even if you put it on your addAP list
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:05
ah :/
i think the wifimulti implementation is a 100-line file
SteveToulouse
@SteveToulouse
Jul 07 2016 15:05
I don't know enough about Wifi entrails yet to propose a solution but it should loop over declared APs and not over only visible APs
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:05
you can probably easily go through it
SteveToulouse
@SteveToulouse
Jul 07 2016 15:06
I'm trying :-P
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:06
haha
i haven't tried it at ALL, i just want to use it because i have a pcb that doesn't have serial input (because of size), and it's a HUGE pain to flash OTA every time i switch houses (because the wifi changes)
SteveToulouse
@SteveToulouse
Jul 07 2016 15:07
It does work OK for me at home
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:07
where does it not work?
SteveToulouse
@SteveToulouse
Jul 07 2016 15:08
Two cases: if the declared AP doesn't advertise SSID (I have this pb at work) and if the "best" declared AP isn't accessible for some reason (but is visible)
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:09
oh
those are pretty okay edge cases, i think
can you post your code somewhere?
SteveToulouse
@SteveToulouse
Jul 07 2016 15:09
Otherwise it works fine between my bedroom and living room and it selects the strongest of my two APs depending on where I am
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:12
hmm, shouldn't platformio be able to find WiFiUDP.h?
SteveToulouse
@SteveToulouse
Jul 07 2016 15:12
See open bug issue #2117 and just-posted #2246. Code to cause the problem is trivial (see the example). I've just done a pull request for #2115 and am working on #2188.
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:12
because it can't
@SteveToulouse oh, is it that easy? why have i not been using it? :P
SteveToulouse
@SteveToulouse
Jul 07 2016 15:13
Dead easy yes. Nothing complicated.
When I'm not at home or work, I use my mobile phone access point. Works perfectly too.
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:18
@SteveToulouse does the ESP8266 see 5 GHz networks?
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:27
@ivankravets why does platformio ask me to add udev rules? new feature?
Ivan Kravets
@ivankravets
Jul 07 2016 15:29
@skorokithakis Hi. Are you Linux user?
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:29
@ivankravets yep
(and i've added the rules, but it never needed them before)
@SteveToulouse isn't there a function that waits until wifimulti is connected, like there is with wifi?
Ivan Kravets
@ivankravets
Jul 07 2016 15:30
the file with udev.rules allows to mount USB device with READ permissions. This allow to run PlatformIO without sudo
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:31
@ivankravets ah, i see, thanks. i've added myself to the usb group (or something), so i've never needed sudo
Ivan Kravets
@ivankravets
Jul 07 2016 15:31
yes, yes
that is for users that don't know how to add manually
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:31
ah, that makes sense, thank you
@ivankravets do you have any plans to support that super fast flashing thing?
Ivan Kravets
@ivankravets
Jul 07 2016 15:32
however, to avoid problems and requests to our forums, we decided to ask each Linux user to add it
SteveToulouse
@SteveToulouse
Jul 07 2016 15:32
@skorokithakis re: 5GHz not sure but I would think so, if ordinary wifi.begin works
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:32
@SteveToulouse ah, great, thank you
Ivan Kravets
@ivankravets
Jul 07 2016 15:32
@skorokithakis do you use PlatformIO IDE or CLI?
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:32
cli
Ivan Kravets
@ivankravets
Jul 07 2016 15:33
@skorokithakis Cool, thanks! :)
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:33
thank you!
what's that fast flash program called...
@ivankravets mft?
hmm, no
@SteveToulouse hmm, do you have an example of using wifimulti with wifi.begin? wouldn't wifi.begin only connect to the one AP?
SteveToulouse
@SteveToulouse
Jul 07 2016 15:39
I don't remember trying that. It should work but I've no idea if there'd be interference. I'll have to try.
As far as I can tell, wifimulti.run just tries to connect to the strongest AP amongst those declared, if the AP is present (detected by a scan).
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:41
yeah, i tried the posted sample but it looks like it needs to be in the loop to work, you can't just one-shot it in setup
SteveToulouse
@SteveToulouse
Jul 07 2016 15:41
no you have to put it in some kind of loop to give wifi time to startup and find networks
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:41
i see, thanks
SteveToulouse
@SteveToulouse
Jul 07 2016 15:43
you could do it in a while loop in setup(). Like while (wifimulti.run() != WL_CONNECTED) delay(0);or something.
probably need to handle return value a little more intelligently though :-P
I suppose there are muich cleaner ways to do it. I'll have to check the examples.
But if you put it in loop() it would probably handle reconnects if you lose connectivity for some reason
Stavros Korokithakis
@skorokithakis
Jul 07 2016 15:53
yeah, i'll make a function and call it in the loop, i just wish these things were more streamlined
every time i start a sketch i need to write the same boilerplate code
Stavros Korokithakis
@skorokithakis
Jul 07 2016 16:16
hmm, how can i convert a byte array to a string?
Martin Ayotte
@martinayotte
Jul 07 2016 16:20
Simply use String str = String(my_bytes_array);
Stavros Korokithakis
@skorokithakis
Jul 07 2016 16:22
i tried that and get an error, hmm :/
Martin Ayotte
@martinayotte
Jul 07 2016 16:23
because of bytes instead of chars ? String str = String((const char *)my_bytes_array);
Stavros Korokithakis
@skorokithakis
Jul 07 2016 16:23
yes, that's it! thank you
Martin Ayotte
@martinayotte
Jul 07 2016 16:23
welcome
Stavros Korokithakis
@skorokithakis
Jul 07 2016 16:56
hmm, i'm broadcasting 30 udp packets/sec to control my wifi led strip but it appears very jittery, whereas mqtt works great... has anyone had problems with udp broadcast? 30 packets/sec should be trivial
Michael Miller
@Makuna
Jul 07 2016 17:15
Udp is not guaranteed delivery, you have two simple choices, either write a system to include an ack (see coap) or send three instead and on the client filter the duplicates (network game trick). Also note udp's packet order is also not guaranteed but on a subnet should not be an issue.
Shelby Merrick
@forkineye
Jul 07 2016 17:20
@skorokithakis are you broadcasting or unicasting?
Stavros Korokithakis
@skorokithakis
Jul 07 2016 17:21
i am broadcasting, it looks like that's the problem
unicast works great, broadcast was super slow
Shelby Merrick
@forkineye
Jul 07 2016 17:21
could try multicast instead if your gear is igmp aware and you really need broadcast
Stavros Korokithakis
@skorokithakis
Jul 07 2016 17:21
@Makuna i don't mind packet loss, plus the device is right next to me, but it was the broadcast that's the problem
@forkineye i'm thinking of a ghetto discover protocol, where i broadcast a single packet and the ESPs reply with "i'm here"
so then i can unicast to each one
seems like the best of both worlds
Shelby Merrick
@forkineye
Jul 07 2016 17:22
use mdns and a service query
Stavros Korokithakis
@skorokithakis
Jul 07 2016 17:22
hmm, how does that work?
Shelby Merrick
@forkineye
Jul 07 2016 17:24
   /* Setup mDNS / DNS-SD */
    if (MDNS.begin(hostname)) {
        MDNS.addService("e131", "udp", E131_DEFAULT_PORT);
        MDNS.addService("http", "tcp", HTTP_PORT);
    } else {
        LOG_PORT.println(F("** Error setting up mDNS responder **"));
    }
i don't have the query code in mine right now, but its fairly simple. pretty sure its in one of the esp8266 mdns examples
Martin Ayotte
@martinayotte
Jul 07 2016 17:26
but this mDNS is to advertise services, form what I know, there is no ESP client to browse it such avahi-browser.
Martin Ayotte
@martinayotte
Jul 07 2016 17:27
Oh ! I didn't saw that one until now ! Thanks !
Shelby Merrick
@forkineye
Jul 07 2016 17:30
for my Christmas show last year, I ran 15 ESP-01's all unicasted at a 25ms update rate (40hz) and it ran fairly well. tried multicast at first, but wasn't as reliable
2835 channels of e1.31 data across them (945 pixels)
and here's 720 pixels being driven from a single ESP-01 at 25ms:
Stavros Korokithakis
@skorokithakis
Jul 07 2016 17:33
@forkineye so you were unicasting to 15 at once, right? like, in a loop
Shelby Merrick
@forkineye
Jul 07 2016 17:34
yeah, from a raspberry pi
Stavros Korokithakis
@skorokithakis
Jul 07 2016 17:34
fantastic
that's what i'll do
Shelby Merrick
@forkineye
Jul 07 2016 17:34
Pi -> switch -> AP -> ESP's
whole project is here if you're wanting to use e1.31 - https://github.com/forkineye/ESPixelStick
active development is on the espasync branch though, almost done porting it
Stavros Korokithakis
@skorokithakis
Jul 07 2016 17:36
fantastic, thank you
i have a question, because i'm not familiar with mdns: i have a script that sends UDP packets, and the ESPs receive it. with mDNS, can i discover all the ESPs that want to accept the packets?
the ESPs will be running permanently, the script will only start at some points
Shelby Merrick
@forkineye
Jul 07 2016 17:37
yea, just query for the service you setup
Stavros Korokithakis
@skorokithakis
Jul 07 2016 17:38
fantastic, thank you
SteveToulouse
@SteveToulouse
Jul 07 2016 17:43
@mkeyno would probably be interested by this! He was trying to run his off files in flash and couldn't get near 25fps.
Stavros Korokithakis
@skorokithakis
Jul 07 2016 17:51
@forkineye oh this is pretty cool, you can declare a service name, the protocol and the port, and then it can be discovered
this is fantastic, thanks guys
Stavros Korokithakis
@skorokithakis
Jul 07 2016 17:56
@forkineye does the mdns responder also reply to discovery requests, or is the announce one-shot? i don't see that handled anywhere in the loop
Shelby Merrick
@forkineye
Jul 07 2016 18:10
it should listen and respond
Stavros Korokithakis
@skorokithakis
Jul 07 2016 18:11
@forkineye what were you using to discover it? i'm trying python-zeroconf but i can't find something that will perform a service query directly
Shelby Merrick
@forkineye
Jul 07 2016 18:11
sporadic@mcnasty:~$ avahi-browse -r _e131._udp
+   eth0 IPv4 ESPixelStick (a5937a)                         _e131._udp           local
=   eth0 IPv4 ESPixelStick (a5937a)                         _e131._udp           local
   hostname = [esps_a5937a.local]
   address = [192.168.1.124]
   port = [5568]
   txt = []
i'm using avahi-browse from a linux box
Stavros Korokithakis
@skorokithakis
Jul 07 2016 18:11
do you remember a command line offhand?
Shelby Merrick
@forkineye
Jul 07 2016 18:12
avahi-browse -a
Stavros Korokithakis
@skorokithakis
Jul 07 2016 18:12
ah, fantastic, thanks
Shelby Merrick
@forkineye
Jul 07 2016 18:14
edited the above to include the command i used
Stavros Korokithakis
@skorokithakis
Jul 07 2016 18:15
ooh fantastic, it's finding it
although i have a suspicion that you're talking to the local avahi daemon, which has already heard the broadcast and registered it
so it's not the ESP that's responding right then
Shelby Merrick
@forkineye
Jul 07 2016 18:17
the avahi daemon will cache your results, but it should reach to your ESP when resolving services i believe
Stavros Korokithakis
@skorokithakis
Jul 07 2016 18:18
right
i need to figure out how to discover the service from python, hopefully it won't be hard
Martin Ayotte
@martinayotte
Jul 07 2016 18:18
I've just tried the MDNS.queryService(), unfortunately, I'm getting a watchdog exception in MDNSResponder::_parsePacket()
Martin Ayotte
@martinayotte
Jul 07 2016 18:25
This was with my own Sketch-Buffet, but I've just tried the mDNS-SD_Extended.ino example too, it crash also in MDNSResponder::_parsePacket() using Stable 2.3.0
Shelby Merrick
@forkineye
Jul 07 2016 18:26
@skorokithakis https://pypi.python.org/pypi/zeroconf seems to work for me
@martinayotte do you have any devices broadcasting mdns info on your network?
Martin Ayotte
@martinayotte
Jul 07 2016 18:28
Oh ! something interesting found : the crash is when using "arduino" OTA service, if I'm queying "telnet" it doesn't
Shelby Merrick
@forkineye
Jul 07 2016 18:28
doh
Martin Ayotte
@martinayotte
Jul 07 2016 18:28
Indeed !
Shelby Merrick
@forkineye
Jul 07 2016 18:28
what was the full string you were using?
well crap, i can't get mine to query anything now
Martin Ayotte
@martinayotte
Jul 07 2016 18:30
int n = MDNS.queryService("telnet", "tcp"); instead of int n = MDNS.queryService("arduino", "tcp");
but there are less hosts than avahi-browser reports :-(
Shelby Merrick
@forkineye
Jul 07 2016 18:32
are the other hosts alive? avahi may have cached stuff. i don't think ipv6 machines show up either
Martin Ayotte
@martinayotte
Jul 07 2016 18:33
I was wrong : the missing one is the one who doing the query, it doesn't count itself ... :-)
For the "arduino" service, I think I should open an issue in github
Shelby Merrick
@forkineye
Jul 07 2016 18:35
you have OTA esp's online when that happened?
doh. this works now. all other machines w/ the service i was querying were ipv6, that's why they didn't show. back to good now... only have one ESP online at the moment
Martin Ayotte
@martinayotte
Jul 07 2016 18:40
Yes, I've OTA online on all my ESPs.
Shelby Merrick
@forkineye
Jul 07 2016 18:42
hmm. wonder if's the arduino record or just ESP's reponses in general that are causing it bomb
Me No Dev
@me-no-dev
Jul 07 2016 18:45
it probably has issues parsing the response
Martin Ayotte
@martinayotte
Jul 07 2016 18:45
At least, now that is known, I can chose to add another distinct service just for ESP discovery
Me No Dev
@me-no-dev
Jul 07 2016 18:46
the Arduino service has TXT records attached and that is probably what is breaking
mDNS is pain to parse and the reason I did not add the query option a while back.
Martin Ayotte
@martinayotte
Jul 07 2016 18:48
Oh ! :-( I've now tried "http", and I got the same crash. :-( @me, Soft WDT ets Jan 8 2013,rst cause:2, boot mode:(3,6)
Me No Dev
@me-no-dev
Jul 07 2016 18:49
softwdt? something took too long :)
the query service is not async as far as I can tell
Martin Ayotte
@martinayotte
Jul 07 2016 18:52
Earlier, I've turned On the MDNS_DEBUG_RX, I was seen teh responses and the crash occured well after them, it looks like it is staying in a loop somewhere
Martin Ayotte
@martinayotte
Jul 07 2016 19:02
for the "http", it is intermittent ...
Martin Ayotte
@martinayotte
Jul 07 2016 19:12
But most of the time, it is the crash, maybe 7 out of 10
Me No Dev
@me-no-dev
Jul 07 2016 19:17
I think the proper fix is to be rewritten
only the query part
it's not at all an easy task though
Martin Ayotte
@martinayotte
Jul 07 2016 19:18
So, you found something ? Thanks ! I will watch github for the fix.
Me No Dev
@me-no-dev
Jul 07 2016 19:19
I have not found anything, but it's hard to read anyway. The protocol uses a compresion which is a hell to parse
I have some stuff planned for tcp and udp first, then if nothing is more pressing, I'll take a look at mDNS. Have to reread my notes :)
Martin Ayotte
@martinayotte
Jul 07 2016 19:45
@me-no-dev , thanks you very much ! and thanks for all other good works you've done !
Me No Dev
@me-no-dev
Jul 07 2016 19:46
@martinayotte :) no problem :)
plus it's my job now ;)
Martin Ayotte
@martinayotte
Jul 07 2016 19:48
Did you joined IGrr and Sprite_tm in China ? :-)
Me No Dev
@me-no-dev
Jul 07 2016 19:48
well... just not in China :D
I will stay here
Martin Ayotte
@martinayotte
Jul 07 2016 19:48
So, remotely from home in Russia, right ?
Me No Dev
@me-no-dev
Jul 07 2016 19:48
Bulgaria actually
and yes
Martin Ayotte
@martinayotte
Jul 07 2016 19:49
Ah ! Ok ! (so, you probably know the Olimex guys too)
Me No Dev
@me-no-dev
Jul 07 2016 19:49
kinda :)
Martin Ayotte
@martinayotte
Jul 07 2016 19:50
Cheers ! I'm offering your a virtual beer ! :-) Ciao !
Mehrdad K
@mkeyno
Jul 07 2016 19:50
congratulation @me-no-dev , now we feel less guilty for take your time
Me No Dev
@me-no-dev
Jul 07 2016 19:50
hahahaha :D
@mkyeno, my job is not to help people with their sketches :)
but fix things that do not work and add new stuff
Martin Ayotte
@martinayotte
Jul 07 2016 19:51
... and prepare the ESP32 launch ... :-)
Me No Dev
@me-no-dev
Jul 07 2016 19:51
yup
Mehrdad K
@mkeyno
Jul 07 2016 19:52
but sometime consider some sketch need help to be fix
Martin Ayotte
@martinayotte
Jul 07 2016 19:52
BTW, remembering discussion about SPISlave and that you provided code, although not related directly, are you aware of any I2C-Slave code ?
Me No Dev
@me-no-dev
Jul 07 2016 19:53
I help when I can, but there is far bigger and greater community that can help you much faster and better than asking me personally
@martinayotte I am not yet, but have the though to look at it
have some for the ESP31B and the interfaces are the same
so it might actually work
just recently got an I2S in and out module
oh shj*...
Martin Ayotte
@martinayotte
Jul 07 2016 19:54
I've heard that Rudy on Espressif did it with ESP32 as Master and a bunch of ESP8266 as Slaves, but he never published is code yet.
Me No Dev
@me-no-dev
Jul 07 2016 19:54
you say I2C and I read I2S
Martin Ayotte
@martinayotte
Jul 07 2016 19:55
Yes, I2C !
Me No Dev
@me-no-dev
Jul 07 2016 19:55
issue with I2C slave in bitbang is that you will keep the cpu busy too much or miss bits
that network thing is in the way
and I have no reg definitions for ESP32 I2C, so no clue on hardware
though read about 2 I2C master and slave controllers
maybe I can slavage my interrupt based soft serial code and try to write a slave... might work at 100kHz
Martin Ayotte
@martinayotte
Jul 07 2016 19:59
In LD scripts, since the begining, it is mentioned rom_i2c_readReg/rom_i2c_readReg_Mask/rom_i2c_writeReg/rom_i2c_writeReg_Mask, but no one ever got news how to deal with them. Maybe as an employee you can get chance to get more details.
Mehrdad K
@mkeyno
Jul 07 2016 19:59
do we have same identical hardware I2C and SPI on ESP32 so we could rid of virtual I2C and SPI on ESP8266
Me No Dev
@me-no-dev
Jul 07 2016 20:00
@martinayotte as far as I understand those are for communication with the internals and not with peripherals
@mkeyno SPI is hardware based, both Master and Slave
Martin Ayotte
@martinayotte
Jul 07 2016 20:02
what peripherals are attached on this internal I2C ?
Me No Dev
@me-no-dev
Jul 07 2016 20:03
no clue
I imagine it writes directly to some cpu regs maybe
Martin Ayotte
@martinayotte
Jul 07 2016 20:04
Thanks anyway !
Stavros Korokithakis
@skorokithakis
Jul 07 2016 20:05
@me-no-dev you're in Bulgaria? Where?
Me No Dev
@me-no-dev
Jul 07 2016 20:05
Ruse
you in greece?
Stavros Korokithakis
@skorokithakis
Jul 07 2016 20:06
Yeah, Thessaloniki
Me No Dev
@me-no-dev
Jul 07 2016 20:07
nice!
I'm closer to @tzapu :)
Stavros Korokithakis
@skorokithakis
Jul 07 2016 20:08
Yeah, you're on the Romanian border, far from me 🙁
@forkineye I'm using zeroconf too, but not very successfully. Do you have some sample code I can look at? Sorry if you answered this, I can't scroll that far back on mobile
Shelby Merrick
@forkineye
Jul 07 2016 20:50
@skorokithakis for python or just esp?
Stavros Korokithakis
@skorokithakis
Jul 07 2016 20:54
@forkineye for python, if you have it. the esp seems to be working fine
Shelby Merrick
@forkineye
Jul 07 2016 20:55
I tested the example here, but that's as for as I went with it. My ESP showed up: https://pypi.python.org/pypi/zeroconf
Stavros Korokithakis
@skorokithakis
Jul 07 2016 21:04
hmm, i'll give it another shot, thanks
Stavros Korokithakis
@skorokithakis
Jul 07 2016 21:51
Stavros Korokithakis
@skorokithakis
Jul 07 2016 23:09
@igrr are you familiar with the mdns implementation? can i send the responder some packet that will make it reply with its services? i haven't managed to find any tool that will effectively query it from my system
Stavros Korokithakis
@skorokithakis
Jul 07 2016 23:34
bleh, does anyone know how i can trigger the mdns responder? :(