Home | pfodApps/pfodDevices | WebStringTemplates | Java/J2EE | Unix | Torches | Superannuation | | About Us

Forward Logo (image)      

Simple Configuration for Wifi devices

by Matthew Ford 5th June 2015 (original posted 13th February 2015)
© Forward Computing and Control Pty. Ltd. NSW Australia
All rights reserved.

How to easily configure your
Arduino WiFi device
using pfodWifiConfig Version 1

Important Note: The ESP8266 modules do not need the pfodWifiConfigV1 app.
Instead they set up their own Access Point and complete the configuration via a web page.
See see Cheap/Simple Wifi Shield for Arduino and other micros and ESP8266-01 Wifi Shield, Rev 2 for examples of this.


This page describes how users can simply get your Arduino WiFi device connected to their Wifi network and also configure other features of the device. This page is for WiFi modules that cannot create their own Access Point.

Quick Start for using pfodWifiConfigV1 Android App

Libraries for WildFire, LinkItOne, AdafruitC3000 and RN WiFly
WildFire libraries and example setup tutorial
LinkIt ONE libraries and example setup tutorial.
AdafruitC3000 libraries and example setup tutorial.
RN WiFly + VioV3 libraries and example setup tutorial.

The pfodWifiConfigV1 protocol definition – Definition of the protocol, information for developers and security analysis
pfodQRpsk java application is now available (V1.5.1) for generating the QR images for use with pfodWifiConfigV1

Restrictions on the use of the trademark pfodWifiConfigV1

pfodWifiConfigV1 is a trademark of Forward Computing and Control Pty. Ltd. All rights are reserved. You are authorized to use the term “ pfodWifiConfigV1TM equipped ” to advertise your hardware if and only if that hardware implements the pfodWifiConfigV1 protocol, as described here, and operates with the latest version the pfodWifiConfigV1 application to set some or all of hardware's configuration.

Why this is needed

Wi-Fi connected devices or IoT (Internet of Things) are becoming very common. However there is not a simple open source means of getting these devices to connect to the user's local network and configuring the device.

Wi-Fi Protected Setup (WPS) using a PIN was supposed to provide a simple means for user to connect devices to the local network but a major security flaw was revealed in December 2011 and users are now advised to disable this support from their routers (if they can). The replacement, WPS Push-button-connect, seems largely secure, with the only vulnerability being that anyone with physical access to the router could push the button and connect, even if they didn’t know the Wi-Fi passphrase.

There are also several proprietary systems for example:- TI has a proprietary system called Smart Config, which requires a large library (more then Uno can handle) and does not allow configuration of other device parameters. Another proprietary system hard codes a web address and part number into the device and then forces the user to create a login on that web site to complete the network set up. Another proprietary system runs a default access point on the device that you configure your computer to connect to and then enter the network setting via web page.

None of these approaches is open source or easily implemented by a developer. None of them are extendible by the developer to add extra settings, like client login details. The method presented here is secure, open source and easy to code into a Wi-Fi device and does not require supporting website, or even an internet connection, to make the connection.

Quick Start for using pfodWifiConfigV1 Android App

How to use pfodWifiConfigV1. These are the steps your user would follow to connect your pfodWifiConfig equipped device to their network

  1. Download the free pfodWifiConfig app to their Android mobile.

  2. Open pfodWifiConfig, turn the Wifi device off and scan the QR code attached to it.

  3. When prompted by the app, turn the Wifi device on in configuration mode. Typically this involves holding down the set-up button and then applying power.

  4. When pfodWifiConfig app detects the Wi-Fi device on the network it opens a connection to the Wi-Fi device and requests its configuration options. Client/Server, DHCP/StaticIP etc, and displays the appropriate screen for the user to fill in.

  5. The user then enters the password and SSID for the real network they want the Wi-Fi device to connect to and any other necessary configuration and presses DONE. When the pfodWifiConfig app displays the device's completion message, the user can exit the app and power cycle the Wi-Fi device to connect it to their real network.

Quick Start for Users using Telnet – Version 1

These are the steps your user would follow to connect your pfodWifiConfig equipped device to their network using telnet.
Detailed instructions using telnet on an Android mobile, are given here.

  1. Scan the QR code attached to the Wi-Fi device using one of the scanning apps available for their mobile (either IOS or Android or Windows)

  2. Configure a temporary Access Point using the settings just scanned. IPhone, Android, Mac IOS and Windows all provide support for configuring an Access Point, although some are easier to configure than others.

  3. Turn the Wi-Fi device off and then turn it on while holding down the set up button.

  4. Find the IP address of the device on the temporary network. There are apps for IPhone and Android to do this and command lines in Mac IOS and Windows.

  5. Open a telnet program on any mobile or computer attached to the temporary network and connect to the device using the IP address just found and the portNo from the scanned data. This is usually done on the same machine that is providing the Access Point.

  6. In the telnet window, enter the configuration data for your network. (See the pfodWifiConfigV1 protocol definition, below, for the format of the {set command.) For example if the device's Features were mode: Server, available Security WPA2, IPsource DHCP
    {!pfodWifiConfigV1 Features:
    Mode: Server
    Security: WPA2
    IPsource: DHCP

    Then entering the following line in the telent window
    {set myAccessPoint WPA2 myAPpassword 4989 }
    ould configure the device to connect to the network with SSID myAccessPoint using WPA2 and a network password on myAPpassword. The device would get its IP on the network via DHCP and start its Server listening on Port 4989. There is also means to enter passwords and access point names that include spaces or the } character. (see below)

    The device responds with a message indicating the configuration has been accepted using the following format
    {! <msg>}
    If there is an error in the setting, invalid port or incorrect number of fields for example, then device responds with an error message using the format

pfodWifiConfig and pfodQRpskare trademarks of Forward Computing and Control Pty. Ltd.
AndroidTM is a trademark of Google Inc. For use of the Arduino name see http://arduino.cc/en/Main/FAQ

The General Purpose Android/Arduino Control App.
pfodDevice™ and pfodApp™ are trade marks of Forward Computing and Control Pty. Ltd.

Forward home page link (image)

Contact Forward Computing and Control by
©Copyright 1996-2020 Forward Computing and Control Pty. Ltd. ACN 003 669 994