Improv logo

Open standard for connecting devices to Wi-Fi using Bluetooth LE or Serial

Improv is a free and open standard with ready-made SDKs that offer a great user experience to configure Wi-Fi on devices:

  1. Power on device
  2. Client application uses Improv to send the Wi-Fi credentials to the device
  3. The device connects to Wi-Fi network and returns a URL
  4. User visits URL to continue setting up the device

Improv protocol can be used over Bluetooth Low Energy or via the serial port. Both protocols can also be used from a browser.

Your browser is not supported. To try it out, visit this page with Google Chrome or Microsoft Edge.

Need a device that runs Improv? Install this example on an ESP8266 or ESP32.

See it in action

Adopted by the following projects

ESPHome

Open source firmware for ESP8266/ESP32 devices that is easy to use.

Allows being configured via Improv over Bluetooth LE or Serial.

Website

ESP Web Tools

Open source tools to allow managing ESP devices in the browser.

Allows configuring devices via Improv over Serial.

Website

ℹ️ Want to add Improv to your project? Check out the SDKs.

The problem we're solving

Configuring a device to connect to your Wi-Fi network is a pain.

A lot of devices require to be connected to the network to be controlled or receive data. The majority of these devices use Wi-Fi to establish a connection with a local application or the cloud.

The most common approach is Soft Enabled Access Point. The device starts its own Wi-Fi access point, the user connects to it with their phone/computer and then interacts directly with the device via an app or a website served from the device.

It’s easy for something to go wrong. The user submits incorrect Wi-Fi credentials or the phone loses access to the access point. In such cases it is difficult to recover. Phones also have a bad time dealing with access points that don’t provide internet access.

Scope & Constraints

The goal of the Improv standard is to get the device connected to the Wi-Fi via Bluetooth Low Energy (BLE) or Serial (USB/UART). It is not the goal to offer a way for devices to share data or control. The standard should work without requiring the device to contain a screen.

More Reading