[Ovmsdev] Wifi: Support APCLIENT mode (for Access-Point + Client)

Mark Webb-Johnson mark at webb-johnson.net
Wed Mar 14 11:29:07 HKT 2018

I’ve added support for a new wifi mode ‘apclient’. This takes AP and STA mode SSIDs, and sets up as both an access point and a client.

Some caveats:

There seems to be a problem coming out of the mode (wifi mode off, etc). The network interfaces are not torn down correctly every time. Symptom is the client comes up, wifi shows an IP address on it, but the address is not set correctly on the ’st’ network interface. Reproducibility is random (maybe interface order related?). Not sure if this is my fault, or a bug in the framework. A 'module reset’ works around the problem ;-)

I updated Michael’s webserver, and the auto framework, to support this, but I’m not too familiar with that so might have got it wrong.

Wifi sclient style mode (scanning for known SSIDs to join without knowing the _exact_ SSID) is not currently supported. I’m not sure if this can ever be supported properly. The apclient mode works by locking the channel for both the AP and STA to be the same - if we are locked like that, how can we scan across channels?

I’m guessing that ‘wifi scan’ will be similarly restricted, when in ap or apclient modes.

This is not a router. Setting the gateway on the ’st’ interface would be trivial, but I don’t think packets can travel AP -> STA. Doing that would require source-nat, plus packet routing, etc. Routing would be easy, SNAT very nasty.

It does look pretty cool, and seems to work well:

OVMS > network
Interface#2: ap
  IPv4: gateway

Interface#1: st
  IPv4: 10.x.x.x/ gateway 10.x.x.x

Interface#0: lo
  IPv4: gateway


OVMS > wifi
  Power: on
  Mode: Access-Point + Client mode

    MAC: re:da:ct:ed:da:ta
    IP: 10.x.x.x/
    GW: 10.x.x.x

    MAC: da:ta:re:da:ct:ed
    IP: 10.x.x.x
    AP Stations: 1
      1: MAC: da:ta:re:da:ct:ed, IP:

Enjoy, Mark.

> Begin forwarded message:
> Subject: [openvehicles/Open-Vehicle-Monitoring-System-3] ee023a: Wifi: Support APCLIENT mode (for Access-Point + Cl...
> Date: 14 March 2018 at 11:09:21 AM HKT
>  Branch: refs/heads/master
>  Home:   https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3
>  Commit: ee023a5c8383901da2b190e3a42e94ad49724b07
>      https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/ee023a5c8383901da2b190e3a42e94ad49724b07
>  Author: Mark Webb-Johnson <mark at webb-johnson.net>
>  Date:   2018-03-14 (Wed, 14 Mar 2018)
>  Changed paths:
>    M vehicle/OVMS.V3/changes.txt
>    M vehicle/OVMS.V3/components/esp32wifi/src/esp32wifi.cpp
>    M vehicle/OVMS.V3/components/esp32wifi/src/esp32wifi.h
>    M vehicle/OVMS.V3/components/ovms_webserver/src/web_cfg.cpp
>  Log Message:
>  -----------
>  Wifi: Support APCLIENT mode (for Access-Point + Client)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20180314/142ee52e/attachment.htm>

More information about the OvmsDev mailing list