<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Forgot to mention that I found this article on hidden SSIDs that provides some technical details on how some clients do/don’t handle them:<div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><a href="https://lifehacker.com/5636856/is-hiding-your-wireless-ssid-really-more-secure" class="">https://lifehacker.com/5636856/is-hiding-your-wireless-ssid-really-more-secure</a></div></blockquote><div class=""><br class=""></div><div class="">I’ve always felt this it was a bit of this:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><img apple-inline="no" id="50A81F01-1B63-49E5-A898-4CECF1757388" src="cid:4A3B90A3-D589-468B-9E1F-6DF9753D8257" class=""></div></blockquote><div class=""><div><br class=""></div><div>and never used them myself.</div><div><br class=""></div><div>Regards, Mark.</div><div><br class=""><blockquote type="cite" class=""><div class="">On 4 Dec 2017, at 10:13 AM, Mark Webb-Johnson <<a href="mailto:mark@webb-johnson.net" class="">mark@webb-johnson.net</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class=""></div>Attached message from 9th November gives more detail on the way the promiscuous mode wifi client currently works.<div class=""><br class=""></div><div class="">That scan approach won’t work for hidden SSIDs, but it will handle other SSIDs elegantly and won’t connect to any SSIDs not explicitly configured.</div><div class=""><br class=""></div><div class="">I’m really not sure how phones do it, or how that can be applied to the Espressif ESP-32 wifi libraries. I don’t think they round-robin connect to all configured SSIDs, one after the other - imagine you have dozens of SSIDs (I do); the power consumption would be horrendous. As you mention, maybe an active probe, but I can’t find that in the Espressif API:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><a href="http://esp-idf.readthedocs.io/en/v2.1.1/api-reference/wifi/esp_wifi.html" class="">http://esp-idf.readthedocs.io/en/v2.1.1/api-reference/wifi/esp_wifi.html</a></div></blockquote><div class=""><br class=""></div><div class="">I don’t see anything in that API other than the (expensive) connect-to-an-AP in station mode.</div><div class=""><br class=""></div><div class="">I’m not overly worried about this at the moment, as it is relatively simple to switch to a specific SSID in a one-line script triggered by geolocation. Most likely users will be controlling wifi by geolocation / car state anyway. But, if you have time to look into any better way of doing it, please have a go.</div><div class=""><br class=""></div><div class="">Regards, Mark.</div><div class=""><br class=""><div class=""></div></div></div><span id="cid:53ED4C35-F6DA-4C03-8103-FBD370F12DD9"><[Ovmsdev] A promiscous wifi client.eml></span><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><div class=""></div><div class=""><br class=""><blockquote type="cite" class=""><div class="">On 3 Dec 2017, at 1:10 PM, Greg D. <<a href="mailto:gregd2350@gmail.com" class="">gregd2350@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
  
  <div text="#000000" bgcolor="#FFFFFF" class="">
    Hi Mark,<br class="">
    <br class="">
    Yes, specifying the AP works fine (ignoring the crash I got when
    changing APs on the fly).  I certainly don't expect a scan to pick
    up a hidden AP, but I do think that connecting to a hidden one which
    has been configured should work the same as a configured one that is
    in full peacock mode with its beacons.  Both phones and laptops can;
    that's what probe frames are for.  <br class="">
    <br class="">
    Conversely (haven't checked this), we should not be connecting
    promiscuously to an AP that has not been configured.  Way too likely
    to hit a Hotspot that requires a login / EULA Acceptance button, and
    thus breaking a perfectly good, if slow, LTE connection in favor of
    a hot WiFi connection that goes no where.  Not to mention the
    security angle.<br class="">
    <br class="">
    Is the promiscuous connect loop driven from the results of the scan,
    or by walking / probing the list of configured SSIDs?  It should be
    the later.<br class="">
    <br class="">
    Greg<br class="">
    <br class="">
    <br class="">
    <div class="moz-cite-prefix">Mark Webb-Johnson wrote:<br class="">
    </div>
    <blockquote type="cite" cite="mid:3CB0CD01-2D8E-4D6C-9FA9-B4F625664894@webb-johnson.net" class="">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8" class="">
      <div class="">Connecting to a hidden AP should be just specify the AP ssid:</div>
      <div class=""><br class="">
      </div>
      <div class="">  WiFi mode client <ssid></div>
      <div class=""><br class="">
      </div>
      <div class="">You won’t be able to see it in the scan, and won’t be able to
        promiscuously connect to it, but you should be able to directly
        specify it.</div>
      <div class=""><br class="">
      </div>
      <div class="">So long as you are running latest firmware and diff sdkconfig
        and sdkconfig.defaults is not too far off (pay attention to
        Bluetooth), it should work.</div>
      <div class=""><br class="">
      </div>
      <div class="">Regards, Mark</div>
      <div class=""><br class="">
        On 3 Dec 2017, at 12:11 PM, Greg D. <<a href="mailto:gregd2350@gmail.com" moz-do-not-send="true" class="">gregd2350@gmail.com</a>>
        wrote:<br class="">
      </div>
      <blockquote type="cite" class="">
        <div class="">
          <meta http-equiv="Content-Type" content="text/html;
            charset=UTF-8" class="">
          Ah, the proverbial "heap of trouble"...  {ahem} Sorry. 
          Perhaps something to tune later, or do we need to adjust
          things now?  <br class="">
          <br class="">
          So, the original issue - automatically connecting to a hidden
          AP- is not related.  It's not a showstopper for me since I
          have the dongle, but could be important for some (e.g. WiFi at
          home hidden, work is open).  It appears that the wifi scan
          code is somewhere in the ELF library set.  Is it worth trying
          to dig into it?<br class="">
          <br class="">
          Greg<br class="">
          <br class="">
          <br class="">
          <br class="">
          <div class="moz-cite-prefix">Stephen Casner wrote:<br class="">
          </div>
          <blockquote type="cite" cite="mid:alpine.OSX.2.21.1712021605060.22554@auge.attlocal.net" class="">
            <pre wrap="" class="">Greg,

The crash was in the "new" operation because you ran out of heap
space.

                                                        -- Steve

On Sat, 2 Dec 2017, Greg D. wrote:

</pre>
            <blockquote type="cite" class="">
              <pre wrap="" class="">Hi all,

Is there an easy way to enable the wifi code to connect to an SSID that's known
(configured) but hidden, without directly telling it to?  i.e., using 'wifi mode
client' by itself (no SSID specified)?

Some of the places I want to connect to are visible (seen in a scan), but the home
network is hidden.  If it helps, running a scan within earshot of the home network
only burps up an error 'wifi: incorrect scan type: 1073583304'.

Greg

p.s.  Possibly related, I have the module in my Roadster, connected to the V2 server
via WiFi through a SyncUp Drive OBDII dongle that's being driven by the OBD2ECU
engine.  The SyncUp's WiFi hotspot is visible, and I have a startup script that gets
everything going, and the OVMS module auto connects through it.  I just tried forcing
the connection over to the home network (wifi mode client gregnet) and after switching
networks and reconnecting to the V2 server, crashed and rebooted (whereupon it
reconnected through the dongle's network).  Any ideas?

OVMS > wifi mode client gregnet
Starting WIFI as a client to gregnet...
I (1519905) wifi: ap_loss
I (1519905) wifi: state: run -> init (0)
I (1519905) wifi: pm stop, total sleep time: 0/1415162800

I (1519905) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (1519915) ovms-server-v2: Disconnected from OVMS Server V2
I (1520415) webserver: Stopping Web Server
I (1520415) telnet: Stopping Telnet Server
I (1520415) ssh: Stopping SSH Server
I (1523025) wifi: n:6 0, o:1 0, ap:255 255, sta:6 0, prof:1
I (1523685) wifi: state: init -> auth (b0)
I (1523685) wifi: state: auth -> assoc (0)
I (1523685) wifi: state: assoc -> run (10)
I (1523715) wifi: connected with gregnet, channel 6
OVMS > I (1524725) event: ip: 10.30.1.102, mask: 255.255.255.0, gw: 10.30.1.1
I (1524725) ovms-mdns: Launching MDNS service
WiFi UP with SSID: gregnet, IP: 10.30.1.102, mask: 255.255.255.0, gw: 10.30.1.1
I (1524735) webserver: Launching Web Server
I (1524745) telnet: Launching Telnet Server
I (1524755) ssh: Launching SSH Server
I (1529915) ovms-server-v2: Connection is <a href="http://tmc.openvehicles.com:6867/" moz-do-not-send="true" class="">tmc.openvehicles.com:6867</a>
ROADSTER_834/Gdbkt2017server
I (1530115) ovms-server-v2: Connected to OVMS Server V2 at <a href="http://tmc.openvehicles.com/" moz-do-not-send="true" class="">tmc.openvehicles.com</a>
I (1530115) ovms-server-v2: Sending server login: MP-C 0 1zyHGC+OXD1EofY2dlH19v
sy8L79oHSah2+yDqliMKTA== ROADSTER_834
I (1530305) ovms-server-v2: Received welcome response MP-S 0 N9H5zlASBHMxtzteFD9WpG
ZoNMc8491dJNxl/x6XSIxg==
I (1530305) ovms-server-v2: Got server response: MP-S 0 N9H5zlASBHMxtzteFD9WpG
ZoNMc8491dJNxl/x6XSIxg==
I (1530315) ovms-server-v2: Server token is N9H5zlASBHMxtzteFD9WpG and digest is
ZoNMc8491dJNxl/x6XSIxg==
I (1530315) ovms-server-v2: Server authentication is successful. Prime the crypto...
I (1530315) ovms-server-v2: Shared secret key is
N9H5zlASBHMxtzteFD9WpG1zyHGC+OXD1EofY2dlH19v (44 bytes)
I (1530315) ovms-server-v2: OVMS V2 login successful, and crypto channel
establishedbort() was called at PC 0x40121ad6 on core 1
0x40121ad6: _Znwj at
/home/ivan/e/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/<a href="http://new_op.cc:54/" moz-do-not-send="true" class="">new_op.cc:54</a>


Backtrace: 0x400886e0:0x3fff8140 0x400887df:0x3fff8160 0x40121ad6:0x3fff8180
0x40121ab5:0x3fff81a0 0x40120200:0x3fff81c0 0x400f998e:0x3fff81f0
0x400f3d3e:0x3fff8290
0x400886e0: invoke_abort at /home/greg/esp/esp-idf/components/esp32/./panic.c:519

0x400887df: abort at /home/greg/esp/esp-idf/components/esp32/./panic.c:519

0x40121ad6: _Znwj at
/home/ivan/e/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/<a href="http://new_op.cc:54/" moz-do-not-send="true" class="">new_op.cc:54</a>

0x40121ab5: _Znaj at
/home/ivan/e/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/<a href="http://new_opv.cc:32/" moz-do-not-send="true" class="">new_opv.cc:32</a>

0x40120200: _ZN10OvmsBuffer10PollSocketEil at/home/greg/greg/ovms/Open-Vehicle-Monitoring-System-3-master/Open-Vehicle-Monitoring-
System-3/vehicle/OVMS.V3/main/./ovms_buffer.cpp:145

0x400f998e: _ZN12OvmsServerV210ServerTaskEv at/home/greg/greg/ovms/Open-Vehicle-Monitoring-System-3-master/Open-Vehicle-Monitoring-
System-3/vehicle/OVMS.V3/components/ovms_server_v2/src/ovms_server_v2.cpp:247

0x400f3d3e: _ZL15OvmsServer_taskPv at/home/greg/greg/ovms/Open-Vehicle-Monitoring-System-3-master/Open-Vehicle-Monitoring-
System-3/vehicle/OVMS.V3/components/ovms_server/./ovms_server.cpp:55


Rebooting...</pre>
              <br class="">
              <fieldset class="mimeAttachmentHeader"></fieldset>
              <br class="">
              <pre wrap="" class="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.teslaclub.hk" moz-do-not-send="true">OvmsDev@lists.teslaclub.hk</a>
<a class="moz-txt-link-freetext" href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a>
</pre>
            </blockquote>
          </blockquote>
          <br class="">
        </div>
      </blockquote>
      <blockquote type="cite" class="">
        <div class=""><span class="">_______________________________________________</span><br class="">
          <span class="">OvmsDev mailing list</span><br class="">
          <span class=""><a href="mailto:OvmsDev@lists.teslaclub.hk" moz-do-not-send="true" class="">OvmsDev@lists.teslaclub.hk</a></span><br class="">
          <span class=""><a href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a></span><br class="">
        </div>
      </blockquote>
      <br class="">
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br class="">
      <pre wrap="" class="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.teslaclub.hk">OvmsDev@lists.teslaclub.hk</a>
<a class="moz-txt-link-freetext" href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a>
</pre>
    </blockquote>
    <br class="">
  </div>

_______________________________________________<br class="">OvmsDev mailing list<br class=""><a href="mailto:OvmsDev@lists.teslaclub.hk" class="">OvmsDev@lists.teslaclub.hk</a><br class=""><a href="http://lists.teslaclub.hk/mailman/listinfo/ovmsdev" class="">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev</a><br class=""></div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""></div></body></html>